Wat is OAuth 2.0-autorisatieservermetadata (Authorization Server Metadata)?
OAuth 2.0-autorisatieservermetadata (Authorization Server Metadata) is een gestandaardiseerd formaat gedefinieerd in RFC 8414 dat OAuth 2.0-clients in staat stelt om automatisch de benodigde informatie te ontdekken en verkrijgen om te communiceren met OAuth 2.0-autorisatieservers.
Dit omvat essentiële informatie zoals eindpuntlocaties, ondersteunde functies en servermogelijkheden.
Het metadataformaat biedt een machineleesbaar configuratiedocument dat helpt om het integratieproces tussen clients en autorisatieservers te stroomlijnen, waardoor de noodzaak voor handmatige configuratie wordt verminderd.
Hoe werkt OAuth 2.0-autorisatieservermetadata (Authorization Server Metadata)?
In het OAuth 2.0-ecosysteem zijn er verschillende sleutelrollen:
- Autorisatieserver (Authorization server) : Geeft toegangstokens uit aan clients na succesvolle authenticatie van de resource-eigenaar
- Client : Applicatie die toegang vraagt tot beschermde resources
- Resource-eigenaar (resource-owner) : Entiteit die in staat is toegang te verlenen tot beschermde resources
- Resource server : Server die beschermde resources host
De autorisatieservermetadata (Authorization Server Metadata) biedt een gestandaardiseerde manier voor clients om te ontdekken en te begrijpen hoe ze met de autorisatieserver kunnen communiceren. Zo werkt het:
- De client kent of ontdekt de issuer-URL van de autorisatieserver
- De client construeert de metadata-URL door
/.well-known/oauth-authorization-server
toe te voegen aan de issuer-URL - De client haalt het metadatadocument op dat de serverconfiguratie bevat
- De client gebruikt de opgehaalde metadata (eindpunten, ondersteunde functies, etc.) om zichzelf correct te configureren en te communiceren met de autorisatieserver
Bijvoorbeeld, als de issuer-URL https://auth.example.com
is, zou de metadata beschikbaar zijn op:
https://auth.example.com/.well-known/oauth-authorization-server
Het metadatadocument bevat belangrijke informatie zoals:
issuer
: De identificatie van de autorisatieserverauthorization_endpoint
: De URL van het autorisatie-eindpunttoken_endpoint
: De URL van het token-eindpuntscopes_supported
: Beschikbare scopesresponse_types_supported
: Ondersteunde responstypentoken_endpoint_auth_methods_supported
: Ondersteunde clientauthenticatiemethoden
Voor een volledige lijst van metadata-velden, raadpleeg RFC 8414 Sectie 2 .
Met deze metadatagegevens kunnen clients automatisch de OAuth 2.0-flow configureren en uitvoeren:
-
Initiële setup:
- Client valideert dat de
issuer
overeenkomt met de verwachte autorisatieserver - Client controleert
response_types_supported
om ervoor te zorgen dat het flowtype (bijv.code
) wordt ondersteund
- Client valideert dat de
-
Autorisatieverzoek (Authorization request):
- Client gebruikt
authorization_endpoint
om de autorisatie-URL te construeren - Client selecteert geschikte scopes uit
scopes_supported
op basis van zijn behoeften - Voorbeeld:
https://auth.example.com/authorize?response_type=code&scope=profile email
- Client gebruikt
-
Tokenuitwisseling (Token exchange):
- Na ontvangst van de autorisatiecode gebruikt de client
token_endpoint
voor tokenuitwisseling - Client controleert
token_endpoint_auth_methods_supported
om te bepalen hoe te authenticeren (bijv.client_secret_basic
) - Voorbeeld: Stuur een POST-verzoek naar het token-eindpunt met clientreferenties en autorisatiecode
- Na ontvangst van de autorisatiecode gebruikt de client
Deze basisflow helpt clients om zichzelf automatisch te configureren en te communiceren met de autorisatieserver zonder handmatige eindpuntconfiguratie of trial-and-error scope-selectie.
Wat is het verschil tussen OAuth 2.0-autorisatieservermetadata (Authorization Server Metadata) en OpenID Connect Discovery?
De belangrijkste verschillen zijn:
-
Reikwijdte en Doel:
- OAuth 2.0-autorisatieservermetadata (Authorization Server Metadata) richt zich specifiek op de configuratie van het OAuth 2.0-protocol
- OpenID Connect (OIDC) Discovery omvat aanvullende parameters voor identiteitsgerelateerde functies, zoals:
userinfo_endpoint
: Eindpunt voor het ophalen van gebruikersinformatieid_token_signing_alg_values_supported
: Ondersteunde ondertekeningsalgoritmen voor ID Tokensclaims_supported
: Beschikbare gebruikersclaims die kunnen worden geretourneerd in ID Token of van UserInfo Endpoint- Ondersteunt
openid
scope voor authenticatie - Omvat hybride flow-responstypen (bijv.
code id_token
,code id_token token
)
-
Metadata-eindpunt:
- OAuth 2.0 gebruikt
/.well-known/oauth-authorization-server
- OpenID Connect gebruikt
/.well-known/openid-configuration
- OAuth 2.0 gebruikt
Voldoet OAuth 2.0-autorisatieservermetadata (Authorization Server Metadata) aan OpenID Connect Discovery?
Ja, OAuth 2.0-autorisatieservermetadata (Authorization Server Metadata) is compatibel met OpenID Connect (OIDC) Discovery .
De OAuth 2.0-metadataspecificatie (RFC 8414) is geïnspireerd door OpenID Connect Discovery 1.0, dat al op grote schaal in de praktijk werd toegepast.
Belangrijke punten over naleving:
- Het metadataformaat volgt dezelfde JSON-structuur
- Autorisatieservers kunnen beide eindpunten tegelijkertijd ondersteunen
- OpenID-providers stellen doorgaans beide eindpunten bloot voor achterwaartse compatibiliteit
- De OAuth 2.0-metadata kan worden uitgebreid met OpenID Connect-specifieke velden indien nodig
Deze compatibiliteit zorgt ervoor dat autorisatieservers zowel pure OAuth 2.0-clients als OpenID Connect relying parties kunnen bedienen zonder conflicten.