来自 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 端点手动请求此信息。
我正在使用 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 端点手动请求此信息。