1

Microsoft Graph API (具体的には OneDrive) と統合し、認証に Azure AD B2C を使用する Blazor アプリケーションを作成しようとしています。

Microsoft.Identity.Web 0.3.1-preview を使用しています

Setup.cs は次のとおりです。

        public void ConfigureServices(IServiceCollection services)
    {
        // Configuration to sign-in users with Azure AD B2C
        services.AddMicrosoftIdentityWebAppAuthentication(Configuration, "AzureAdB2C")
             .EnableTokenAcquisitionToCallDownstreamApi(new string[] { "https://graph.microsoft.com/.default" })
             .AddMicrosoftGraph("https://graph.microsoft.com/beta")
             .AddInMemoryTokenCaches(); 
...

次に、サービスは ITokenAcquisitionを使用して、次のようにトークンを要求します。

public MyService(ITokenAcquisition tokenAcquisition, IOptions<WebOptions> webOptionValue, 
                          AuthenticationStateProvider AuthenticationStateProvider)
    {
                string result = await tokenAcquisition.GetAccessTokenForUserAsync(new string[] { "user.read" });

Microsoft のリンクされたアカウントを使用して認証を行っていますが、AuthenticationStateProvider で live.com クレームを確認できます。

基本的な user.read を GetAccessTokenForUserAsync に渡すと、「リクエストで指定されたスコープ 'user.read' はサポートされていません」という例外が発生します。スコープをhttps://graph.microsoft.com/user.readとして指定しようとしましたが、これは単に null を返します。

どんな提案でも大歓迎です。

4

1 に答える 1