
![[8.5.5.4 ou ultérieure]](../ng_v8554.gif)
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.
Avant de commencer
In a local store configuration, the client registration service is limited to only retrieving OpenID Connect Relying Party information. Vous pouvez modifier le fichier server.xml afin d'ajouter des opérations supplémentaires pour enregistrer, mettre à jour, ou supprimer une partie utilisatrice OpenID Connect.
Dans une configuration de magasin de base de données, il n'existe pas de restriction sur le service d'enregistrement client et toutes les opérations s'effectuebt via l'interface REST.
Le noeud final d'enregistrement client est un noeud final d'administration protégé avec la règle clientManager. Pour accéder à ce noeud final, l'utilisateur doit se voir octroyer le rôle clientManager par l'administrateur.
Le rôle clientManager est l'un des rôles oauth-roles définis pour un oauthProvider. Voici un exemple de configuration qui illustre l'octroi du rôle clientManager à l'utilisateur Alice ou aux membres du groupe clientAdministrator.
<oauth-roles>
<authenticated>
<special-subject type="ALL_AUTHENTICATED_USERS" />
</authenticated>
<clientManager>
<group name="clientAdministrator" />
<user name="Alice" />
</clientManager>
</oauth-roles>
Pourquoi et quand exécuter cette tâche
Les informations d'enregistrement client relatives à une partie utilisatrice OpenID Connect sont largement utilisées pour définir les contraintes du scénario d'utilisation du client. Par ailleurs, d'autres opérations OP qui sont opaques pour le client utilisent les métadonnées d'enregistrement client pour des décisions d'autorisation.
L'exemple suivant suppose que le Liberty OP est configuré avec SSL sur le port 443.
https://server.example.com:443/oidc/endpoint/<provider_name>/registration
L'exemple précédent suppose également que le fichier server.xml est configuré avec un nom d'utilisateur : clientAdmin et un mot de passe : clientAdminPassword, qui utilise oauth-role: clientManager.
Les métadonnées d'enregistrement client comportent les paramètress suivants :
Nom d'attribut | Type de données | Obligatoire/Facultatif | Description |
---|---|---|---|
client_id | Entrée/Sortie | Facultatif | Identificateur client qui est enregistré avec OP. Sauf indication contraire, cette valeur de paramètre est générée lors de l'enregistrement. Il s'agit d'une chaîne. |
client_secret | Entrée/Sortie | Facultatif | Valeur secrète du client qui est enregistrée avec OP. Sauf indication contraire, cette valeur de paramètre est générée lors de l'enregistrement. Il s'agit d'une chaîne. Pendant une opération de mise à jour, la valeur de paramètre ‘*’ conserve la valeur existante. Une valeur de paramètre vide génère un nouveau nom client_secret. Une valeur de paramètre non vide remplace la valeur existante par la nouvelle valeur spécifiée. |
client_name | Entrée/Sortie | Facultatif | Description du client qui est enregistrée avec OP. Sauf indication contraire, ce paramètre est défini sur la valeur par défaut du paramètre client_id. Il s'agit d'une chaîne. |
application_type | Entrée | Facultatif | Type d'application qui décrit le client.
Sauf indication contraire,
la valeur par défaut est web. Il s'agit d'une chaîne. Par exemple, les valeurs possibles sont les suivantes :
|
response_types | Entrée | Facultatif | Contraintes de type de réponse qui sont utilisées par ce client. Sauf indication contraire,
la valeur par défaut est code.
Il s'agit d'un tableau JSON. Par exemple, les valeurs possibles sont les suivantes :
Pour un nom response_type spécifique, le nom grant_types correspondant doit être spécifié. Pour plus d'informations, voir response_types sur le site Web Client Metadata website. |
grant_types | Entrée | Facultatif | Contraintes de type d'octroi qui sont utilisées par ce client. Sauf indication contraire,
la valeur par défaut est authorization_code.
Il s'agit d'un tableau JSON. Par exemple, les valeurs possibles sont les suivantes :
|
redirect_uris | Entrée | Facultatif | Tableau des URI de redirection auquel le client est contraint. Il s'agit d'un tableau JSON. |
post_logout_redirect_uris | Entrée | Facultatif | Tableau des URI de redirection post connexion auquel le client est contraint. Il s'agit d'un tableau JSON. |
trusted_uri_prefixes | Entrée | Facultatif | Tableau des préfixes d'URI sécurisés que le client a jugés sûrs pour l'envoi des jetons d'accès. Il s'agit d'un tableau JSON. |
scope | Entrée | Facultatif | Valeurs de portée, délimitées par des espaces, auxquelles le client est contraint. Il s'agit d'une chaîne. Si le client est autorisé à demander une portée, la valeur ALL_SCOPES peut être utilisée. |
preauthorized_scope | Entrée | Facultatif | Valeurs de portée, délimitées par des espaces, que le client pré-autorise et qui ne requièrent pas l'accord de l'utilisateur. Il s'agit d'une chaîne. |
subject_type | Entrée | Facultatif | Contrainte de type de sujet qui est décrite par le client. Il s'agit d'une chaîne. Par exemple, les valeurs possibles sont les suivantes :
|
token_endpoint_auth_method | Entrée | Facultatif | Contrainte de méthode d'authentification de noeud final de jeton
qui est utilisée par le client. Sauf indication contraire,
la valeur par défaut est client_secret_basic.
Il s'agit d'une chaîne. Par exemple, les valeurs possibles sont les suivantes :
|
functional_user_id | Entrée | Facultatif | Ce paramètre indique l'ID utilisateur à associer à une demande effectuée sur le compte d'un client dans un type d'octroi client_credentials. Il s'agit d'une chaîne. |
functional_user_groupIds | Entrée | Facultatif | Liste des ID de groupe à associer aux jetons
d'accès
obtenus par ce client avec le type d'accord de données
d'identification client. La valeur est une liste d'ID groupe dont l'utilisateur fonctionnel
est membre, où les ID groupe sont des chaînes sensibles à la casse. Les chaînes
sont définies par le serveur d'autorisations. Si la valeur contient
plusieurs ID groupe, leur ordre n'a pas d'importance. Si la liste est vide, la
demande est omise. Lorsque ce paramètre de métadonnées client est spécifié,
la valeur est retournée dans le paramètre de réponse functional_user_groupIds
du noeud final d'introspection pour les jetons d'accès qui sont émis pour ce client avec un octroi
de données d'identification client. Si le paramètre functional_user_id n'est pas utilisé, il est ignoré. Remarque : Les
serveurs d'autorisations
ne doivent pas faire confiance au client pour l'auto-assertion de ce paramètre.
|
introspect_tokens | Entrée | Facultatif | Valeur de paramètre qui indique si le client dispose des droits d'accès pour inspecter un jeton d'accès émis par l'opération. Il s'agit d'une valeur booléenne. |
registration_client_uri | Sortie uniquement | N/A | Paramètre qui est renvoyé dans une réponse avec la valeur qui indique l'adresse URL unique pour un client enregistré. Il s'agit d'une chaîne. |
client_secret_expires_at | Sortie uniquement | N/A | Paramètre qui est renvoyé dans une réponse avec la valeur qui indique le nombre de secondes de 1970-01- 01T0:0:0Z tel que mesuré dans UTC, auquel la valeur secrète du client expire. La valeur 0 indique l'absence de délai d'expiration. |
client_id_issued_at | Sortie uniquement | N/A | Paramètre qui est renvoyé dans une réponse avec la valeur qui indique le nombre de secondes de 1970-01- 01T0:0:0Z tel que mesuré dans UTC, auquel l'ID client a été émis. La valeur 0 indique qu'aucune heure d'émission de l'ID client n'a été identifiée. |