4

以下の例をダウンロードして、MS Graph からアクセス トークンを取得しましたが、問題なく動作しました。ここで、カスタム Web API からトークンを取得するようにコードを変更しました。apps.dev.microsoft.com で、クライアント アプリケーションと API を登録しました。

AD でのクライアントとサーバーの登録

private static async Task<AuthenticationResult> GetToken()
    {
        const string clientId = "185adc28-7e72-4f07-a052-651755513825";

        var clientApp = new PublicClientApplication(clientId);
        
        AuthenticationResult result = null;
        
        string[] scopes = new string[] { "api://f69953b0-2d7f-4523-a8df-01f216b55200/Test" };
        
        try
        {
            result = await clientApp.AcquireTokenAsync(scopes, "", UIBehavior.SelectAccount, string.Empty);
        }
        catch (Exception x)
        {
            if (x.Message == "User canceled authentication")
            {

            }
            return null;
        }
        return result;
    }

コードを実行すると、ダイアログを介して AD にログインし、デバッガーで次の例外が発生します。

エラー: 無効なクライアント メッセージ = "AADSTS65005: アプリケーション 'CoreWebAPIAzureADClient' が、リソースに存在しないスコープ 'offline_access' を要求しました。アプリ ベンダーに連絡してください。\r\nトレース ID: 56a4b5ad-8ca1-4c41-b961-c74d84911300\ r\n相関 ID: a4350378-b802-4364-8464-c6fdf105cbf1\r...

エラーメッセージ

何日もお試しいただきありがとうございます...

4

3 に答える 3