Configurer manuellement le contrôle d'accès basé sur les rôle (RAP)

Vous pouvez configurer le contrôle d'accès basé sur les rôles (RBAC) avec des demandes personnalisées de jeton Web JSON (JWT) dans Oracle Cloud Infrastructure.

Pour créer une application intégrée au domaine qui autorise le contrôle d'accès basé sur les rôles avec des demandes personnalisées JWT, procédez comme suit : Chaque étape est expliquée en détail dans les sections suivantes.
Remarque

Ce document utilise le domaine Default d'Oracle Cloud Infrastructure à des fins d'explication.

créer des attributs personnalisés pour les utilisateurs,

Une entité utilisateur stocke ses propriétés et d'autres informations en tant qu'attributs. Par exemple, prénom, nom, connexion utilisateur, mot de passe, etc. Vous pouvez créer des attributs personnalisés dans Oracle Cloud Infrastructure.

Voici un exemple de définition d'un attribut utilisateur personnalisé, qui stockera les rôles affectés à chaque utilisateur dans le domaine.
  1. Cliquez sur le menu latéral et accédez à Identité et sécurité, puis sélectionnez Domaines. Sous Nom, cliquez sur le domaine Par défaut.
  2. Accédez à l'onglet Gestion des schémas et sélectionnez Attributs utilisateur.

  3. Cliquez sur Ajouter un attribut et indiquez les informations suivantes :
    • 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é.

  4. 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.

  5. 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é

Une fois que vous avez créé un attribut utilisateur personnalisé, vous pouvez continuer à affecter des rôles personnalisés dans ce champ d'attribut.
  1. Accédez à : IdentitéDomainesValeur 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 une application intégrée de domaine

Nous développerons une application intégrée au sein du domaine qui émettra un jeton JWT lors de la connexion.

  1. Accédez à : IdentitéDomainesValeur par défaut. Cliquez sur l'onglet Applications intégrées et sélectionnez Ajouter une application.
  2. Cliquez sur Application confidentielle et sélectionnez Lancer le workflow.
  3. Dans la boîte de dialogue Ajouter une application confidentielle, renseignez les champs suivants :
    • Nom : entrez le nom d'application confidentielle. Par exemple, RBAC d'extension de feuille de calcul.
    • Description : saisissez 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.

  4. Cliquez sur Modifier la configuration OAuth dans l'onglet Configuration OAuth de la page RBAC Complément de feuille de calcul.



  5. Sous Configuration du serveur de ressources, sélectionnez Configurer cette application comme serveur de ressource maintenant.
  6. Dans Configurer les API d'application qui doivent être protégées par OAuth, sélectionnez 3600 comme expiration de jeton d'accès (secondes).
  7. Dans le champ Audience principale, entrez ssaddin/.
  8. Cliquez sur Ajouter des portées et ajoutez rbac Portée.



  9. 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é

Vous allez créer une application intégrée temporaire supplémentaire :
  1. Accédez à : IdentitéDomainesValeur par défaut.
  2. Cliquez sur l'onglet Applications intégrées et sélectionnez Ajouter une application.
  3. 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.

  4. Sur la page Application intégrée de domaine d'identité, sélectionnez l'onglet Configuration OAuth.
  5. Cliquez sur Modifier la configuration OAuth dans Configuration du serveur de ressources. Dans la boîte de dialogue Modifier la configuration OAuth, indiquez 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 à noter l'ID client et 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 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)
Dans cet exemple, vous allez utiliser les valeurs suivantes :
  • Client ID : 123a1234e1234567aa12345a1abcdefg1
  • Client Secret : idcscs-12a1a123-a123-1234-1234-e1a05aabc123
  • Domain URL: https://idcs-a123ab1ab12a4bb99a9aa9ab99aabbb9.identity.oraclecloud.com:443
Exécutez le code suivant dans le shell Bash, en remplaçant les valeurs d'espace réservé en conséquence :
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)
 
Pour vérifier que vous avez correctement récupéré le jeton, exécutez la commande suivante et vérifiez le jeton affiché.
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.

Exécutez la commande suivante avec (ROLE CLAIM NAME) comme ssaddin.role et (MODIFIED FQN) comme urn:ietf:params:scim:schemas:idcs:extension:custom:User.rbac_ords :
Remarque

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"
  ]
}'
Remarque

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 de base de données Autonomous AI

Les instructions suivantes permettent à ORDS de valider les jetons de support JWT et d'accorder l'accès aux ressources protégées.
  1. Dans l'onglet Navigator de la feuille de calcul SQL, sélectionnez ORDS_METADATA dans la liste déroulante Schema.
  2. Sélectionnez Packages dans la liste déroulante Type d'objet.
  3. Saisissez ORDS_SECURITY dans le champ de recherche. La fonction de recherche extrait toutes les entrées qui commencent par ORDS_SECURITY.
  4. Développez le package ORDS_SECURITY.



  5. Cliquez avec le bouton droit de la souris sur CREATE_JWT_PROFILE et cliquez sur RUN. La boîte de dialogue RUN 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 connexions

  1. 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.

  2. 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 AI à laquelle vous souhaitez vous connecter. Copiez l'URL entière à partir de l'interface utilisateur Web de la base de données Autonomous AI. 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.