Configuration d'un fournisseur OpenID Connect dans Liberty
Vous pouvez configurer un serveur Liberty afin qu'il opère en tant que fournisseur OpenID Connect et qu'il puisse utiliser la connexion unique Web.
Pourquoi et quand exécuter cette tâche
Vous pouvez configurer un serveur Liberty qui agira en tant que fournisseur OpenID Connect en activant la fonction openidConnectServer-1.0 de Liberty, en plus d'autres informations de configuration.
Procédure
- Ajoutez la fonction Liberty
openidConnectServer-1.0 et toute autre fonction
nécessaire dans le fichier server.xml. La fonction ssl-1.0 est également requise
pour la fonction openidConnectServer-1.0.
<feature>openidConnectServer-1.0</feature> <feature>ssl-1.0</feature>
- Définissez un fournisseur de services OAuth. OpenID Connect
repose sur le protocole OAuth 2.0 et vous devez
configurer un fournisseur de services OAuth
valide. La configuration d'un fournisseur de services OAuth
inclut les éléments oauth-roles,
oauthProvider et registre d'utilisateurs. Un
utilisateur qui est autorisé à utiliser OpenID Connect doit
également être mappé au rôle authenticated oauth-role. Pour plus d'informations, voir Définition d'un
fournisseur de service OAuth.
Les métadonnées OAuth sont mises à jour pour OpenID Connect, et les principaux ajouts figurent dans les métadonnées client. Si vous utilisez le mode databaseStore pour l'enregistrement des clients, voir Configuration d'un fournisseur OpenID Connect pour l'acceptation des demandes d'enregistrement client. Il est recommandé de suivre ce document pour gérer les clients. Si vous utilisez le mode localStore pour l'enregistrement client, vous pouvez enregistrer les attributs scope, preAuthorizedScope, grantTypes, responseTypes, introspectTokens et functionalUserId, ainsi que d'autres attributs.
- Ajoutez un élément openidConnectProvider
dont l'attribut oauthProviderRef
fait référence à l'attribut
oauthProvider configuré. Chaque oauthProvider peut uniquement être référencé par un openidConnectProvider, et deux ou plusieurs éléments
openidConnectProvider ne peuvent pas faire référence au même oauthProvider. Les
attributs name et secret de
l'élément client doivent correspondre à
l'ID client et au secret client
dy client OpenID Connect correspondant. Cet exemple est valable
pour le client OpenID Connect du serveur Liberty par défaut. Remarque : Dans cet exemple, le fournisseur OpenID suppose que le port SSL du client OpenID est défini sur 443.
<openidConnectProvider id="OidcConfigSample" oauthProviderRef="OAuthConfigSample" /> <oauthProvider id="OAuthConfigSample"> <localStore> <client name="client01" secret="{xor}LDo8LTor" displayname="client01" scope="openid profile email" redirect="https://server.example.com:443/oidcclient/redirect/client01"/> </localStore> </oauthProvider>
Remarque : Un client valide doit enregistrer son nom, sa redirection, sa portée et son secret pour le type d'octroi authorization_code. - Configurez le magasin de clés de confiance du serveur afin d'inclure le certificat de signataire des parties utilisatrices, ou des clients, qui sont pris en charge. Pour plus d'informations sur les magasins de clés, voir Activation de la communication SSL dans Liberty.
- 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}Lz4sLCgwLTs=" type="jks" location="${server.config.dir}/resources/security/BasicKeyStore.jks" /> <keyStore id="myTrustStore" password="{xor}Lz4sLCgwLTs=" 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.
Le formulaire de consentement utilisateur dans OpenID Connect est connectable, ce qui permet aux fournisseurs de créer et de gérer leur propre formulaire de consentement. Ce formulaire étant extrait sur SSL, vous devez configurer le magasin de clés de confiance afin d'inclure le certificat de signataire du serveur sur lequel est hébergé le formulaire de consentement. Si le formulaire de consentement par défaut est utilisé et que le magasin de clés de confiance utilisé pour OpenID Connect est configuré pour être différent du magasin de clés utilisé par le serveur Liberty, vous devez importer le certificat de signataire du serveur Liberty dans le magasin de clés de confiance OpenID Connect.
Remarque : Pour utiliser OpenID Connect, l'attribut scope doit inclure openid dans la liste des portées.Pour découvrir d'autres options de configuration du fournisseur OpenID Connect, consultez Fournisseur OpenID Connect (OP).
Pour plus d'options de configuration OAuth, voir OAuth.
Facultatif : Configurez votre fournisseur Liberty OpenID Connect pour émettre les jetons JSON Web Token (JWT) comme access_token.
Par défaut, Liberty émet des jetons access_token opaques. Les jetons opaques nécessitent que le destinataire du jeton rappelle le serveur ayant émis le jeton. Vous pouvez configurer le fournisseur Liberty OpenID Connect pour émettre à la place les jetons JWT en tant que jetons access_token qui incluent un mécanisme de vérification des jetons dans le jeton, en définissant jwtAccessToken="true" sur l'élément de configuration oauthProvider ou en implémentant l'interface de programmation de service (SPI) com.ibm.wsspi.security.oauth20.JwtAccessTokenMediator.
Pour plus d'informations sur l'interface, voir WebSphere OAuth 2.0 web single sign-on SPI ou la documentation Java fournie avec le produit dans le répertoire ${wlp.install.dir}/dev/spi/ibm/.
Facultatif : personnalisez le contenu du jeton id_token envoyé par le fournisseur Liberty OpenID Connect.
Par défaut, le fournisseur Liberty OpenID Connect émet des jetons id_token qui contiennent des informations sur le nom d'utilisateur et les membres du groupe. Vous pouvez personnaliser le contenu du jeton de plusieurs façons :- Personnalisation complète du contenu de id_token en implémentant le SPI com.ibm.wsspi.security.openidconnect.IDTokenMediator. Le SPI fournit la plus
grande flexibilité pour générer votre propre jeton personnalisé.
Pour plus d'informations sur l'interface, voir WebSphere OAuth 2.0 web single sign-on SPI ou la documentation Java fournie avec le produit dans le répertoire ${wlp.install.dir}/dev/spi/ibm/.
- Extraction d'attributs utilisateur additionnels du registre d'utilisateur fédéré en répertoriant les revendications additionnelles sur l'attribut customClaims de l'élément
openidConnectProvider dans la configuration du serveur. si le nom de la revendication est différent de celui de l'attribut dans le registre d'utilisateur fédéré, mappez le nom
de la revendication à l'attribut sur l'élément claimToUserRegistryMap.Par exemple, la configuration suivante ajoute plusieurs revendications et mappe la revendication alias à l'attribut de registre seeAlso et la revendication lastName à l'attribut sn :
<openidConnectProvider id="MyOP" oauthProviderRef="MyOauth" customClaims= "alias, email, lastName, employeeType, office"> <claimToUserRegistryMap alias="seeAlso" lastName="sn"/> ... </openidConnectProvider>
Pour plus d'informations, voir Configuration des demandes renvoyées par le noeud final UserInfo.
- Personnalisation complète du contenu de id_token en implémentant le SPI com.ibm.wsspi.security.openidconnect.IDTokenMediator. Le SPI fournit la plus
grande flexibilité pour générer votre propre jeton personnalisé.
Résultats
Sous-rubriques
- Utilisation d'un fournisseur OpenID Connect en tant que serveur d'autorisations OAuth 2.0
Un fournisseur OpenID Connect peut être utilisé en tant que fournisseur d'autorisations OAuth 2.0 normal pour l'émission d'un jeton_accès OAuth 2.0, et la prise en charge de l'ensemble des types d'octroi OAuth 2.0. - Configuration d'un fournisseur OpenID Connect pour l'acceptation de demandes de reconnaissance
Le noeud final de configuration de reconnaissance donne accès à des informations concernant les fonctions prises en charge par le serveur du fournisseur OpenID. - Configuration des demandes renvoyées par le noeud final UserInfo
Vous pouvez configurer le fournisseur OpenID Connect Liberty afin de personnaliser les demandes qui sont renvoyées par le noeud final UserInfo. - 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. - Configuration d'un fournisseur OpenID Connect pour l'utilisation de l'algorithme RSA-SHA256 pour la signature des jetons d'ID
Vous pouvez configurer le fournisseur OpenID Connect afin qu'il utilise l'algorithme RS256 pour la signature des jetons d'ID. - Configuration d'un fournisseur OpenID Connect pour l'acceptation des jetons JSON Web Tokens (JWT) pour les octrois d'autorisation
Vous pouvez configurer un serveur Liberty qui agit en tant que fournisseur OpenID Connect pour l'acceptation d'un jeton JSON Web en échange d'un jeton d'accès. - Configuration d'un fournisseur OpenID Connect pour l'acceptation des demandes d'enregistrement client
Le noeud final d'enregistrement client est un service géré par l'administrateur qui permet d'enregistrer, de mettre à jour, de supprimer et d'extraire des informations sur une partie utilisatrice OpenID Connect qui a l'intention d'utiliser le fournisseur OpenID Connect. A son tour, le processus d'enregistrement peut fournir des informations pour la partie utilisatrice, notamment le l'ID OAuth 2.0 Client et la valeur secrète du client, si elles ne sont pas spécifiées. - Formulaires personnalisés OpenID Connect
Vous pouvez remplacer la page de connexion par formulaire par défaut pour l'authentification d'utilisateur ou développer votre formulaire d'accord utilisateur pour collecter des données d'autorisation client. - Authentification d'un utilisateur
Le fournisseur OpenID Connect prend en charge le formulaire de connexion classique de Java™ Platform, Enterprise Edition (J2EE) pour l'authentification d'utilisateur.

Nom du fichier : twlp_config_oidc_op.html