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

Profile data from OpenIdConnect provider - Thinktecture IdentityServer V3

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

我的用户服务实现了 GetProfileDataAsync 方法以使用我当前的配置获取所需的数据,此方法永远不会被命中。

我是 OpenIdConnect 的新手。请帮忙。

我的 RP 配置来自 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);
                }

            }

        });

您通过提供 ResponseType="id_token token" 来请求身份令牌和访问令牌。尝试请求 id_token 仅检查是否将执行 GetProfileDataAsync。

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