Ich verfolge die Using OAuth to Secure Your ASP.NET API Kurs auf Pluralsight. Ich habe IdentityServer mit einer Reihe von InMemoryUsers eingerichtet, von denen so aussieht ...Erhalten von Ansprüchen mit IdentityServer3
public static List<InMemoryUser> Get()
{
return new List<InMemoryUser>
{
new InMemoryUser
{
Username = "[email protected]",
Password = "password",
Subject = "[email protected]",
Claims = new[]
{
new Claim(Constants.ClaimTypes.Id, "96cddc1de66641829237b7f09869b1c8"),
new Claim(Constants.ClaimTypes.Name, "Some Full name example
}
},
};
}
Wenn ich die Benutzer autorisiere und die mitgelieferten Zugriffstoken verwenden, um die API-Aufruf, die Sammlung Ansprüche, denn das Benutzer, sieht wie folgt aus ...
((User as System.Security.Claims.ClaimsPrincipal).Identities.First() as System.Security.Claims.ClaimsIdentity).Claims.ToList()
Count = 10
[0]: {iss: https://localhost:44375}
[1]: {aud: https://localhost:44375/resources}
[2]: {exp: 1468920204}
[3]: {nbf: 1468916604}
[4]: {client_id: my_clientid}
[5]: {scope: openid}
[6]: {http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier: [email protected]}
[7]: {http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationinstant: 1468916604}
[8]: {http://schemas.microsoft.com/identity/claims/identityprovider: idsrv}
[9]: {http://schemas.microsoft.com/claims/authnmethodsreferences: password}
Wenn ich den Zugriffsschlüssel fallen, dass ich bei jwt.io an den Debugger in ich das bekommen ...
{
"iss": "https://localhost:44375",
"aud": "https://localhost:44375/resources",
"exp": 1468921471,
"nbf": 1468917871,
"client_id": "my_clientid,
"scope": "openid",
"sub": "[email protected]",
"auth_time": 1468917871,
"idp": "idsrv",
"amr": [
"password"
]
}
ich bin unklar, was Ich bin es tun, oder nicht tun, das stoppt die Ansprüche, die definiert sind von zurückgegeben werden.
Irgendwelche Ideen?
Ich habe hinzugefügt, dass an die Spitze des Verfahrens Konfiguration der Startup-Klasse im IdentityServer-Projekt, jedoch ohne Erfolg. Wenn ich meinen Code durchforste, merke ich, dass die Ansprüche, die ich erwarte, alle in der Sammlung sind, wenn ich die "AuthenticateLocalAsync" -Methode in meinem Benutzer-Service handhabe (seit dem Absenden der ursprünglichen Frage habe ich mich von InMemoryUsers entfernt) –
Hinzugefügt zu die Spitze der Konfigurationsmethode der Startup-Klasse in meinem ** API ** -Projekt und es hat funktioniert! –