来自OpenIdConnect提供商的配置文件数据- Thinktecture IdentityServer V3

本文关键字:Thinktecture IdentityServer V3 数据 配置文件 OpenIdConnect 提供商 来自 | 更新日期: 2023-09-27 18:09:42

我使用Thinktecture IdentitiyServer V3作为OpenIdConnect提供程序进行身份验证。我有一个自定义用户服务,根据Active Directory对用户进行身份验证。我想把一些资料发给RP。身份验证正在成功进行,但我不确定如何配置RP以检索配置文件数据。

我的用户服务实现GetProfileDataAsync方法获得所需的数据与我当前的配置,这个方法永远不会被击中。

我是新的OpenIdConnect。请帮助。

My RP Configuration from Startup.cs:

app.UseCookieAuthentication(new CookieAuthenticationOptions()
        {
            AuthenticationType = "Cookies"
        });
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions()
        {
            Authority = "url",
            ClientId = "owinmvc",
            Scope = "openid profile",
            ResponseType = "id_token token",
            RedirectUri = "https://localhost:44307/",
            SignInAsAuthenticationType = "Cookies",
            Notifications = new OpenIdConnectAuthenticationNotifications()
            {
                SecurityTokenValidated = (context) =>
                {
                    var identity = context.AuthenticationTicket.Identity;
                    identity.AddClaim(new Claim("CustomRoleClaim", "This is a role"));
                    return Task.FromResult(0);
                }
            }
        });

来自OpenIdConnect提供商的配置文件数据- Thinktecture IdentityServer V3

您通过提供ResponseType="id_token令牌"请求身份令牌和访问令牌。尝试请求id_token只是为了检查GetProfileDataAsync是否会被执行。

还可以阅读scope的alwaysinclair udeinidtoken。默认情况下,如果身份令牌与访问令牌一起请求,则身份服务器不包含数据,假设您将通过UserInfo端点手动请求此信息。