Enregistrement dynamique de client
L'enregistrement dynamique de client permet à la partie utilisatrice d'OpenID Connect (OIDC) de s'enregistrer auprès du fournisseur OpenID Connect.
Avant de commencer
L'enregistrement dynamique des clients repose sur les spécifications de l' OpenID, notamment celles relatives à l'enregistrement dynamique des clients (Dynamic Client Registration) et à l' 1.0.
Les nouvelles applications OIDC sont créées par un administrateur titulaire ou un utilisateur disposant d'un accès administrateur au titulaire. Désormais, un client API disposant de l'habilitation appropriée peut également créer une application OIDC via un noeud final d'enregistrement dynamique de client. L'application créée est une « application personnalisée » dont la méthode de connexion est définie sur « Connexion via l' OpenID ».
Le nœud final d'enregistrement de client dynamique se trouve ici : https://{{tenant}}/v1.0/endpoint/default/client_registration.
Envisagez d'utiliser le nouveau point de terminaison d'enregistrement dynamique des clients s'il répond à vos besoins. Pour plus d'informations, consultez la section « Enregistrement dynamique des clients avec le nouveau fournisseur Connect d' OpenID ».
A propos de cette tâche
Pour enregistrer un client de manière dynamique, obtenez un jeton d'accès initial, puis enregistrez la nouvelle application OIDC à l'aide de l'API d'enregistrement.
Avant d'enregistrer un nouveau client, vérifiez les paramètres d'enregistrement dynamique des clients.Paramètres dynamiques d'enregistrement des clients
Les paramètres d'enregistrement dynamique des clients peuvent être configurés afin de définir les valeurs par défaut pour l'enregistrement dynamique des clients. Voir la section « Configuration des paramètres d'enregistrement dynamique des clients OIDC ».
Les paramètres concernés sont décrits dans le tableau ci-dessous.
| Zone | Descriptif |
|---|---|
| Types d'octroi | Les types de subventions à utiliser s'ils ne sont pas spécifiés dans la charge utile de l'enregistrement dynamique du client. Les types de jetons pris en charge sont « Code d'autorisation », « Implicite », « Mot de passe », « Flux d'appareil », « JWT bearer » et « Jeton de rafraîchissement ». |
| Réclamations de jeton d'ID | Ces champs sont renseignés par défaut avec les informations relatives au jeton d'identification et à l'utilisateur s'ils ne sont pas spécifiés dans la charge utile de l'enregistrement dynamique du client. |
| Réclamations de jeton | Les revendications par défaut pour l'introspection et le jeton d'accès JWT, si elles ne sont pas spécifiées dans la charge utile d'enregistrement dynamique du client. |
| Type de jeton d'accès | Le type de jeton d'accès à générer. Les valeurs autorisées sont « default » et « JWT ». |
| Algorithme de signature de jeton d'ID | L'algorithme utilisé pour signer les jetons d'identification, s'il n'est pas spécifié dans la charge utile d'enregistrement dynamique du client. |
| Accord de l'utilisateur | Indiquez s'il faut demander le consentement de l'utilisateur si celui-ci n'est pas spécifié dans la charge utile de l'enregistrement dynamique du client. |
| Durée de vie du jeton d'accès | La durée de validité du jeton d'accès, en secondes. Maximum 2 147 483 647, minimum 1. |
| Durée de vie du jeton d'actualisation | La durée de validité du jeton d'actualisation, en secondes. Maximum 2 147 483 647, minimum 1. |
| Appliquer la vérification PKCE | Indiquez si vous souhaitez appliquer le protocole PKCE lorsque celui-ci n'est pas spécifié dans la charge utile d'enregistrement dynamique du client. |
| Autoriser pour tous les utilisateurs | Vérifiez si tous les utilisateurs sont autorisés à utiliser ce client, si cela n'est pas précisé dans la charge utile d'enregistrement dynamique du client. |
| Autoriser les données d'identification client personnalisées | Détermine si les identifiants client personnalisés sont autorisés. Si cette option est définie sur « false », l'ID client et la clé secrète ne peuvent pas être spécifiés dans la charge utile d'enregistrement dynamique du client. |
Les sections « Déclaration du logiciel », « Demande d'autorisation » et « Jeton d'accès d'enregistrement » des paramètres ne s'appliquent pas à ce fournisseur Connect d' OpenID.
Acquérir un jeton d'accès initial
Pour accéder à un nœud final d'enregistrement de client dynamique, utilisez un jeton d'accès avec le droit d'accès Manage
OIDC client registration dynamically.
Créez un client d'API avec le droit d'accès Manage OIDC client registration dynamically. Pour créer un client API, consultez la section Création de clients API.
Une fois le client API créé, utilisez le flux client_credentials pour obtenir le jeton d'accès. Prenons cet exemple :
curl -ki -v https://{{tenant}}/v1.0/endpoint/default/`token -d "grant_type=client_credentials&client_id=<clientId>&client_secret=<clientSecret>"
Enregistrer une nouvelle application à l'aide de l'API d'enregistrement
En utilisant le jeton d'accès généré dans la section précédente, vous pouvez créer une nouvelle application OIDC.
Le tableau ci-dessous présente la liste des métadonnées client actuellement prises en charge.
| Nom des métadonnées | Description des métadonnées | Facultatif | Valeurs valides |
|---|---|---|---|
| client_name | Nom de l'application | Oui | chaîne |
| client_id | L'ID client est automatiquement généré s'il n'est pas fourni. | Oui | chaîne |
| client_secret | Le secret du client est automatiquement généré s'il n'est pas fourni. | Oui | chaîne |
| redirect_uris | Liste des URI de redirection. | Non | liste des URI de chaîne |
| grant_types | Tableau des types d'octroi que l'application peut utiliser. | Oui | « authorization_code », « implicit », « password », « urn:ietf:params:oauth:grant-type:device_code », « urn:ietf:params:oauth:grant-type:jwt-bearer » et « refresh_token » |
| id_token_signed_response_alg | Algorithme de signature de jeton. | Oui | 'RS256', 'RS384', 'RS512', 'HS256', 'HS384', 'HS512', 'ES256', 'ES384', 'ES512', 'PS256', 'PS384', 'PS512' |
| all_users_entitled | Défini sur true si tous les utilisateurs sont habilités à utiliser cette application. | Oui | true ou false |
| jwks_uri | URL du document de l'ensemble de clés Web JSON du client. | Oui | URL |
| consent_action | Demande de consentement de l'utilisateur. | Oui | ‘never_prompt’ ou ‘always_prompt’ |
| enforce_pkce | Utilisation forcée de PKCE. | Oui | true ou false |
| id_token_claims | Liste des réclamations pour id_token et informations utilisateur. | Oui | liste de chaînes |
| token_claims | Liste de réclamations pour l'introspection et le jeton d'accès JWT. | Oui | liste de chaînes |
| initiate_login_uri | URL permettant de démarrer la connexion. | Oui | URL |
| token_endpoint_auth_method | Méthode d'authentification client pour le nœud final de jeton. | Oui | 'default', 'client_secret_basic', 'client_secret_post', 'client_secret_jwt', 'private_key_jwt' |
Exemple d'enregistrement d'une nouvelle application
curl -ki -H "Authorization: bearer <access-token>" -H "Content-Type:application/json" -X POST https://{{tenant}}/v1.0/endpoint/default/client_registration --data-binary '{"redirect_uris":["https://www.redirect.com"],"client_name":"MyApplication"}'réponse{
"grant_types": [
"authorization_code"
],
"client_secret_expires_at": "0",
"registration_client_uri": "https://{{tenant}}/v1.0/endpoint/default/client_registration/<clientId>",
"client_secret": "<client_secret>",
"redirect_uris": [
"https://www.redirect.com"
],
"client_id_issued_at": "1586933118",
"client_name": "MyApplication",
"registration_access_token": "<access_token>",
"client_id": "<clientId>",
"id_token_signed_response_alg": "RS256"
}Configuration supplémentaire de l'application
Une fois l'application créée, vous disposez d'autres options à configurer, telles que le mappage des attributs, la politique d'accès, les sources d'identité, les utilisateurs autorisés, etc. Pour configurer ces options, voir Configuration de la connexion unique dans le fournisseur OpenID Connect.
L'option de mise à jour à l'aide de l'API d'enregistrement n'est pas prise en charge.
Lire l'application OIDC à l'aide de l'API d'enregistrement
curl -ki -H "Authorization: bearer <registration-access-token>" https://{{tenant}}/v1.0/endpoint/default/client_registration/<clientId>Supprimer l'application OIDC à l'aide de l'API d'enregistrement
L'API d'enregistrement permet également de supprimer l'application OIDC.
curl -ki -H "Authorization: bearer <registration-access-token>" -X DELETE https://{{tenant}}/v1.0/endpoint/default/client_registration/<clientId>
Jeton d'accès à l'enregistrement expiré
Si le jeton d'accès à l'enregistrement arrive à expiration, achetez-en un nouveau. Voir « Obtenir un jeton d'accès initial ».