Configuration d'un fournisseur OpenID Connect pour l'activation de demandes OAuth à deux étapes
Le flux OAuth classique se compose de trois "étapes", ou stades d'interaction entre un client et un serveur d'autorisation. Dans les scénarios OAuth à deux étapes, le client utilise des portées préautorisées de sorte qu'aucune interaction avec l'utilisateur n'est nécessaire, ce qui évite d'avoir à effectuer l'une des étapes dans le flux classique. Plus précisément, l'utilisateur n'a pas besoin de s'authentifier auprès du serveur d'autorisations ou de donner son accord pour le partage des informations spécifiées par les portées demandées. Au lieu de cela, tous les paramètres des portées demandées sont considérés comme préautorisés et sont automatiquement ajoutés au jeton de demande, lequel est envoyé au serveur d'autorisations.
Avant de commencer
Pourquoi et quand exécuter cette tâche
Dans les scénarios avec deux étapes ou stades, un client OpenID Connect peut envoyer une demande HTTP à deux étapes avec un élément grant type de type client_credential ou resource owner password. Ces demandes ne passent pas par le noeud final d'autorisation, il n'y a donc par de formulaire d'accord de portée pour que les utilisateurs confirment et approuvent les portées demandées. Toutefois, le fournisseur OpenID Connect doit quand même traiter les portées autorisées dans son contenu access_token.
Les serveurs Liberty qui sont configurés en tant que fournisseurs OpenID Connect sont équipés pour gérer l'approbation des demandes OAuth à deux étapes des portées préautorisées en utilisant les critères suivants :
- Si la valeur de paramètre grant_type d'une demande est client_credential ou resource owner password et que la demande est de type OAuth 2.0, toutes les portées qui sont définies dans la demande sont approuvée et elles sont copiées dans le contenu du jeton d'accès. Il s'agit du comportement existant de la fonction OAuth 2.0.
- Si la demande est de type OpenID Connect, JWT Token OAuth ou
OpenID Connect, les critères suivants sont utilisés :
- Si aucun paramètre de portée n'est spécifié dans la demande, le fournisseur OpenID Connect n'acceptera pas la demande.
- Les portées demandées doivent être présentes dans la liste de portées définies par l'attribut scope de la configuration client et elles doivent aussi être indiquées dans la liste preAuthorizedScope de la configuration client.
Cette tâche démontre comment configurer un serveur Liberty faisant office de fournisseur OpenID Connect pour l'activation de demandes OAuth à deux étapes.
Procédure
<oauthProvider id="OAuthConfigSample" ...>
....
<localStore>
<client name="client01" secret="{xor}..."
displayname="client01"
scope="profile email phone"
preAuthorizedScope="profile email"
enabled="true"/>
....
</localStore>
</oauthProvider>