Fournisseur OAuth2
Sur cette page
Un royaume devient serveur d’autorisation OAuth 2.0 et fournisseur OpenID Connect quand le service OAuth2 Provider lui est assigné. Tant que ce service est absent, les points de terminaison /oauth2 du royaume répondent 404.
Activer le fournisseur#
Dans la console, sélectionnez le royaume, ouvrez le menu Services, puis Ajouter un service et choisissez OAuth2 Provider.
Avec ssoadm :
./ssoadm.sh add-svc-realm --realm /partenaires --servicename OAuth2ProviderLe document de découverte du royaume est alors disponible, par exemple pour le royaume partenaires :
https://<serveur>/tosiam/oauth2/partenaires/.well-known/openid-configurationIl annonce l’émetteur (https://<serveur>/tosiam/oauth2/partenaires) et tous les points de terminaison, listés dans OAuth2 & OIDC.
Réglages importants#
Les réglages se trouvent dans Services, OAuth2 Provider. Les principaux :
| Réglage | Clé | Défaut |
|---|---|---|
| Durée de vie du code d’autorisation (s) | forgerock-oauth2-provider-authorization-code-lifetime | 120 |
| Durée de vie du jeton d’accès (s) | forgerock-oauth2-provider-access-token-lifetime | 3600 |
| Durée de vie du jeton de rafraîchissement (s) | forgerock-oauth2-provider-refresh-token-lifetime | 604800 (7 jours) |
| Durée de vie du jeton JWT OpenID Connect (s) | forgerock-oauth2-provider-jwt-token-lifetime | 3600 |
| Algorithme de signature des jetons OAuth2 | tokenSigningAlgorithm | HS256 |
| Utiliser des jetons sans état | statelessTokensEnabled | false |
| Paramètre de vérificateur de code obligatoire (PKCE) | forgerock-oauth2-provider-code-verifier-enforced | false |
| Durée de vie des demandes d’autorisation poussées (s) | pushedAuthorizationRequestsLifetime | 120 |
| Durée de vie du code d’appareil (s) | deviceCodeLifetime | 300 |
| Autoriser l’enregistrement dynamique ouvert des clients | forgerock-oauth2-provider-allow-open-dynamic-registration | false |
| Désactiver le point d’accès d’enregistrement dynamique | oauth2-provider-registration-endpoint-disabled | false |
| Autoriser les clients à passer outre le consentement | clientsCanSkipConsent | false |
Algorithme de signature#
tokenSigningAlgorithm signe les jetons sans état et les jetons d’accès JWT des clients qui les demandent. La valeur par défaut, HS256, est un secret partagé : préférez un algorithme asymétrique (RS256, ES256). Les serveurs de ressources vérifient alors les jetons avec les clés publiques du point de terminaison /connect/jwk_uri, sans connaître de secret.
L’option de client Émettre les jetons d’accès sous forme de JWT exige d’ailleurs un algorithme asymétrique : avec HS256, chaque demande de jeton de ce client échoue.
PKCE#
Avec forgerock-oauth2-provider-code-verifier-enforced, toute demande d’autorisation par code doit porter un code_challenge. Activez-le dès que vos clients publics (applications mobiles, SPA) utilisent PKCE.
Pour aller plus loin#
- Enregistrer un client : déclarer les applications autorisées.
- Grant types et Tokens.
Mis à jour le