Was sind OAuth 2.0 Autorisierungsserver-Metadaten (Authorization Server Metadata)?
OAuth 2.0 Autorisierungsserver-Metadaten (Authorization Server Metadata) sind ein standardisiertes Format, definiert in RFC 8414 , das es OAuth 2.0-Clients ermöglicht, automatisch die Informationen zu entdecken und zu erhalten, die benötigt werden, um mit OAuth 2.0-Autorisierungsservern zu interagieren.
Dies umfasst wesentliche Informationen wie Endpunktstandorte, unterstützte Funktionen und Serverfähigkeiten.
Das Metadatenformat bietet ein maschinenlesbares Konfigurationsdokument, das den Integrationsprozess zwischen Clients und Autorisierungsservern vereinfacht und den Bedarf an manueller Konfiguration reduziert.
Wie funktionieren OAuth 2.0 Autorisierungsserver-Metadaten (Authorization Server Metadata)?
Im OAuth 2.0-Ökosystem gibt es mehrere Schlüsselrollen:
- Autorisierungsserver (Authorization server) : Gibt access tokens an Clients aus, nachdem der resource owner erfolgreich authentifiziert wurde
- Client : Anwendung, die Zugriff auf geschützte Ressourcen anfordert
- Ressourcenbesitzer (Resource owner) : Entität, die in der Lage ist, Zugriff auf geschützte Ressourcen zu gewähren
- Ressourcenserver (Resource server) : Server, der geschützte Ressourcen hostet
Die Autorisierungsserver-Metadaten (Authorization Server Metadata) bieten eine standardisierte Möglichkeit für Clients, zu entdecken und zu verstehen, wie sie mit dem Autorisierungsserver interagieren können. So funktioniert es:
- Der Client kennt oder entdeckt die issuer-URL des Autorisierungsservers
- Der Client konstruiert die Metadaten-URL, indem er
/.well-known/oauth-authorization-server
an die issuer-URL anhängt - Der Client ruft das Metadatendokument ab, das die Serverkonfiguration enthält
- Der Client verwendet die abgerufenen Metadaten (Endpunkte, unterstützte Funktionen usw.), um sich ordnungsgemäß zu konfigurieren und mit dem Autorisierungsserver zu interagieren
Zum Beispiel, wenn die issuer-URL https://auth.example.com
ist, wären die Metadaten verfügbar unter:
https://auth.example.com/.well-known/oauth-authorization-server
Das Metadatendokument enthält wichtige Informationen wie:
issuer
: Die Kennung des Autorisierungsserversauthorization_endpoint
: Die URL des Autorisierungsendpunktstoken_endpoint
: Die URL des Tokenendpunktsscopes_supported
: Verfügbare scopesresponse_types_supported
: Unterstützte Antworttypentoken_endpoint_auth_methods_supported
: Unterstützte Client-Authentifizierungsmethoden
Für eine vollständige Liste der Metadatenfelder siehe bitte RFC 8414 Abschnitt 2 .
Mit diesen Metadatenwerten können Clients den OAuth 2.0 flow automatisch konfigurieren und ausführen:
-
Erste Einrichtung:
- Der Client validiert, dass der
issuer
mit dem erwarteten Autorisierungsserver übereinstimmt - Der Client überprüft
response_types_supported
, um sicherzustellen, dass sein flow-Typ (z.B.code
) unterstützt wird
- Der Client validiert, dass der
-
Autorisierungsanfrage (Authorization request):
- Der Client verwendet
authorization_endpoint
, um die Autorisierungs-URL zu konstruieren - Der Client wählt geeignete scopes aus
scopes_supported
basierend auf seinen Bedürfnissen - Beispiel:
https://auth.example.com/authorize?response_type=code&scope=profile email
- Der Client verwendet
-
Token-Austausch:
- Nach Erhalt des Autorisierungscodes verwendet der Client
token_endpoint
für den Token-Austausch - Der Client überprüft
token_endpoint_auth_methods_supported
, um zu bestimmen, wie er sich authentifizieren soll (z.B.client_secret_basic
) - Beispiel: Sende POST-Anfrage an den Tokenendpunkt mit Client-Anmeldedaten und Autorisierungscode
- Nach Erhalt des Autorisierungscodes verwendet der Client
Dieser grundlegende flow hilft Clients, sich automatisch zu konfigurieren und mit dem Autorisierungsserver zu interagieren, ohne manuelle Endpunktkonfiguration oder Versuch-und-Irrtum-Auswahl von scopes.
Was ist der Unterschied zwischen OAuth 2.0 Autorisierungsserver-Metadaten (Authorization Server Metadata) und OpenID Connect Discovery?
Die Hauptunterschiede sind:
-
Umfang und Zweck:
- OAuth 2.0 Autorisierungsserver-Metadaten (Authorization Server Metadata) konzentrieren sich speziell auf die OAuth 2.0-Protokollkonfiguration
- OpenID Connect (OIDC) Discovery enthält zusätzliche Parameter für identitätsbezogene Funktionen, wie:
userinfo_endpoint
: Endpunkt zum Abrufen von Benutzerinformationenid_token_signing_alg_values_supported
: Unterstützte Signaturalgorithmen für ID Tokensclaims_supported
: Verfügbare Benutzeransprüche, die im ID Token oder vom UserInfo Endpoint zurückgegeben werden können- Unterstützt
openid
scope für die Authentifizierung - Beinhaltet hybrid flow Antworttypen (z.B.
code id_token
,code id_token token
)
-
Metadaten-Endpunkt:
- OAuth 2.0 verwendet
/.well-known/oauth-authorization-server
- OpenID Connect verwendet
/.well-known/openid-configuration
- OAuth 2.0 verwendet
Entspricht OAuth 2.0 Autorisierungsserver-Metadaten (Authorization Server Metadata) der OpenID Connect Discovery?
Ja, OAuth 2.0 Autorisierungsserver-Metadaten (Authorization Server Metadata) sind kompatibel mit OpenID Connect (OIDC) Discovery .
Die OAuth 2.0-Metadatenspezifikation (RFC 8414) wurde von OpenID Connect Discovery 1.0 inspiriert, das bereits in der Praxis weit verbreitet war.
Wichtige Punkte zur Konformität:
- Das Metadatenformat folgt derselben JSON-Struktur
- Autorisierungsserver können beide Endpunkte gleichzeitig unterstützen
- OpenID-Anbieter stellen typischerweise beide Endpunkte für die Abwärtskompatibilität bereit
- Die OAuth 2.0-Metadaten können bei Bedarf mit OpenID Connect-spezifischen Feldern erweitert werden
Diese Kompatibilität stellt sicher, dass Autorisierungsserver sowohl reine OAuth 2.0-Clients als auch OpenID Connect-Relying-Parties ohne Konflikte bedienen können.