2013-10-10 13 views
13

Obwohl ich bereits mit OAuth 2 gearbeitet habe, bin ich ein Neuling für Open ID Connect.OAuth 2 access_token vs OpenId Connect id_token

die Tutorials und Dokumentationen Lesen ich über beide gekommen sind access_token und id_token wo access_token die zufällige eindeutige Zeichenfolge nach OAuth erzeugte 2 und id_token ist JSON Web Token, die Informationen wie die ID enthält von der Benutzer, der Algorithmus, der Aussteller und verschiedene andere Informationen, die verwendet werden können, um sie zu validieren. Ich habe auch API-Anbieter gesehen, die sowohl das access_token als auch das id_token bereitstellen und soweit ich weiß, dass es aus Gründen der Abwärtskompatibilität ist.

Meine Frage ist, dass ist es möglich, sowohl die access_token und die ID_Token für den Zugriff auf die geschützten Ressourcen zu verwenden? Oder ist das id_token nur für Verifikationszwecke und access_token wird für den Zugriff auf geschützte Ressourcen verwendet?

Antwort

24

Ursprünglich wurden OAuth und OpenId für verschiedene Zwecke entwickelt: OpenId für die Authentifizierung und OAuth für die Autorisierung. OpenId Connect ist eine Vereinigung der beiden und dient für beide, ändert aber nicht ihre ursprünglichen Funktionalitäten. In diesem Sinne sollten Sie in der Lage sein, sich selbst zu finden. ;-)

Das id_token wird verwendet, um den authentifizierten Benutzer zu identifizieren, z. für SSO. Das access_token muss verwendet werden, um Zugangsrechte zu geschützten Ressourcen, z. für den Benutzerinfo-Endpunkt in OpenId Connect.

+0

Ich bin etwas verwirrt mit dieser Open-ID connect und oauth2 implementation.Ich habe ein Front-End (html, angularjs) und Back-End webservice.Now Ich möchte Token-basierten Mechanismus während der Anmeldung so mit Login-Benutzer Clientid zu implementieren implementieren , emailid, passwort und im backend werde ich die client id anderen credentials validieren, danach werde ich dem benutzer ein token ausstellen und mit der hilfe dieses token benutzerseite diese benutzersitzung beibehalten. wo kommt openid connect und wie wird es nützlich sein zu mir.Können Sie bitte einige Einblicke zu mir, wie ich hier wirklich verwirrt bin bitte –

+0

Soweit ich verstehe, benötigen Sie keine Autorisierung, nur Authentifizierung. In diesem Fall sollten Sie einfach OpenId oder eine SSO-Lösung verwenden, aber Sie benötigen OAuth oder OpenId Connect überhaupt nicht. –

1

access_token ist nützlich, bestimmte APIs in Auth0 (z/Userinfo) oder ein API in Auth0 Sie definieren zu nennen.

id_token ist ein JWT und der angemeldete Benutzer darstellt. Es wird oft von Ihrer App verwendet.

ist es möglich, sowohl das access_token als auch das id_token für zu verwenden, um auf die geschützten Ressourcen zuzugreifen?

Nein vollständig, zuerst müssen Sie sich einloggen verwenden id_token zu,
zweite, erhalten Sie eine accessToken erhalten,
zuletzt verwenden accessToken Daten zuzugreifen.

Verwandte Themen