3

Ich überprüfe, wie man IdentityServer4 verwendet, da ich viel davon gehört habe. Ich versuche, meine Konzepte klar zu machen, aber ich bin verwirrt:OAuth und OpenID Verwirrung in Bezug auf Ansprüche und Zugriff

Access Token: Es enthält Ansprüche, die verwendet werden können, um den API-Zugriff zu beschränken, es enthält Client-Informationen mit einem Token.

ID-Token: Es enthält Identitätsinformationen des Benutzers, es kann nicht verwendet werden, um den Zugriff auf API einzuschränken, aber es kann verwendet werden, um Benutzerinformationen nur durch ein Token zu übergeben.

Ich habe einige Fragen:

Was ist der Unterschied zwischen ApiResources und IdentityResources?

Was ist der Unterschied zwischen ApiClaims, ApiScopeClaim und IdentityClaims? Und wann und wo werden sie benutzt?

Dank

Antwort

0

Zum einen Zugriffstoken enthalten keine Ansprüche. Es ist nur ein JWT Token ohne Ansprüche. Vielleicht möchten Sie das openID-Spezifikationsdokument auschecken. Aber kurz gesagt,

Unter Berufung Partei macht eine GET-Anfrage an den Token-Endpunkt, die etwa wie folgt aussieht:

POST /token/HTTP/1.1 
Host: server.example.com 
Content-Type: application/x-www-form-url-encoded 
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW 

    grant_type=authorization_code&code=xxxxxxxxxx&redirect_URI=https%3A%2F%2Fclient.example.org%2Fcb 

Die Identität Server eine Antwort wie diese zurückgeben soll:

HTTP/1.1 200 OK 
Content-Type: application/json 
Cache control: no-store 
Pragma: no-cache 
{ 
    "access_token": "S1AV32hKG", 
    "token_type" : "Bearer", 
    "refresh_token": "xxxxxxxxxxx", 
    "expires_in": 3600, 
    "id_token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 
} 

Wie Sie Der Server antwortet mit einem Zugriffstoken, mit dem eine Anforderung an den Benutzerinfo-Endpunkt gestellt werden kann, der Ansprüche über den Benutzer enthält. Ansprüche sind nichts anderes als weitere Informationen zum Ressourcenbesitzer.

Dies sollte die Userinfo Endpunkt Antwort sein:

HTTP/1.1 200 OK 
Content-Type: application/json 
{ 
    "sub": "248289761001", 
    "name": "Jane Doe", 
    "given_name": "Jane", 
    "family_name": "Doe", 
    "preferred_username": "j.doe", 
    "email": "[email protected]", 
    "picture": "http://example.com/janedoe/me.jpg" 
    } 

lesen http://openid.net/specs/openid-connect-core-1_0.html#UserInfoRequest für weitere Informationen

+0

Grundsätzlich Zugriffstoken gibt Ihnen einen grünen Ausweis Ansprüche abzurufen oder Zugriff auf eine Ressource zu gewinnen –

+0

Ich denke, ID-Token kann nicht gesendet werden, um userinfo anzufordern, aber es ist ein Zugriffstoken? Der Ressourcenzugriff kann durch Zugriffstoken nicht durch ID-Token festgelegt werden! – newbeedeveloper

+0

Userinfo anfordern GET/userinfo HTTP/1.1 Host (Kann eine GET oder POST eine sein): server.example.com Berechtigung: Bearer XXXXAccessTokenXXXX Es ist Zugriffstoken, die dem Benutzer Informationen Endpunkt gesendet wird. Es war ein Tippfehler, korrigierte es –

Verwandte Themen