Configuration de l'authentification par proxy IAM

L'authentification par proxy permet à un utilisateur IAM d'accéder via un proxy à un schéma de base de données pour des tâches telles que la maintenance d'application.

A propos de la configuration de l'authentification par proxy IAM

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

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

Exemple de cas d'emploi : environnement où un utilisateur IAM nommé, qui est administrateur de base de données d'application, peut s'authentifier à l'aide de ses informations d'identification, puis accéder via un proxy à un utilisateur de schéma de base de données (par exemple, hrapp). Cette authentification permet à l'administrateur IAM d'utiliser, en tant qu'utilisateur hrapp, les privilèges et rôles hrapp afin d'effectuer la maintenance d'application, tout en se servant de ses informations d'identification IAM pour l'authentification. Un administrateur de base de données d'application peut se connecter à la base de données, puis accéder via un proxy à un schéma d'application pour le gérer.

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

Configuration de l'authentification par proxy pour l'utilisateur IAM

Afin que vous puissiez configurer l'authentification par proxy pour un utilisateur IAM, ce dernier doit déjà disposer d'une correspondance (exclusive ou partagée) avec un schéma global. Un schéma de base de données distinct, auquel l'utilisateur IAM accédera via un proxy, 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 afin d'autoriser l'utilisateur IAM à y accéder via un proxy.
  1. Connectez-vous à l'instance Autonomous Database en tant qu'utilisateur disposant des privilèges système ALTER USER.
  2. Autorisez l'utilisateur IAM à accéder via un proxy au compte utilisateur de base de données local.
    Vous ne pouvez pas référencer d'utilisateur IAM dans la commande. Le proxy doit donc être créé entre l'utilisateur global de base de données (mis en correspondance avec l'utilisateur IAM) et l'utilisateur de base de données cible.
    Dans l'exemple suivant, hrapp est le schéma de base de données auquel accéder via un proxy et peterfitch_schema est l'utilisateur global de base de données en correspondance exclusive avec l'utilisateur peterfitch.
    ALTER USER hrapp GRANT CONNECT THROUGH peterfitch_schema;
A ce stade, l'utilisateur IAM peut se connecter à l'instance de base de données à l'aide du proxy. 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

Validation de l'authentification par proxy d'utilisateur IAM

Vous pouvez valider la configuration de proxy d'utilisateur IAM pour les méthodes d'authentification par mot de passe et par jeton.

  1. Connectez-vous à l'instance Autonomous 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 proxy de l'utilisateur IAM peterfitch lorsqu'il accède via un proxy à l'utilisateur de base de données hrapp. Exécutez les requêtes suivantes après avoir effectué un proxy sur 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 requêtes.
    • 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"