Я учусь OAuth 2.0
и Open Id Connect
и теперь у меня есть проблема: нет претензии, представленные в id_token
:OAuth 2.0 и Open Id Connect утверждает вопрос
я создал InMemoryUser
и требования к нему:
return new List<InMemoryUser>()
{
new InMemoryUser()
{
Username = "SomeName",
Password = "SomePassword",
Subject = "b05d3546-6ca8-4d32-b95c-77e94d705ddf",
Claims = new Claim[]
{
new Claim(IdentityServer3.Core.Constants.ClaimTypes.GivenName, "MyGivenName"),
new Claim(IdentityServer3.Core.Constants.ClaimTypes.FamilyName, "MyFamilyName"),
}
}
}
Мои прицелы:
return new List<Scope>()
{
StandardScopes.OpenId,
StandardScopes.Profile,
new Scope()
{
Name = "somename",
DisplayName = "some display name",
Description = "some description",
Type = ScopeType.Resource
}
};
Кроме того, я создал клиент MVC и Startup
класса и в cluded профиль scope
:
public void Configuration(IAppBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
AuthenticationType = "Cookies"
});
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions()
{
ClientId = "TripsHybrid",
Authority = Constants.Constants.TripsSts,
RedirectUri = Constants.Constants.TripsMvc,
SignInAsAuthenticationType = "Cookies",
ResponseType = "code id_token token",
Scope = "openid profile", // "profile" scope inсluded
}
}
Но когда я получаю id_token
и декодировать его, нет претензий, которые я поставил, создавая свою InMemoryUser
. Кроме того, нет претензий в User.Identity.Claims
после печати их Debug
:
if (this.User.Identity.IsAuthenticated)
{
Debug.WriteLine("Claims:");
var identity = this.User.Identity as ClaimsIdentity;
foreach (var claim in identity.Claims)
{
Debug.WriteLine(claim.Type + " - " + claim.Value);
}
}
Пожалуйста, помогите мне найти причину и добавить претензий в id_token
. Благодаря
Это не помогло. Никаких претензий в токенах идентичности –