ASP.NET Core Identityを使用し、Azure ADに対する認証を試みているASP.NET Coreアプリケーションがあります。Azure ADがASP.NET GraphにアクセスするためのASP.NET Coreで正しいアクセストークンを要求する方法
services.AddAuthentication()
.AddOpenIdConnect("AzureAD", "Azure AD", option =>
{
option.ClientId = Configuration["AzureAD:AppId"];
option.ClientSecret = "abc";
option.Authority = string.Format(Configuration["AzureAd:AadInstance"], Configuration["AzureAd:Tenant"]);
option.SignedOutRedirectUri = Configuration["AzureAd:PostLogoutRedirectUri"];
option.ResponseType = OpenIdConnectResponseType.CodeIdToken;
option.SaveTokens = true;
option.SignInScheme = IdentityConstants.ExternalScheme;
option.Events = new OpenIdConnectEvents
{
OnRemoteFailure = OnAuthenticationFailed,
};
});
すべて正常に動作し、ユーザーは資格情報を使用してログインできます。
私は、ユーザーの電子メールアドレスを受け取るためにMicrosoft Graphにアクセスしようとしています(id_tokenで要求として送信しません)。私は、ログインフローから受信したaccess_tokenはを使用した場合でも、グラフAPIがエラーを返し :
Code: InvalidAuthenticationToken
Message: CompactToken parsing failed with error code: -2147184105
私はそれが奇妙に見えるaccess_tokenはを見てみると。それは有効なJWTではありません。 AQABAAAAAABHh4kmS_aKT5XrjzxRAtHzymKlkayx9UvCfyg_uHq1prmSP8f0Mi5BfiqkdIZeqJsBbm9SSbDbMrQ0JgNa6pa6M97IjVr6ZHdtt3ryT8vns_kz5BxkdJFkL79Ql3ywzyKldfLuX9jwq1eCgQ1MMdqKUDW4q5g38...
私は間違っていますか?
ありがとうございました。今私は "本当の"アクセストークンを持っています。あなたの[GitHub repo](https://github.com/juunas11/aspnetcore2aadauth)のコードサンプルも私を助けました。特に、Microsoft Graph用の特別なアクセストークンを取得しています。 –
同じ問題を抱える人を助けるかもしれない答えとして受け入れることを検討してください。 –