これは、IDサーバーに接続するmvcの初期設定です。
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
AuthenticationType = "oidc",
SignInAsAuthenticationType = "Cookies",
Authority = "http://identity.azurewebsites.net",
RedirectUri = "http://localhost:62419/signin-oidc",
PostLogoutRedirectUri = "http://localhost:62419/signout-callback-oidc",
ClientId = "mvc",
ResponseType = "id_token",
Scope = "openid profile",
UseTokenLifetime = false,
RequireHttpsMetadata = false,
Notifications = new OpenIdConnectAuthenticationNotifications
{
SecurityTokenValidated = (context) =>
{
var identity = context.AuthenticationTicket.Identity;
var name = identity.Claims.FirstOrDefault(c => c.Type == identity.NameClaimType)?.Value;
return Task.FromResult(0);
}
}
});
IDサーバーにアクセスできます。メッセージを受け取りました
申し訳ありませんが、エラーが発生しました:authorized_client無効なredirect_uri
上記のコードと一致するdirectiveUriをClientRedirectUrisテーブルに追加しました。追加または設定するのを忘れた他の領域はありますか?.
また、スコープがクライアント構成のAlowedScopesと一致していることを確認してください。リクエストのURLを確認できれば助かります。つまり.
https://identity.azurewebsites.net/connect/authorize?
client_id=mvc
&redirect_uri=http://localhost:62419/signin-oidc
&response_type=id_token
&scope=openid profile
&nonce=63653346343504
&state=CfDJAJDR
&response_mode=form_post
IdentityServerのクライアント構成でリダイレクトURLがリダイレクトURLと一致していることを確認する必要があります。例えば
new Client
{
ClientId = "mvc",
ClientName = "MVC Client",
AllowedGrantTypes = GrantTypes.Implicit,
// where to redirect to after login
RedirectUris = { "http://localhost:62419/signin-oidc" },
// where to redirect to after logout
PostLogoutRedirectUris = { "http://localhost:62419/signout-callback-oidc" },
AllowedScopes = new List<string>
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile
}
}
RedirectUris
がクライアントに設定されているリダイレクトURLと一致することを確認してください ' http:// localhost:62419/signin-oidc '