Configurer l'authentification par mandataire GIA

L'authentification par mandataire permet à un utilisateur GIA de mandater un schéma de base de données pour des tâches telles que la maintenance d'une application.

À propos de la configuration de l'authentification par mandataire IAM

Les utilisateurs du service IAM peuvent se connecter à Oracle DBaaS à l'aide de l'authentification par mandataire.

L'authentification par mandataire est généralement utilisée pour authentifier l'utilisateur réel, puis l'autoriser à utiliser un schéma de base de données avec les privilèges et les rôles du schéma pour gérer une application. Les alternatives telles que le partage du mot de passe du schéma d'application sont considérées comme non sécurisées, ne permettant pas de vérifier quel utilisateur réel a effectué une action.

Un cas d'utilisation peut être un environnement dans lequel un utilisateur GIA nommé, administrateur de base de données d'application, peut s'authentifier à l'aide de ses données d'identification, puis mandater un utilisateur de schéma de base de données (par exemple, hrapp). Cette authentification permet à l'administrateur GIA d'utiliser les privilèges et rôles de hrapp en tant qu'utilisateur hrapp pour effectuer la maintenance de l'application, tout en continuant à utiliser ses données d'identification GIA pour l'authentification. Un administrateur de base de données d'application peut se connecter à la base de données, puis mandater un schéma d'application pour gérer ce schéma.

Vous pouvez configurer l'authentification par mandataire pour les méthodes d'authentification par mot de passe et par jeton.

Configurer l'authentification par mandataire pour l'utilisateur IAM

Pour configurer l'authentification par mandataire pour un utilisateur GIA, celui-ci doit déjà disposer d'un mappage à un schéma global (mappage exclusif ou partagé). Un schéma de base de données distinct pour l'utilisateur GIA à mandater doit également être disponible.

Après avoir vérifié que vous disposez de ce type d'utilisateur, modifiez l'utilisateur de base de données pour autoriser l'utilisateur GIA à l'utiliser comme mandataire.
  1. Connectez-vous à l'instance Autonomous AI Database en tant qu'utilisateur disposant des privilèges système ALTER USER.
  2. Accordez à l'utilisateur GIA l'autorisation d'utiliser comme mandataire le compte d'utilisateur de base de données local.
    Un utilisateur GIA ne peut pas être référencé dans la commande. Le mandataire doit donc être créé entre l'utilisateur de base de données global (mappé à l'utilisateur GIA) et l'utilisateur de la base de données cible.
    Dans l'exemple suivant, hrapp est le schéma de base de données utilisé comme mandataire et peterfitch_schema est l'utilisateur global de base de données mappé exclusivement à l'utilisateur peterfitch.
    ALTER USER hrapp GRANT CONNECT THROUGH peterfitch_schema;
À ce stade, l'utilisateur GIA peut se connecter à l'instance de base de données à l'aide du mandataire. Par exemple, pour vous connecter à l'aide d'un vérificateur de mot de passe :
CONNECT peterfitch[hrapp]@connect_string
Enter password: password

Pour vous connecter à l'aide d'un jeton :

CONNECT [hrapp]/@connect_string

Valider l'authentification par mandataire de l'utilisateur IAM

Vous pouvez valider la configuration du mandataire de l'utilisateur GIA pour les méthodes d'authentification par mot de passe et par jeton.

  1. Connectez-vous à l'instance Autonomous AI Database en tant qu'utilisateur disposant des privilèges système CREATE USER et ALTER USER.
  2. Connectez-vous en tant qu'utilisateur IAM et exécutez les commandes SHOW USER et SELECT SYS_CONTEXT.
    Par exemple, supposons que vous vouliez vérifier l'authentification par mandataire de l'utilisateur GIA peterfitch lorsqu'il mandate l'utilisateur de base de données hrapp. Exécutez les interrogations suivantes après avoir effectué un mandataire vers la base de données à l'aide d'un utilisateur IAM. Selon le mode d'authentification et d'accès à la base de données, vous obtiendrez différentes valeurs pour ces interrogations.
    • Pour l'authentification par mot de passe, en supposant que l'utilisateur IAM se trouve dans le domaine par défaut :
      CONNECT peterfitch[hrapp]/password\!@connect_string
      SHOW USER;
      --The output should be USER is "HRAPP"
      SELECT SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD') FROM DUAL;
      --The output should be "PASSWORD_GLOBAL_PROXY"
      SELECT SYS_CONTEXT('USERENV','PROXY_USER') FROM DUAL;
      --The output should be "PETERFITCH_SCHEMA"
      SELECT SYS_CONTEXT('USERENV','CURRENT_USER') FROM DUAL;
      --The output should be "HRAPP"
    • Pour l'authentification par jeton, pour un utilisateur qui se trouve dans un domaine autre que celui par défaut, sales_domain :
      CONNECT [hrapp]/@connect_string
      SHOW USER;
      --The output should be USER is "HRAPP"
      SELECT SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD') FROM DUAL;
      --The output should be "TOKEN_GLOBAL_PROXY"
      SELECT SYS_CONTEXT('USERENV','PROXY_USER') FROM DUAL;
      --The output should be "PETERFITCH_SCHEMA"
      SELECT SYS_CONTEXT('USERENV','CURRENT_USER') FROM DUAL;
      --The output should be "HRAPP"