Connexions IAM basées sur le contrôle d'accès (RBAC)
Cette rubrique fournit des instructions pour la gestion informatique sur la préparation d'une application intégrée au domaine qui active le contrôle d'accès basé sur les rôles à l'aide de réclamations personnalisées de jeton Web JSON (JWT). Les utilisateurs de domaine peuvent ainsi se connecter à la base de données à l'aide de leurs informations d'identification de domaine au lieu du mot de passe de schéma.
Ce chapitre permet aux utilisateurs de domaine de s'authentifier auprès de la base de données avec leurs informations d'identification de domaine plutôt que d'utiliser le mot de passe propre au schéma.
- créer des attributs personnalisés pour les utilisateurs,
- Affecter un rôle personnalisé
- Créer un domaine Application intégrée
- Définir la déclaration personnalisée
- Activation de la connexion IAM pour le schéma Autonomous Database
- Créer un fichier de connexion
Nous allons utiliser le domaine
Default
tout au long de ce chapitre, mais vous pouvez sélectionner n'importe quel domaine de votre préférence.
créer des attributs personnalisés pour les utilisateurs,
- Accédez à : Identité → Domaines → Valeur par défaut. Cliquez sur l'onglet Gestion des schémas et sélectionnez Attributs utilisateur.
- Cliquez sur Ajouter un attribut sous Attributs utilisateur.
- Dans la boîte de dialogue Ajouter des attributs, renseignez les champs suivants :
- Nom d'affichage : ORDS RBAC
- Nom :rbac_ords
- Description :Contrôle d'accès basé sur les rôles pour ORDS
- Type de données : tableau de chaînes :
Vous pouvez laisser les autres champs à leur état par défaut.
Cliquez sur Ajouter. Vous avez ajouté l'attribut personnalisé.
- Recherchez l'attribut que vous venez d'ajouter en saisissant Personnalisé dans le champ de recherche. Vous pouvez afficher l'attribut ORDS RBAC dans la liste.
Cliquez sur Modifier un attribut.
- Copiez et notez la valeur de FQN (Nom complet qualifié).
Dans cet exemple, le FQN est urn:ietf:params:scim:schemas:idcs:extension:custom:User:rbac_ords.
Affecter un rôle personnalisé
- Accédez à : Identité → Domaines → Valeur par défaut. Cliquez sur l'onglet Gestion des utilisateurs et sélectionnez votre nom utilisateur dans la liste des utilisateurs affichée.
Cliquez sur Modifier l'utilisateur. Faites défiler la page vers le bas jusqu'au champ Autres informations et entrez SQL Developer, SODA Developer sous ORDS RBAC.
Pour plus d'informations sur les rôles ORDS, reportez-vous à ce chapitre sur A propos des rôles utilisateur Oracle REST Data Services.
Une fois les rôles ajoutés, cliquez sur Enregistrer les modifications.
Créer un domaine Application intégrée
Nous développerons une application intégrée au sein du domaine qui émettra un jeton JWT lors de la connexion.
- Accédez à : Identité → Domaines → Valeur par défaut. Cliquez sur l'onglet Applications intégrées et sélectionnez Ajouter une application.
- Cliquez sur Application confidentielle et sélectionnez Lancer le workflow.
- Dans la boîte de dialogue Ajouter une application confidentielle, indiquez les champs suivants :
- Nom : entrez le nom d'application confidentielle. Par exemple, RBAC d'extension de feuille de calcul.
- Description : entrez la description. Par exemple, Application intégrée pour le contrôle d'accès basé sur les rôles du complément de feuille de calcul.
Cliquez sur Soumettre.
La page de l'application RBAC de complément de feuille de calcul que vous venez d'ajouter apparaît.
- Cliquez sur Modifier la configuration OAuth dans l'onglet Configuration OAuth de la page RBAC d'extension de feuille de calcul.
- Sous Configuration du serveur de ressources, sélectionnez Configurer cette application comme serveur de ressource maintenant.
- Dans Configurer les API d'application devant être protégées par OAuth, sélectionnez 3600 comme expiration de jeton d'accès (secondes).
- Dans le champ Audience principale, entrez ssaddin/.
- Cliquez sur Ajouter des portées et ajoutez rbac Portée.
- Sous Configuration client, indiquez les champs suivants :
- Sélectionnez Configurer cette application comme client maintenant.
- Sélectionnez Implicite sous Types d'octroi autorisés.
- Entrez la valeur suivante dans le champ URL de réacheminement :
https://static.oracle.com/cdn/spreadsheet/red-4/redirector.html
- Entrez la valeur suivante dans le champ URL de post-déconnexion :
https://static.oracle.com/cdn/spreadsheet/red-4/redirector.html
Cliquez sur Soumettre.Remarque
Veillez à activer l'application.
Définir une déclaration personnalisée
Pour inclure des rôles utilisateur dans le jeton JWT, nous devons mettre en correspondance l'attribut personnalisé établi dans la première section avec le jeton JWT à l'aide d'une demande personnalisée.
Pour ce faire, nous devons créer une application intégrée temporaire supplémentaire et y joindre la réclamation personnalisée.
Créer une application intégrée de domaine d'identité
- Accédez à : Identité → Domaines → Valeur par défaut.
- Cliquez sur l'onglet Applications intégrées et sélectionnez Ajouter une application.
- Cliquez sur Application confidentielle et sélectionnez Lancer le workflow.
- Entrez le nom de l'application : Application intégrée de domaine d'identité
- Entrer la description : Il s'agit d'une application intégrée au domaine.
Cliquez sur Soumettre.
- Sur la page Application intégrée de domaine d'identité, sélectionnez l'onglet Configuration OAuth.
- Cliquez sur Modifier la configuration OAuth dans la configuration du serveur de ressources. Dans la boîte de dialogue Modifier la configuration OAuth, renseignez les champs suivants :
- Sous Configuration du client, sélectionnez la valeur par défautConfigurer cette application comme client maintenant.
- Sous Autorisation, sélectionnez Informations d'identification client. Conservez l'état par défaut des autres configurations.
- Sélectionnez Ajouter des rôles d'application.
- Dans la boîte de dialogue Ajouter des rôles d'application, cliquez sur Administrateur de domaine d'identité, puis sélectionnez Ajouter.
- Une fois les rôles d'application ajoutés, cliquez sur Soumettre.
- Activez l'application.
Remarque
Veillez à prendre note de l'ID client et de la clé secrète client dans la section Informations générales de l'application intégrée.
Créer une nouvelle réclamation pour le jeton JWT
CLIENT ID
, CLIENT SECRET
et DOMAIN URL
sont requis pour extraire un nouveau jeton d'accès pour l'application d'administrateur de domaine d'identité.
Nous avons les éléments CLIENT ID
et CLIENT SECRET
de l'application intégrée de domaine que vous avez créée à l'étape précédente.
Le fichier DOMAIN URL
se trouve sur la page du domaine sous Informations sur le domaine.
Exécutez la commande suivante et remplacez les valeurs (CLIENT ID)
, (CLIENT SECRET)
et (DOMAIN URL)
par vos valeurs.
export ACCESS_TOKEN=$(curl -s -i -u"(CLIENT ID):(CLIENT SECRET)" -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" --request POST (DOMAIN URL)/oauth2/v1/token -d
"grant_type=client_credentials&scope=urn:opc:idm:__myscopes__" | tail -n +1 | grep -o
'"access_token":"[^"]*' | cut -d'"' -f4)
Client ID
: 123a1234e1234567aa12345a1abcdefg1Client Secret
: idcscs-12a1a123-a123-1234-1234-e1a05aabc123Domain URL
: https://idcs-a123ab1ab12a4bb99a9aa9ab99aabbb9.identity.oraclecloud.com:443
export ACCESS_TOKEN=$(curl -s -i -u"123a1234e1234567aa12345a1abcdefg1: idcscs-12a1a123-a123-1234-1234-e1a05aabc123" -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" --request POST https://idcs-a123ab1ab12a4bb99a9aa9ab99aabbb9.identity.oraclecloud.com:443/oauth2/v1/token -d "grant_type=client_credentials&scope=urn:opc:idm:__myscopes__" |
tail -n +1 | grep -o '"access_token":"[^"]*' | cut -d'"'
-f4)
echo $ACCESS_TOKEN
L'image ci-dessous montre comment les commandes ci-dessus apparaissent dans le shell Bash.
Il affiche la sortie composée de plusieurs lignes (plus de 10) contenant des caractères alphanumériques.
(ROLE CLAIM NAME)
en tant que ssaddin.role et (MODIFIED FQN)
en tant que urn:ietf:params:scim:schemas:idcs:extension:custom:User.rbac_ords :
Utilisez le signe FQN
de l'étape 1 et remplacez le signe " :" final par un signe ".".
Par exemple, FQN
de l'étape 1 est :
urn:ietf:params:scim:schemas:idcs:extension:custom:User:rbac_ords
MODIFIED FQN
doit donc être :
urn:ietf:params:scim:schemas:idcs:extension:custom:User.rbac_ords
curl -i -X POST (DOMAIN URL)/admin/v1/CustomClaims -H"Cache-Control: no-cache" -H"Accept:application/json" -H"Content-Type:application/json" -H"Authorization: Bearer $ACCESS_TOKEN" -d '{
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim"
],
"name": "(ROLE CLAIM NAME)",
"value": "$user.(MODIFIED FQN).*",
"expression": true,
"mode": "always",
"tokenType": "AT",
"allScopes": false,
"scopes": [
"ssaddin/rbac"
]
}'
Remplacez
Domain URL
par sa valeur réelle dans le code ci-dessus.
La sortie suivante s'affiche :HTTP/1.1 201 Created
.
Activation de la connexion RBAC IAM pour le schéma Autonomous Database
- Dans l'onglet Navigator de la feuille de calcul SQL, sélectionnez
ORDS_METADATA
dans la liste déroulante Schema. - Sélectionnez
Packages
dans la liste déroulante Type d'objet. - Saisissez
ORDS_SECURITY
dans le champ Rechercher. La fonction de recherche extrait toutes les entrées qui commencent parORDS_SECURITY
. - Développez le package
ORDS_SECURITY
. - Cliquez avec le bouton droit de la souris sur
CREATE_JWT_PROFILE
et cliquez surRUN
. La boîte de dialogueRUN CODE
s'ouvre.Dans la boîte de dialogue Run Code…, indiquez les valeurs de champ suivantes :- P_ISSUER- https://identity.oraclecloud.com/. Ce champ doit être une valeur non NULL et doit être rempli à l'aide d'une seule virgule.
- P_AUDIENCE-ssaddin/. Ce champ doit être une valeur non NULL.
- P_JWK_URL : ajoutez l'URL DOMAIN à la fin avec /admin/v1/SigningCert/jwk. Il doit s'agir d'une valeur non NULL commençant par https :// et identifier la clé de vérification publique fournie par le serveur d'autorisation au format de clé Web JSON (JWK).
Vous pouvez afficher l'URL de domaine dans l'onglet Informations sur le domaine présent dans le menu Domaines du menu de navigation Identité et sécurité de la console OCI.
- P_DESCRIPTION : entrez la description de ce profil. Par exemple, "RBAC JWT Demo confluence".
- P_ALLOWED_AGE-"0"
- P_ALLOWED_SKEW-"0"
- P_ROLE_CLAIM_NAME - "ssaddin.role"
Cliquez sur Insérer un code dans la feuille de calcul.
Exécutez la procédure.
La procédure PL/SQL terminée s'affiche dans le panneau de sortie.
Créer un fichier de connexion
-
Cliquez sur Ajouter dans l'en-tête du panneau Connexions pour ajouter une connexion. La boîte de dialogue Ajouter une nouvelle connexion s'ouvre.
- Indiquez les champs suivants dans la boîte de dialogue Ajouter une nouvelle connexion :
- Nom de connexion : entrez le nom de la connexion.
- URL d'Autonomous Database : entrez l'URL de la base de données Autonomous Database à laquelle vous souhaitez vous connecter. Copiez l'URL entière à partir de l'interface utilisateur Web d'Autonomous Database. Par exemple, saisissez ou copiez le lien "https ://<nom_hôte>-<nom_databas>.adb.<région>.oraclecloudapps.com/" pour vous connecter à la base de données.
- Nom de schéma : entrez le même schéma que celui utilisé pour activer la connexion IAM pour le schéma Autonomous Database.
- Sélectionnez le type de connexion : OCI IAM
- URL de domaine : entrez l'URL de domaine dans l'onglet Informations sur le domaine.
- Sélectionnez le type IAM RBAC.
- Portée d'IAM :
ssaddin/rbac
Une fois la connexion créée, vous pouvez la partager avec d'autres utilisateurs de ce domaine.
Rubrique parent : Outil d'analyse des données