Référentiel Liberty[8.5.5.4 ou ultérieure]

Configuration d'un client OpenID Connect dans le profil Liberty

Vous pouvez configurer un serveur de profil Liberty afin qu'il opère en tant que client OpenID Connect, ou partie utilisatrice, afin de pouvoir tirer parti de la connexion unique Web et utiliser un fournisseur OpenID Connect en tant que fournisseur d'identité.

Pourquoi et quand exécuter cette tâche

Vous pouvez configurer un serveur de profil Liberty qui agira en tant que client OpenID Connect en activant la fonction openidConnectClient-1.0 du profil Liberty, en plus d'autres informations de configuration.

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. Voici un exemple de configuration minimale qui fonctionne avec le fournisseur OpenID Connect du serveur de profil Liberty par défaut.

    Le client doit comporter une application correctement configurée disponible avec le masque d'URL donné et pouvant traiter les demandes de redirection depuis un fournisseur OpenID Connect. Cette URL doit aussi précisément correspondre à l'URL de redirection enregistrée pour le client avec le fournisseur OpenID.

    Remarque : Dans cet exemple, le client suppose que le port SSL du fournisseur OpenID est défini sur 443.
    <openidConnectClient id="client01" 		
        clientId="client01" 		
        clientSecret="{xor}LDo8LTor" 		
        authorizationEndpointUrl="https://server.example.com:443/oidc/endpoint/OidcConfigSample/authorize" 		
        tokenEndpointUrl="https://server.example.com:443/oidc/endpoint/OidcConfigSample/token"> 	
    </openidConnectClient>
    Dans cet exemple de configuration minimale, les valeurs supposées par défaut sont les suivantes :
    • scope=openid profile : La portée openid est obligatoire et vous pouvez utiliser l'attribut scope pour éditer les portées obligatoires. Par exemple, vous pouvez remplacer la portée obligatoire scope par openid profile email.
    • Cette partie utilisatrice enregistre son URL de redirection auprès du fournisseur OpenID en tant que https://<host name>:<ssl port>/oidcclient/redirect/client01, où le nom d'hôte et le port SSL sont automatiquement résolus, et client01 est l'ID de l'élément de configuration openidConnectClient. S'il y a un proxy en face de la partie utilisatrice, vous pouvez remplacer le nom d'hôte et le port par l'attribut redirectToRPHostAndPort, et définir redirectToRPHostAndPort sur https://<host name>:<ssl port>.
  3. Configurez un registre d'utilisateurs. Les identités qui sont renvoyées par le fournisseur OpenID ne sont pas mappées à un registre d'utilisateurs par défaut ; par conséquent, aucun utilisateur ne doit obligatoirement être configuré dans le registre. Toutefois, si l'attribut mapIdentityToRegistryUser de l'élément openidConnectClient est défini sur true, une entrée d'utilisateur pour l'identité appropriée doit être retournée par le fournisseur OpenID afin que l'authentification et l'autorisation aboutissent. Pour plus d'informations sur la configuration d'un registre d'utilisateurs, voir Configuration d'un registre d'utilisateurs pour le profil Liberty.
  4. Configurez le magasin de clés de confiance du serveur afin d'inclure le certificat de signataire des fournisseurs OpenID Connect qui sont pris en charge. Pour plus d'informations sur les magasins de clés, voir Activation de la communication SSL pour le profil Liberty.
  5. Modifiez la configuration SSL du serveur afin d'utiliser le magasin de clés de confiance configuré.
    <sslDefault sslRef="DefaultSSLSettings" /> 
    <ssl id="DefaultSSLSettings" keyStoreRef="myKeyStore" trustStoreRef="myTrustStore" /> 	
    <keyStore id="myKeyStore" password="{xor}EzY9Oi0rJg==" type="jks" location="${server.config.dir}/resources/security/BasicKeyStore.jks" /> 	
    <keyStore id="myTrustStore" password="{xor}EzY9Oi0rJg==" type="jks" location="${server.config.dir}/resources/security/BasicTrustStore.jks" />

    OpenID Connect est configuré pour utiliser la configuration SSL par défaut qui est spécifiée par le serveur. Par conséquent, la configuration SSL par défaut pour le serveur doit utiliser le magasin de clés de confiance qui est configuré pour OpenID Connect.

  6. [8.5.5.5 ou ultérieure]Facultatif : configurez un fournisseur OpenID Connect tiers.

    Pour configurer le client Liberty OpenID Connect afin qu'il utilise un fournisseur OpenID Connect tiers (Microsoft Azure ou Google), vous devez configurez les attributs ci-après. Les valeurs d'attribut peuvent être obtenues en appelant le noeud final de reconnaissance du fournisseur OpenID, lequel fournit un document JSON dans le chemin formé par la concaténation de la chaîne /.well-known/openid-configuration vers l'émetteur.

    1. Définissez l'attribut jwkEndpointUrl sur l'URL du jeu de clés Web JSON du fournisseur OpenID JWK qui est défini sous la forme jwks_uri dans le fichier de reconnaissance. Par exemple, pour utiliser le fournisseur OpenID de Google, vous pouvez définir jwkEndpointUrl = "https://www.googleapis.com/oauth2/v2/certs".
    2. Définissez l'attribut issuerIdentifier sur l'élément issuer tel que défini dans le fichier de reconnaissance. Un jeton d'ID qui ne contient pas cette valeur sous la forme d'une demande iss est rejeté. Par exemple, vous pouvez définir issuerIdentifier="accounts.google.com"si vous utilisez Google comme fournisseur OpenID.
    3. Définissez signatureAlgorithm="RS256". L'algorithme de signature par défaut du client Liberty OpenID Connect est HS256.
    4. Définissez l'attribut userIdentityToCreateSubject sur un nom de demande utilisé par le jeton d'ID du fournisseur qui représente un identificateur unique d'utilisateur. Par exemple, vous pouvez définir userIdentityToCreateSubject ="email" si vous utilisez le fournisseur OpenID de Google, et userIdentityToCreateSubject ="upn" ou userIdentityToCreateSubject ="unique_name" si vous utilisez Microsoft Azure.
    5. Définissez l'attribut groupIdentifier sur le nom de demande qui représente les appartenances ou les rôles de groupe de l'utilisateur. Par exemple, vous pouvez définir groupIdentifier="groups" si vous utilisez Microsoft Azure.

    Pour découvrir d'autres options de configuration du client OpenID Connect, voir Eléments de configuration dans le fichier server.xml.

  7. [8.5.5.5 ou ultérieure]Facultatif : filtre d'authentification.

    Lorsque la fonction openidConnectClient-1.0 est activée et que l'élément openidConnectClient n'est pas configuré avec un attribut authFilterRef, toute demande non authentifiée est authentifiée via le fournisseur OpenID Connect.

    Pour plus d'informations sur la configuration du filtre d'authentification, voir Référentiel Liberty[8.5.5.5 ou ultérieure]Filtres d'authentification.

  8. Prenez en charge plusieurs fournisseurs OpenID Connect.

    Vous pouvez configurer le profil Liberty en tant que partie utilisatrice OpenID Connect pour plusieurs fournisseurs OpenID Connect en créant plusieurs éléments openidConnectClient et plusieurs filtres d'authentification. Chaque élément openidConnectClient définit une relation de connexion unique avec un fournisseur OpenID Connect, et utilise l'attribut authFilterRef pour faire référence à un filtre d'authentification.

Résultats

Vous avez maintenant établi la configuration minimale qui est nécessaire pour la configuration d'un serveur de profil Liberty en tant que client OpenID Connect Client capable de communiquer avec d'autres serveurs de profil Liberty configurés en tant que fournisseurs OpenID Connect.

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

Dispositions pour les centres de documentation | Commentaires


Icône d'horodatage Dernière mise à jour: Wednesday, 2 September 2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_config_oidc_rp
Nom du fichier : twlp_config_oidc_rp.html