Configuration des ressources protégées OAuth 2.0 dans Liberty

Vous pouvez configurer un serveur Liberty afin de fonctionner comme serveur de ressources protégées OAuth 2.0.

Pourquoi et quand exécuter cette tâche

Vous pouvez configurer un serveur Liberty pour fonctionner en tant que serveur de ressources protégées OAuth 2.0 en activant la fonction openidConnectClient-1.0 dans Liberty et en définissant inboundPropagation="required" en plus des autres informations de configuration. La configuration du serveur de ressources OAuth 2.0 est similaire à la Configuration d'un client OpenID Connect dans Liberty.

Toute personne possédant un jeton de support OAuth access_token peut utiliser ce jeton pour accéder aux ressources associées dans Liberty. Le serveur Liberty valide à distance le jeton d'accès access_token sur le serveur d'autorisation OAuth ou sur le fournisseur OpenID Connect directement en appelant soit le noeud final OAuth 2.0 Token Introspection, soit la ressource OpenID Connect Userinfo Endpoint.

Procédure

  1. Ajoutez la fonction Liberty openidConnectClient-1.0 et toute autre fonction nécessaire dans le fichier server.xml. La fonction ssl-1.0 est également requise pour la fonction openidConnectClient-1.0. Ajoutez la déclaration d'élément suivante dans l'élément featureManager de votre fichier server.xml :
    <feature>openidConnectClient-1.0</feature> 	
    <feature>ssl-1.0</feature>
  2. Configurez un élément openidConnectClient et activez l'élément en tant que serveur de ressources partagées OAuth 2.0 en ajoutant inboundPropagation=”required”. Voici un exemple de configuration minimale qui fonctionne avec le fournisseur OpenID Connect du serveur Liberty et avec le serveur d'autorisation OAuth 2.0.
    <openidConnectClient id="RS" inboundPropagation="required"		
      clientId="client01" 		
      clientSecret="{xor}LDo8LTor" 		
      validationEndpointUrl="https://server.example.com:443/oidc/endpoint/OP/introspect">		
    </openidConnectClient>
    Remarque : Dans cet exemple de configuration, Liberty réalise l'introspection du jeton OAuth 2.0 en définissant validationMethod="introspect". Un sujet authentifié est créé à partir de l'objet JSON qui est directement renvoyé par le point final d'introspection sans qu'un registre d'utilisateurs ne soit requis.
    Remarque : Pour permettre à Liberty de réaliser une introspection de jeton, le serveur de ressources Liberty OAuth 2.0 doit s'enregistrer en tant que client OAuth sur le serveur d'autorisation OAuth ou sur le fournisseur OpenID Connect, où il peut effectuer une demande d'introspection de jeton. Les valeurs clientId et clientSecret sont fournies par le serveur d'autorisation.
  3. Configurez le magasin de clés de confiance du serveur en incluant les certificats de signataire du serveur d'autorisations et en modifiant la configuration SSL du serveur pour utiliser ce magasin. Pour plus d'informations sur les fichiers de clés, voir Activation de la communication SSL dans Liberty.

    Pour obtenir des informations sur les magasins de clés, voir Activation de la communication SSL dans Liberty.

  4. Facultatif : Configurez un registre d'utilisateur.

    L'identité d'utilisateur qui est renvoyée par le serveur d'autorisation n'est pas mappée à un utilisateur de registre par défaut, de sorte qu'aucun utilisateur n'est requis dans le registre d'utilisateurs. Toutefois, si l'attribut mapIdentityToRegistryUser de l'élément openidConnectClient est défini sur true, une entrée d'utilisateur doit exister pour l'identité appropriée qui est retournée par le serveur d'autorisation pour que l'authentification et l'autorisation aboutissent. Pour en savoir plus sur la configuration d'un registre d'utilisateurs, voir Configuration d'un registre d'utilisateurs dans Liberty.

  5. Facultatif : Configurez les filtres d'authentification.

    Si la fonction openidConnectClient-1.0 est activée et l'élément openidConnectClient n'est pas configuré avec un attribut authFilterRef, toute tentative de demande non authentifiée est authentifiée par cet élément openidConnectClient.

    Pour plus d'informations sur la configuration du filtre d'authentification, voir Filtres d'authentification.

  6. Facultatif : vous pouvez configurer Liberty en tant que serveur de ressources OAuth 2.0 pour travailler avec plusieurs serveurs d'autorisation et fournisseurs OpenID Connect en créant plusieurs éléments openidConnectClient et plusieurs filtres d'authentification. Chaque élément openidConnectClient définit une relation de confiance avec un serveur d'autorisation ou un fournisseur OpenID Connect et utilise l'attribut authFilterRef pour faire référence à un filtre d'authentification.
  7. Facultatif : vous pouvez configurer le serveur de ressources Liberty pour valider un jeton et recevoir les informations utilisateurs de la ressource OpenID Connect userinfo endpoint en définissant validationMethod="userinfo".
  8. Facultatif : Le serveur de ressources Liberty utilise les revendications au format JSON reçues du serveur d'autorisation pour créer un sujet d'authentification et vous pouvez définir des règles pour déterminer comment mapper JSON au sujet. Voir userIdentifier, groupIdentifier, UserUniqueIdentifier, realmIdentifier et realmName dans OpenID Connect Client.
  9. Facultatif : Un serveur de ressources protégées Liberty OAuth 2.0 attend de chaque demande un jeton d'accès valide et n'utilisera jamais un cookie SSO pour l'authentification. Cependant, il est possible de configurer Liberty pour créer un cookie SSO en définissant authnSessionDisabled="false".
  10. Facultatif : Vous pouvez également implémenter l'interface SPI com.ibm.wsspi.security.oauth.UserCredentialResolver de manière à mapper un JSON au sujet à l'aide d'un programme.

Résultats

Vous avez désormais établi la configuration minimale requise pour configurer un serveur Liberty en tant que serveur de ressources protégées OAuth 2.0 capable de communiquer avec un serveur d'autorisation OAuth ou un fournisseur OpenID Connect.

Icône indiquant le type de rubrique Rubrique Tâche



Icône d'horodatage Dernière mise à jour: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_config_oauth20_protected_resource
Nom du fichier : twlp_config_oauth20_protected_resource.html