Enregistrement dynamique des clients avec le nouveau fournisseur Connect d' OpenID

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

Il repose sur les spécifications « Connect Dynamic Client Registration » d' OpenID, disponibles à l'adresse 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, les applications OIDC peuvent également être créées de manière dynamique grâce à l'enregistrement dynamique des clients.

Le nœud final d'enregistrement de client dynamique se trouve ici : https://{{tenant}}/oauth2/register.

A propos de cette tâche

Configurez les paramètres d'enregistrement dynamique des clients, puis enregistrez dynamiquement la nouvelle application OIDC à l'aide de l'API d'enregistrement. L'application est soit une application « "OpenID Connect », soit une application « "OpenID Connect for Open Banking ».

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 d'authentification pris en charge sont « Code d'autorisation », « Implicite », « Mot de passe », « Jeton de rafraîchissement » et « Identifiants du client ». Si la valeur de la recette Open Banking n'est pas « Aucune », le type d'autorisation « Mot de passe » n'est pas autorisé.
Réclamations de jeton d'ID Les données par défaut concernant le jeton d'identification et les informations utilisateur, si elles ne sont pas spécifiées 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.
Durée de validité de l'objet de demande La durée de validité de l'objet de requête, exprimée en secondes. Maximum 2 147 483 647, minimum 1.
Exiger "exp" pour l'objet de demande Détermine si l'attribut « exp » est obligatoire dans l'objet de requête.
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.
Algorithmes de signature d'objet de demande autorisés Liste des algorithmes de signature autorisés pour le JWT de la requête signée. Si ce paramètre n'est pas défini, tous les algorithmes pris en charge sont autorisés.
Règle de transformation de demande Entrez la règle permettant de modifier la demande d'enregistrement dynamique de client. Si ce paramètre n'est pas défini, aucune modification n'est apportée à la demande d'enregistrement dynamique du client.
Recette Open Banking La recette Open Banking à appliquer à toutes les inscriptions dynamiques de clients. Lorsque ce champ est défini sur « Aucun », une application « 'OpenID Connect » est créée. Si la valeur définie est différente, une application « 'OpenID Connect for Open Banking » est créée.

Pour les sections « Déclaration logicielle », « Demande d'autorisation » et « Jeton d'accès d'enregistrement » des paramètres, consultez la section « Configuration des paramètres d'enregistrement dynamique des clients OIDC ».

Exiger l'authentification du jeton bearer pour l'enregistrement dynamique de client

Si l'autorisation de la requête est configurée pour exiger une autorisation par jeton « bearer » lors de l'enregistrement dynamique d'un client, un jeton d'accès initial est requis.

Créez un client d'API avec le droit d'accès Manage OIDC client registration dynamically. Pour créer le client API, consultez la section « Gestion de l'accès à l'API des applications ».

Une fois le client API créé, utilisez le flux client_credentials pour obtenir le jeton d'accès. Le code suivant est un exemple :

curl -ki -v https://{{tenant}}/v1.0/endpoint/default/token -d "grant_type=client_credentials&client_id=<clientId>&client_secret=<clientSecret>"

La requête d'enregistrement dynamique du client nécessite que le jeton « bearer » soit fourni dans l'en-tête d'autorisation.

Exiger MTLS pour l'enregistrement dynamique de client

Si l'autorisation de la requête est configurée pour exiger TLS mutuel, un certificat valide doit être présenté par le client pour la requête.

Enregistrer une nouvelle application à l'aide de l'API d'enregistrement

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 », « refresh_token » et « client_credentials »
id_token_signed_response_alg Algorithme de signature de jeton. Oui 'RS256', 'RS384', 'RS512', '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
portée Chaîne de caractères séparée par des espaces contenant les domaines autorisés. Oui chaîne
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
types de réponse Types de réponses utilisés par ce client. Oui Liste de chaînes
token_endpoint_auth_method Méthode d'authentification client pour le nœud final de jeton. Oui 'default', 'client_secret_basic', 'client_secret_post', 'private_key_jwt', 'tls_client_auth'
tls_client_auth_subject_dn Nom distinctif prévu du sujet du certificat utilisé par le client lors de l'authentification mutuelle par le protocole TLS. Oui chaîne
tls_client_auth_san_dns L'entrée SAN (nom de domaine) attendue dans le certificat que le client utilise lors de l'authentification par TLS mutuel. Oui chaîne
tls_client_auth_san_uri L'entrée SAN URI attendue dans le certificat utilisé par le client pour l'authentification TLS mutuelle. Oui chaîne
tls_client_auth_san_ip L'entrée SAN d'adresse IP attendue dans le certificat utilisé par le client pour l'authentification TLS mutuelle. Oui chaîne
tls_client_auth_san_email L'entrée SAN correspondant à l'adresse e-mail attendue dans le certificat que le client utilise pour l'authentification mutuelle par le protocole TLS. Oui chaîne
tls_client_certificate_bound_access_tokens Indique si la liaison de certificat pour le jeton d'accès est requise. Oui true ou false
algorithme_de_réponse_signée_des_informations_utilisateur L'algorithme de signature JWT pour la réponse contenant les informations utilisateur. Oui 'RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512', 'PS256', 'PS384', 'PS512'
algorithme_de_chiffrement_de_la_réponse_des_informations_utilisateur L'algorithme de chiffrement JWT utilisé pour les réponses contenant les informations utilisateur. Oui « RSA-OAEP », « RSA-OAEP-256 »
userinfo_encrypted_response_enc L'algorithme de chiffrement utilisé pour le contenu du JWT de réponse aux informations utilisateur. Oui 'A128GCM', 'A192GCM', 'A256GCM'

Exemple d'enregistrement d'une nouvelle application

Le code suivant est un exemple de requête lorsque l'enregistrement dynamique des clients est configuré pour exiger une autorisation par jeton « bearer ».

curl -ki -H "Authorization: bearer <access-token>" -H "Content-Type:application/json" -X POST https://{{tenant}}/oauth2/register --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}}/oauth2/register/<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 pouvez configurer d'autres options, telles que le mappage des attributs, la politique d'accès, les sources d'identité, les utilisateurs autorisés, etc. Pour configurer ces options, consultez la section « Configuration de l'authentification unique dans l'application OpenID Connect » ou « Configuration de l'authentification unique dans les applications OpenID Connect for Open Banking ».

Mettre à jour l'application OIDC à l'aide de l'API d'enregistrement

Le code suivant montre comment utiliser le registration_access_token jeton d'autorisation obtenu à l'étape précédente et envoyer une requête PUT pour modifier le client. Veuillez noter que les modifications apportées à la configuration de l'application OIDC seraient écrasées.

curl -ki -H "Authorization: bearer <registration_access_token>" -H "Content-Type:application/json" -X PUT https://{{tenant}}/oauth2/register/<client-id> --data-binary '{"redirect_uris":["https://www.redirect.com/callback"],"client_name":"MyApplication2"}'

Lire l'application OIDC à l'aide de l'API d'enregistrement

L'API d'enregistrement permet également de lire à nouveau l'application OIDC.

curl -ki -H "Authorization: bearer <registration-access-token>" https://{{tenant}}/oauth2/register/<clientId>

Supprimer une 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}}/oauth2/register/<clientId>

Jeton d'accès à l'enregistrement expiré

Si le jeton d'accès d'enregistrement expire, obtenez un nouveau jeton d'accès en utilisant l'ID client et la clé secrète du client qui a été enregistré. Voir « Obtenir un jeton d'accès initial ».