Azure Active Directoryに対してOpenIdConnectを使用して承認トークンを要求することに問題があります。OpenIdを使用したトークンの取得Azure Active Directoryへの接続
私は、AuthenticationContext.AcquireTokenByAuthorizationCodeAsyncを使用して、私のADテナントに認証コードを渡す、さまざまなアプローチを試みました。
私は取得しています特定のエラーがある「AADSTS70002:エラーは、資格情報を検証しAADSTS50011:返信アドレス 『http://localhost:5000/api/home/indexは』ときreque 刺さ認証コード提供返信アドレス 『http://localhost:5000/signin-oidc』と一致しません。」
私は確信していないのは、ADが私の返信用URLがsignin-oidcだと思う理由です。 AuthorizationContextのインスタンス内に返信URLを "http://localhost:5000/api/home/index"に設定しました。ソースコードを以下に示します。私はそれを読んだ後に/問題になることができますが、私は私の返信のURLに表示されません。また、コード内の私の返信URLは、私がADのWeb API内に登録したものと同じです。
ご協力いただければ幸いです。私はAzure ADに対してOpenId Connectを使用する方法の多くの例を読んできましたが、それは非常に矛盾しているようです。
// Configure the OWIN pipeline to use OpenIDConnect.
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
{
//AuthenticationScheme = "oidc",
Authority = authority,
ClientId = clientId,
Scope = { "openid profile email offline" },
ResponseType = OpenIdConnectResponseType.CodeIdToken,
TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuer = false
},
Events = new OpenIdConnectEvents
{
OnAuthorizationCodeReceived = async context =>
{
var clientCred = new ClientCredential(clientId, clientSecret);
var tenantId = "xxxx.onmicrosoft.com";
var resource = new Uri(string.Format(organizationHostName, "*"));
var authContext = new AuthenticationContext(aadInstance + tenantId);
var authResult = await authContext.AcquireTokenByAuthorizationCodeAsync(context.TokenEndpointRequest.Code,
new Uri(redirectUri), clientCred, "https://login.windows.net/xxxxxxx-xxxx-xxxx-xxxxxxxxxxx/oauth2/token");
context.TokenEndpointRequest.RedirectUri = redirectUri;
},
OnAuthenticationFailed = (context) => Task.FromResult(0)
},
});
ここでデバッグ中に私は気づいたいくつかの追加情報です。 AuthorizationCodeReceivedContextのプロパティには、2つのURIがあります。 1つはリダイレクト用のID、2つ目はOpenIdConnect.Code.Redirectです。私は2つの違いを理解しようとしています。 –