Connexions IAM de contrôle d'accès par rôle
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 des rôles à l'aide de revendications personnalisées JWT (JSON Web Token). Les utilisateurs du domaine pourront ainsi se connecter à la base de données à l'aide de leurs données d'identification de domaine au lieu du mot de passe du schéma.
Ce chapitre permet aux utilisateurs du domaine de s'authentifier auprès de la base de données avec leurs données 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 réclamation personnalisée
- Activer la connexion IAM pour le schéma Autonomous AI Database
- Créer un fichier de connexion
Nous utiliserons le domaine
Default dans tout 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
- Naviguez jusqu'à : Identité → Domaines → Par défaut. Cliquez sur l'onglet Gestion des schémas et sélectionnez Attributs d'utilisateur.
- Cliquez sur Ajouter un attribut sous Attributs d'utilisateur.
- Dans la boîte de dialogue Ajouter des attributs, spécifiez les champs suivants :
- Nom d'affichage : RBAC ORDS
- Nom :rbac_ords
- Description :Contrôle d'accès basé sur le rôle pour ORDS
- Type de données : Tableau de chaînes
Vous pouvez laisser le reste des champs à leur état par défaut.
Cliquez sur Ajouter. Vous avez ajouté l'attribut personnalisé.
- Recherchez le nouvel attribut ajouté en entrant Custom (Personnalisé) dans le champ de recherche. Vous verrez l'attribut ORDS RBAC dans la liste.
Cliquez sur Modifier l'attribut.
- Copiez et notez la valeur de FQN (Fully Qualified Name).
Dans cet exemple, FQN est urn:ietf:params:scim:schemas:idcs:extension:custom:User:rbac_ords.
Affecter un rôle personnalisé
- Naviguez jusqu'à : Identité → Domaines → Par défaut. Cliquez sur l'onglet Gestion des utilisateurs et sélectionnez votre nom d'utilisateur dans la liste d'utilisateurs affichée.
Cliquez sur Modifier l'utilisateur. Faites défiler 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, voir ce chapitre sur À propos des rôles d'utilisateur d'Oracle REST Data Services.
Après avoir ajouté les rôles, 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.
- Naviguez jusqu'à : Identité → Domaines → 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 flux de travail.
- Dans la boîte de dialogue Ajouter une application confidentielle, spécifiez les champs suivants :
- Nom : Entrez le nom de l'application confidentielle. Par exemple, Spreadsheet-Addin RBAC.
- Description : Entrez la description. Par exemple, Application intégrée pour le contrôle d'accès basé sur le rôle du compagnon de feuille de calcul.
Cliquez sur Soumettre.
Vous verrez la page de l'application Spreadsheet-Addin RBAC nouvellement ajoutée.
- Cliquez sur Modifier la configuration OAuth dans l'onglet Configuration OAuth de la page Spreadsheet-Addin RBAC.
- Sous Configuration du serveur de ressources, sélectionnez Configurer cette application comme serveur de ressources maintenant.
- Dans Configurer les API d'application devant être protégées par OAuth, sélectionnez 3600 comme expiration du jeton d'accès (en secondes).
- Dans le champ Public principal, entrez ssaddin/.
- Cliquez sur Ajouter des portées et ajoutez rbac Portée.
- Sous Configuration du client, spécifiez les champs suivants :
- Sélectionnez Configurer cette application comme client maintenant.
- Sélectionnez Implicite sous Types de droits autorisés.
- Entrez la valeur suivante dans le champ URL de redirection :
https://static.oracle.com/cdn/spreadsheet/red-4/redirector.html - Entrez la valeur suivante dans le champ URL après déconnexion :
https://static.oracle.com/cdn/spreadsheet/red-4/redirector.html
Cliquez sur Soumettre.Note
Assurez-vous d'activer l'application.
Définir une réclamation personnalisée
Pour inclure des rôles d'utilisateur dans le JWT, nous devons mapper l'attribut personnalisé établi dans la première section dans le JWT à l'aide d'une revendication 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é
- Naviguez jusqu'à : Identité → Domaines → 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 flux de travail.
- Entrez le nom de l'application : Application intégrée du domaine d'identité
- Entrez Description : Il s'agit d'une application intégrée au domaine.
Cliquez sur Soumettre.
- Dans la page Application intégrée du domaine d'identité, sélectionnez l'onglet Configuration OAuth.
- Cliquez sur Modifier la configuration OAuth dans Configuration du serveur de ressources. Dans la boîte de dialogue Modifier la configuration OAuth, spécifiez les champs suivants :
- Sous Configuration du client, sélectionnez la valeur par défaut Configurer cette application comme client maintenant.
- Sous Autorisation, sélectionnez Données d'identification du client. Conservez le reste des configurations à leur état par défaut.
- 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é et sélectionnez Ajouter.
- Après avoir ajouté des rôles d'application, cliquez sur Soumettre.
- Activez l'application.
Note
Prenez 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 réclamation pour le jeton JWT
Nous avons besoin de CLIENT ID, CLIENT SECRET et DOMAIN URL pour extraire un nouveau jeton d'accès pour l'application d'administrateur de domaine d'identité.
CLIENT ID et CLIENT SECRET proviennent de l'application intégrée de domaine que vous avez créée à l'étape précédente.
DOMAIN URL se trouve dans 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_TOKENL'image ci-dessous montre comment les commandes ci-dessus apparaissent dans l'interpréteur de commandes Bash.
Il affiche une 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 FQN de l'étape 1 et remplacez le " :" final par un ".".
Par exemple, FQN de l'étape 1 est :
urn:ietf:params:scim:schemas:idcs:extension:custom:User:rbac_ordsLe MODIFIED FQN doit donc être :
urn:ietf:params:scim:schemas:idcs:extension:custom:User.rbac_ordscurl -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.
Vous verrez les éléments suivants en tant que sortie :HTTP/1.1 201 Created.
Activer la connexion IAM RBAC pour le schéma Autonomous Database
- Dans SQL Worksheet, dans l'onglet Navigator, sélectionnez
ORDS_METADATAdans la liste déroulante Schema. - Sélectionnez
Packagesdans la liste déroulante Type d'objet. - Entrez
ORDS_SECURITYdans le champ Rechercher. La fonction de recherche extrait toutes les entrées commençant parORDS_SECURITY. - Développez l'ensemble
ORDS_SECURITY. - Cliquez avec le bouton droit de la souris sur
CREATE_JWT_PROFILEet cliquez surRUN. Une boîte de dialogueRUN CODEs'ouvre.Dans la boîte de dialogue Run Code…, spécifiez les valeurs de champ suivantes :- P_ISSUER - https://identity.oraclecloud.com/. Ce champ doit être une valeur non nulle et doit être rempli au sein d'une seule virgule.
- P_AUDIENCE-ssaddin/. Ce champ doit être une valeur non nulle.
- P_JWK_URL- Ajoutez l'URL DE DOMAINE à /admin/v1/SigningCert/jwk. Il doit s'agir d'une valeur non nulle commençant par https :// et identifiez la clé de vérification publique fournie par le serveur d'autorisations au format JWK (JSON Web Key).
Vous pouvez voir l'URL de domaine dans l'onglet Informations sur le domaine présent dans le menu de navigation Domaines de la console OCI sous Identité et sécurité.
- 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 du code dans la feuille de calcul.
Exécutez la procédure.
Vous verrez "Procédure PL/SQL terminée avec succès." dans le panneau de sortie.
Créer un fichier de connexion
-
Cliquez sur le bouton Ajouter dans l'en-tête du volet Connexions pour ajouter une connexion. Une boîte de dialogue Ajouter une nouvelle connexion s'ouvre.
- Indiquez les champs suivants dans la boîte de dialogue Add new connection :
- Nom de la 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 complète à partir de l'interface utilisateur Web d'Autonomous Database. Par exemple, entrez ou copiez le lien suivant "https ://<hostname>-<databasename>.adb.<region>.oraclecloudapps.com/" pour vous connecter à la base de données.
- Nom du schéma : Entrez le schéma que vous utilisez 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 du service 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


















