OAuth2 & OIDC

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.

Fenêtre Ajouter un service de la console, OAuth2 Provider sélectionné Fenêtre Ajouter un service de la console, OAuth2 Provider sélectionné
Le service OAuth2 Provider (1), créé avec ses valeurs par défaut (2).

Avec ssoadm :

bash
./ssoadm.sh add-svc-realm --realm /partenaires --servicename OAuth2Provider

Le document de découverte du royaume est alors disponible, par exemple pour le royaume partenaires :

texte
https://<serveur>/tosiam/oauth2/partenaires/.well-known/openid-configuration

Il 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 :

Faites défiler le tableau
RéglageCléDéfaut
Durée de vie du code d’autorisation (s)forgerock-oauth2-provider-authorization-code-lifetime120
Durée de vie du jeton d’accès (s)forgerock-oauth2-provider-access-token-lifetime3600
Durée de vie du jeton de rafraîchissement (s)forgerock-oauth2-provider-refresh-token-lifetime604800 (7 jours)
Durée de vie du jeton JWT OpenID Connect (s)forgerock-oauth2-provider-jwt-token-lifetime3600
Algorithme de signature des jetons OAuth2tokenSigningAlgorithmHS256
Utiliser des jetons sans étatstatelessTokensEnabledfalse
Paramètre de vérificateur de code obligatoire (PKCE)forgerock-oauth2-provider-code-verifier-enforcedfalse
Durée de vie des demandes d’autorisation poussées (s)pushedAuthorizationRequestsLifetime120
Durée de vie du code d’appareil (s)deviceCodeLifetime300
Autoriser l’enregistrement dynamique ouvert des clientsforgerock-oauth2-provider-allow-open-dynamic-registrationfalse
Désactiver le point d’accès d’enregistrement dynamiqueoauth2-provider-registration-endpoint-disabledfalse
Autoriser les clients à passer outre le consentementclientsCanSkipConsentfalse

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.

Réglages du service OAuth2 Provider : Algorithme de signature des jetons OAuth2 réglé sur RS256 Réglages du service OAuth2 Provider : Algorithme de signature des jetons OAuth2 réglé sur RS256
L’algorithme de signature des jetons, passé ici à RS256.

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#

Mis à jour le