以下の例をダウンロードして、MS Graph からアクセス トークンを取得しましたが、問題なく動作しました。ここで、カスタム Web API からトークンを取得するようにコードを変更しました。apps.dev.microsoft.com で、クライアント アプリケーションと API を登録しました。
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...
何日もお試しいただきありがとうございます...