Was ist ein Userinfo-Endpoint?
In OpenID Connect (OIDC) ist ein Userinfo-Endpoint ein Endpoint des OpenID Provider (OP) , der Benutzerinformationen an Clients bietet. Der Userinfo-Endpoint ist normalerweise ein ergänzender Endpoint zum ID-Token und ermöglicht es Clients, zusätzliche Benutzerinformationen abzurufen, die nicht im ID-Token enthalten sind.
Der Userinfo-Endpoint ist in der OpenID Connect Core-Spezifikation definiert und wird typischerweise von Clients aufgerufen, nachdem sie ein ID-Token erhalten haben.
Wie funktioniert ein Userinfo-Endpoint?
Wenn ein Client eine Anfrage an den Userinfo-Endpoint stellt, muss er das im Tokenanforderung (Token request) erhaltene Access Token einfügen und die HTTP-Methoden GET
oder POST
verwenden. Der Userinfo-Endpoint validiert das Access Token und gibt die Benutzerinformationen in der Antwort zurück.
Hier ist ein nicht-normatives Beispiel für eine Userinfo-Anfrage:
GET /userinfo HTTP/1.1
Host: openid-provider.example.com
Authorization: Bearer some-access-token
Der genaue Pfad des Userinfo-Endpoints kann bei verschiedenen OpenID Providern variieren. Du kannst die OpenID Connect (OIDC) Discovery des Providers konsultieren, um die URL des Userinfo-Endpoints zu finden. Wenn das Access Token gültig ist, antwortet der Userinfo-Endpoint mit den Benutzerinformationen:
HTTP/1.1 200 OK
Content-Type: application/json
{
"sub": "user123",
"name": "Alice",
"email": "[email protected]",
"birthdate": "1990-01-01",
"address": {
"street": "1234 Elm St",
"city": "Springfield",
"country": "US"
}
}
Die Antwort kann verschiedene Benutzerattribute wie name
, email
, birthdate
und address
enthalten; und typischerweise enthält sie mehr Claims als der ID-Token . Die tatsächlich zurückgegebenen Attribute hängen von der Konfiguration des OpenID Provider (OP) und der Zustimmung des Benutzers ab. Bitte sieh dir die Dokumentation deines OpenID Providers an, um die spezifisch verfügbaren Attribute zu erfahren.
Signierung und Verschlüsselung
Die Userinfo-Antwort kann signiert und/oder verschlüsselt werden, um ihre Integrität und Vertraulichkeit zu gewährleisten. Wenn eine oder beide dieser Schutzmaßnahmen angewendet werden, wird die Userinfo-Endpoint-Antwort ein JSON Web Token (JWT) anstelle eines einfachen JSON-Objekts sein.