Ich lerne OAuth 2.0
und Open Id Connect
und jetzt habe ich ein Problem: Es gibt nicht in id_token
präsentiert Ansprüche:OAuth 2.0 und OpenID Connect behauptet Ausgabe
Ich habe InMemoryUser
und Ansprüche für ihn geschaffen:
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"),
}
}
}
Meine Bereiche:
return new List<Scope>()
{
StandardScopes.OpenId,
StandardScopes.Profile,
new Scope()
{
Name = "somename",
DisplayName = "some display name",
Description = "some description",
Type = ScopeType.Resource
}
};
Außerdem habe ich MVC erstellt-Client und Startup
Klasse und in ausgeschlossen Profil 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
}
}
Aber wenn ich id_token
erhalten und dekodieren, gibt es keine Ansprüche, das ich habe, während meine InMemoryUser
zu schaffen. Auch gibt es keine Ansprüche in User.Identity.Claims
nach ihnen Debug
Druck:
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);
}
}
Bitte, helfen Sie mir den Grund zu finden und fügen Ansprüche in id_token
. Dank
Es hat nicht geholfen. Keine Ansprüche im Identitäts-Token –