Configuración de autenticación de proxy de IAM

La autenticación de proxy permite a un usuario de IAM conectarse mediante proxy a un esquema de base de datos para tareas como el mantenimiento de la aplicación.

Acerca de la configuración de autenticación de proxy de IAM

Los usuarios de IAM se pueden conectar a Oracle DBaaS mediante la autenticación de proxy.

La autenticación de proxy se suele utilizar para autenticar al usuario real y, a continuación, autorizarlo a utilizar un esquema de base de datos con los privilegios y los roles de esquema para gestionar una aplicación. Alternativas como el uso compartido de la contraseña del esquema de la aplicación se consideran inseguras e impiden auditar qué usuario real ha realizado una acción.

Un caso de uso puede ser un entorno en el que un usuario de IAM con nombre que sea administrador de la base de datos de la aplicación pueda autenticarse mediante sus credenciales y, a continuación, conectarse mediante proxy a un usuario de esquema de base de datos (por ejemplo, hrapp). Esta autenticación permite al administrador de IAM utilizar los privilegios y los de roles hrapp como usuario hrapp para realizar el mantenimiento de la aplicación, y seguir utilizando sus credenciales de IAM para la autenticación. El administrador de base de datos de una aplicación se puede conectar a la base de datos y, a continuación, conectarse mediante proxy a un esquema de aplicación para gestionar este esquema.

Puede configurar la autenticación de proxy para los métodos de autenticación de contraseña y de token.

Configuración de autenticación de proxy para el usuario de IAM

Para configurar la autenticación de proxy para un usuario de IAM, el usuario de IAM ya debe tener una asignación a un esquema global (asignación exclusiva o compartida). También debe estar disponible un esquema de base de datos independiente para que el usuario de IAM pueda conectarse a este mediante proxy.

Después de asegurarse de que tiene este tipo de usuario, modifique el usuario de base de datos para permitir que el usuario de IAM pueda conectarse a este mediante proxy.
  1. Conéctese a la instancia de Autonomous Database como un usuario que tenga los privilegios del sistema ALTER USER.
  2. Otorgue permiso al usuario de IAM para que realice la autenticación de proxy en la cuenta de usuario de la base de datos local.
    No se puede hacer referencia a un usuario de IAM en el comando, por lo que se debe crear el proxy entre el usuario global de la base de datos (asignado al usuario de IAM) y el usuario de la base de datos de destino.
    En el siguiente ejemplo, hrapp es el esquema de base de datos con el que se realiza el proxy y peterfitch_schema es el usuario global de base de datos asignado exclusivamente al usuario peterfitch.
    ALTER USER hrapp GRANT CONNECT THROUGH peterfitch_schema;
En esta etapa, el usuario de IAM se puede conectar a la instancia de base de datos mediante el proxy. Por ejemplo, para conectarse mediante un verificador de contraseña:
CONNECT peterfitch[hrapp]@connect_string
Enter password: password

Para conectarse mediante un token:

CONNECT [hrapp]/@connect_string

Validación de la autenticación de proxy del usuario de IAM

Puede validar la configuración del proxy de usuario de IAM para métodos de autenticación de contraseña y token.

  1. Conéctese a la instancia de Autonomous Database como un usuario que tiene los privilegios del sistema CREATE USER y ALTER USER.
  2. Conéctese como usuario de IAM y ejecute los comandos SHOW USER y SELECT SYS_CONTEXT.
    Por ejemplo, supongamos que desea comprobar la autenticación de proxy del usuario de IAM peterfitch cuando se conecta mediante proxy al usuario de base de datos hrapp. Ejecute las siguientes consultas después de realizar un proxy a la base de datos mediante un usuario de IAM. En función de cómo se autentique y acceda a la base de datos, obtendrá diferentes valores para estas consultas.
    • Para la autenticación de contraseña, suponiendo que el usuario de IAM está en el dominio por defecto:
      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"
    • Para la autenticación de token, para un usuario que está en un dominio no por defecto, 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"