Uso de la autenticación de Identity and Access Management (IAM) con Autonomous Database

Puede configurar Autonomous Database para utilizar la autenticación y la autorización de Oracle Cloud Infrastructure Identity and Access Management (IAM) para permitir a los usuarios de IAM acceder a una instancia de Autonomous Database con credenciales de IAM.

Note:

La integración de Autonomous Database con Oracle Cloud Infrastructure (OCI) IAM está soportada en arrendamientos comerciales con dominios de identidad, así como en Oracle Cloud Infrastructure IAM, que no incluye dominios de identidad. Oracle Cloud Infrastructure IAM con dominios de identidad se ha introducido con los nuevos arrendamientos de OCI creados a partir del 8 de noviembre de 2021. Autonomous Database soporta usuarios y grupos en dominios de identidad por defecto y no por defecto.

Acerca de la autenticación de Identity and Access Management (IAM) con Autonomous Database

La integración de Oracle Cloud Infrastructure IAM con Autonomous Database soporta la autenticación de contraseña de base de datos y la autenticación basada en token. Consulte la sección sobre autenticación y autorización de usuarios de IAM para instancias de Oracle Autonomous Database para obtener más información sobre la arquitectura para utilizar usuarios de IAM en Autonomous Database.

Autenticación de contraseña de base de datos de IAM

Note:

Se puede utilizar cualquier cliente de base de datos 12c o superior soportado para el acceso de contraseña de base de datos de IAM a Autonomous Database.

Una contraseña de base de datos de IAM de Oracle Cloud Infrastructure permite a un usuario de IAM conectarse a una instancia de Autonomous Database, ya que los usuarios de Oracle Database se suelen conectar con un nombre de usuario y una contraseña. El usuario introduce su nombre de usuario de IAM y la contraseña de base de datos de IAM. Una contraseña de base de datos de IAM es una contraseña diferente a la contraseña de la consola de Oracle Cloud Infrastructure. El uso de un usuario de IAM con el verificador de contraseña le permite conectarse a Autonomous Database con cualquier cliente de base de datos soportado.

Autenticación basada en token de conexión única de Identity and Access Management (IAM)

Un cliente de base de datos puede obtener un token de base de datos de IAM de varias maneras:

  • Una aplicación o una herramienta de cliente puede solicitar el token de base de datos de IAM para el usuario y puede transferir el token de base de datos a través de la API de cliente. El uso de la API para enviar el token sustituye otros valores en el cliente de base de datos. Este tipo de uso de token de base de datos de IAM está soportado para los siguientes clientes:

    • JDBC-thin en todas las plataformas
    • Oracle Instant Client OCI-C en Linux
    • Oracle Data Provider para .NET (ODP.NET) Core
  • Si la aplicación o la herramienta no soporta la solicitud de un token de base de datos de IAM a través de la API de cliente, el usuario de IAM puede utilizar primero la interfaz de línea de comandos (CLI) de Oracle Cloud Infrastructure para recuperar el token de base de datos de IAM y guardarlo en una ubicación de archivo. Por ejemplo, para utilizar SQL*Plus y otras aplicaciones y herramientas con este método de conexión, primero debe obtener el token de base de datos mediante la interfaz de línea de comandos (CLI) de Oracle Cloud Infrastructure (OCI). Si el cliente de base de datos está configurado para tokens de base de datos de IAM, cuando un usuario se conecta con el formulario de conexión de barra inclinada, el controlador de base de datos utiliza el token de base de datos IAM que se ha guardado en una ubicación de archivo por defecto o especificada.

  • Una aplicación o una herramienta de cliente puede utilizar una entidad de recurso o un principal de instancia de IAM de Oracle Cloud Infrastructure para obtener un token de base de datos de IAM y utilizar el token de base de datos de IAM para autenticarse en una instancia de Autonomous Database.

  • Los usuarios de IAM y las aplicaciones de OCI pueden solicitar un token de base de datos de IAM con varios métodos, incluido el uso de una clave de API. Consulte Configuración de una conexión de cliente para SQL*Plus que utilice un token de IAM para obtener un ejemplo. Consulte la sección sobre autenticación y autorización de usuarios de IAM para una instancia de Oracle Autonomous Database para obtener una descripción de otros métodos, como el uso de un token de delegación dentro de una instancia de OCI Cloud Shell.

Si un usuario introduce un nombre de usuario/contraseña para conectarse, el controlador de base de datos utiliza el método de verificador de contraseñas para acceder a la base de datos independientemente de la configuración de token de base de datos del cliente.

Requisitos para la autenticación de Identity and Access Management (IAM) en Autonomous Database

Antes de utilizar la autenticación de Identity and Access Management (IAM) en Autonomous Database, debe asegurarse de lo siguiente:

Utilice el servicio Networking para agregar un gateway de servicio, una regla de ruta y una regla de seguridad de salida a la VCN (red virtual en la nube) y las subredes en las que residen los recursos de Autonomous Database.

  1. Cree un gateway de servicio en la VCN (red virtual en la nube) en la que residan los recursos de Autonomous Database siguiendo las instrucciones de la Tarea 1: creación del gateway de servicio de la Documentación de Oracle Cloud Infrastructure.
  2. Después de crear el gateway de servicio, agregue una regla de ruta y una regla de seguridad de salida a cada subred (en la VCN) en la que residan los recursos de Autonomous Database para que estos recursos puedan utilizar el gateway para usar la autenticación de Identity and Access Management (IAM):
    1. Vaya a la página Detalles de subred de la subred.
    2. En el separador Información de Subred, haga clic en el nombre de la Tabla de Direcciones de la subred para mostrar su página Detalles de Tabla de Direcciones.
    3. En la tabla de Reglas de ruta existentes, compruebe si ya hay una regla con las siguientes características:
      • Destino: todos los servicios de IAD en Oracle Services Network
      • Tipo de destino: gateway de servicio
      • Destino: nombre del gateway de servicio que acaba de crear en la VCN

      Si dicha regla no existe, haga clic en Agregar reglas de ruta y agregue una regla de ruta con estas características.

    4. Vuelva a la página Detalles de subred de la subred.
    5. En la tabla Listas de seguridad de la subred, haga clic en el nombre de la lista de seguridad de la subred para mostrar su página Detalles de lista de seguridad.
    6. En el menú lateral, en Recursos, haga clic en Reglas de salida.
    7. En la tabla de Reglas de salida existentes, compruebe si ya hay una regla con las siguientes características:
      • Sin estado: No
      • Destino: todos los servicios de IAD en Oracle Services Network
      • Protocolo IP: TCP
      • Rango de puertos de origen: Todo
      • Rango de puertos de destino: 443
    8. Si dicha regla no existe, haga clic en Agregar Reglas de Salida y agregue una regla de salida con estas características.

La configuración del proxy HTTP en el entorno debe permitir que la base de datos acceda al proveedor de servicios en la nube.

El administrador del conjunto define esta configuración al crear la infraestructura de Exadata Cloud@Customer, como se describe en Uso de la consola para aprovisionar Exadata Database Service on Cloud@Customer.

Note:

La configuración de red, incluido el proxy HTTP, solo se puede editar hasta que la infraestructura de Exadata tenga el estado Necesita activación. Una vez activada, no puede editar esa configuración.

La configuración de un proxy HTTP para una infraestructura de Exadata ya aprovisionada necesita una solicitud de servicio (SR) en My Oracle Support. Consulte Creación de una solicitud de servicio en My Oracle Support para obtener más información.

Cambio de proveedores de identidad externos en Autonomous Database

Describe los pasos para cambiar el proveedor de identidad externo de autenticación y autorización (IAM) a otro proveedor de autenticación externo y viceversa.

La autenticación y la autorización de Oracle Cloud Infrastructure (IAM) para los usuarios está activada por defecto para las bases de datos de contenedores autónomas y las instancias de Autonomous Database recién aprovisionadas. Hay otros esquemas de autenticación externos, como usuarios gestionados de forma centralizada con Active Directory (CMU-AD), Azure AD y Kerberos, que puede activar para Autonomous Database. Sin embargo, solo puede haber un esquema de autenticación externo activado en un momento determinado.

Para permitir a los usuarios de base de datos conectarse a Autonomous Database mediante otro esquema de autenticación externo:
  1. Desactive la integración de IAM mediante el procedimiento DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION:
    Por ejemplo:
    BEGIN    
      DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
    END;
    /
    Para obtener información adicional, consulte Procedimiento DISABLE_EXTERNAL_AUTHENTICATION.
  2. Siga los pasos descritos en las siguientes páginas para configurar otro esquema de autenticación externo de su elección:
  3. Vuelva a activar los usuarios de IAM para que se conecten a Autonomous Database mediante la autenticación y la autorización de Oracle Cloud Infrastructure (IAM).
    Como usuario ADMIN, ejecute el procedimiento DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION con los parámetros que se muestran a continuación:
    BEGIN
      DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
        type => 'OCI_IAM'
        force => TRUE
        );
    END;
    /

    En el ejemplo anterior se desactiva cualquier proveedor de autenticación externo que esté activado actualmente y se activa la autenticación y autorización de Oracle Cloud Infrastructure (IAM).

    En este ejemplo:
    • force está definido en TRUE para desactivar la autenticación externa que está activada actualmente.
    • type está definido en 'OCI_IAM' para activar y utilizar la autenticación y autorización de Oracle Cloud Infrastructure (IAM).

    Note:

    Por defecto, el parámetro force es FALSE. Cuando se activa otro método de autenticación externa y el valor force es FALSE, DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION notifica el siguiente error: ORA-20004: Another external authentication is already enabled.

    Consulte Procedimiento ENABLE_EXTERNAL_AUTHENTICATION para obtener más referencia.

  4. Verifique el valor del parámetro del sistema IDENTITY_PROVIDER_TYPE como se muestra a continuación:
    SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
    NAME                   VALUE   
    ---------------------- ------- 
    identity_provider_type OCI_IAM 

Creación de grupos y políticas de Identity and Access Management (IAM) para usuarios de IAM

Describe los pasos para escribir sentencias de política para un grupo de IAM a fin de permitir el acceso de usuario de IAM a los recursos de Oracle Cloud Infrastructure, en concreto, a las instancias de Autonomous Database.

Una política es un grupo de sentencias que especifica quién puede acceder a determinados recursos y cómo. Se puede otorgar acceso a todo el arrendamiento, a las bases de datos de un compartimento o a bases de datos individuales. Esto significa que debe escribir una sentencia de política que otorgue a un grupo específico un tipo de acceso específico a un tipo específico de recurso dentro de un compartimento específico.

Note:

Es necesario definir una política para utilizar tokens de IAM para acceder a Autonomous Database. No es necesaria una política al utilizar contraseñas de base de datos de IAM para acceder a Autonomous Database.

Para activar Autonomous Database para permitir a los usuarios de IAM conectarse a la base de datos mediante tokens de IAM:

  1. Para cumplir los requisitos de Oracle Cloud Infrastructure Identity and Access Management, cree un grupo y agregue usuarios al grupo.

    Por ejemplo, cree el grupo sales_dbusers.

    Consulte Gestión de grupos para obtener más información.

  2. Escriba sentencias de política para permitir el acceso a los recursos de Oracle Cloud Infrastructure.
    1. En la consola de Oracle Cloud Infrastructure, haga clic en Identidad y seguridad.
    2. En Identidad y seguridad, haga clic en Políticas.
    3. Para una política de escritura, haga clic en Crear política.
    4. En la página Crear Política, introduzca un nombre y una descripción.
    5. En la página Crear política, seleccione Mostrar editor manual.
    6. Utilice el Creador de política para crear una política.

      Por ejemplo, para crear una política que permita a los usuarios del grupo de IAM DBUsers acceder a cualquier instancia de Autonomous Database de su arrendamiento:

      Allow group DBUsers to use autonomous-database-family in tenancy
      Por ejemplo, para crear una política que limite a los miembros del grupo DBUsers el acceso a instancias de Autonomous Database solo en el compartimento testing_compartment:
      allow group DBUsers to use autonomous-database-family in compartment testing_compartment 
      Por ejemplo, para crear una política que limite el acceso del grupo a una única base de datos en un compartimento:
      allow group DBUsers to use autonomous-database-family in compartment testing_compartment where target.database.id = 'ocid1.autonomousdatabase.oc1.iad.aaaabbbbcccc'

      Consulte Creación de una política de IAM para autorizar la autenticación de usuarios con tokens en la Guía de seguridad de la base de datos para obtener más información sobre las políticas de IAM para acceder a la base de datos.

    7. Haga clic en Create.

      Consulte Gestión de políticas para obtener más información sobre políticas.

Notas para crear políticas para su uso con usuarios de IAM en Autonomous Database:

  • Las políticas pueden permitir a los usuarios de IAM acceder a instancias de Autonomous Database en todo el arrendamiento o en un compartimento, o limitar el acceso a una única instancia de Autonomous Database.

  • Puede utilizar el principal de instancia o la entidad de recurso para recuperar tokens de base de datos a fin de establecer una conexión desde la aplicación a una instancia de Autonomous Database. Si utiliza un principal de instancia o un principal de recurso, debe asignar un grupo dinámico. Por lo tanto, no se puede asignar exclusivamente principales de instancia y de recurso; solo se pueden asignar mediante una asignación compartida y colocando la instancia o la instancia de recurso en un grupo dinámico de IAM.

    Puede crear grupos dinámicos y grupos dinámicos de referencia en las políticas que cree para acceder a Oracle Cloud Infrastructure. Consulte Planificación de controles de acceso y creación de recursos de soporte y Gestión de grupos dinámicos para obtener más información.

Adición de usuarios de IAM en Autonomous Database

Para agregar usuarios de IAM para permitirles el acceso a Autonomous Database, asigne usuarios globales de base de datos a grupos o usuarios de IAM con las sentencias CREATE USER o ALTER USER (con la cláusula IDENTIFIED GLOBALLY AS).

La autorización de usuarios de IAM a una instancia de Autonomous Database funciona mediante la asignación de usuarios globales de IAM (esquemas) a usuarios de IAM (asignación exclusiva) o grupos de IAM (asignación de esquema compartido).

Para autorizar a los usuarios de IAM en una instancia de Autonomous Database:

  1. Conéctese como usuario ADMIN a la base de datos que está activada para utilizar IAM (el usuario ADMIN tiene los privilegios del sistema CREATE USER y ALTER USER necesarios para estos pasos).
  2. Cree una asignación entre el usuario de Autonomous Database (esquema) con las sentencias CREATE USER o ALTER USER e incluya la cláusula IDENTIFIED GLOBALLY AS especificando el nombre del grupo de IAM.

    Utilice la siguiente sintaxis para asignar un usuario global a un grupo de IAM:

    CREATE USER global_user IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_GROUP_NAME';

    Por ejemplo, para asignar un grupo de IAM denominado db_sales_group a un usuario global de base de datos compartida denominado sales_group:

    CREATE USER sales_group IDENTIFIED GLOBALLY AS
         'IAM_GROUP_NAME=db_sales_group';
    

    De este modo se crea una asignación de usuario global compartida. La asignación, con el usuario global sales_group, es efectiva para todos los usuarios del grupo de IAM. Por lo tanto, cualquier usuario de db_sales_group se puede conectar a la base de datos con sus credenciales de IAM (mediante la asignación compartida del usuario global sales_group).

    En el siguiente ejemplo, se muestra cómo realizar esto para un dominio no predeterminado:

    CREATE USER shared_sales_schema IDENTIFIED GLOBALLY AS
         'IAM_GROUP_NAME=sales_domain/db_sales_group';
  3. Si desea crear asignaciones de usuario globales adicionales para otros grupos o usuarios de IAM, siga estos pasos para cada grupo o usuario de IAM.

Note:

Los usuarios de base de datos que no sean IDENTIFIED GLOBALLY pueden continuar con la conexión como antes, incluso cuando Autonomous Database está activado para la autenticación de IAM.

Para asignar exclusivamente un usuario de IAM local a un usuario global de Oracle Database:

  1. Conéctese como usuario ADMIN a la base de datos que está activada para utilizar IAM (el usuario ADMIN tiene los privilegios del sistema CREATE USER y ALTER USER necesarios para estos pasos).

  2. Cree una asignación entre el usuario (esquema) de Autonomous Database con las sentencias CREATE USER o ALTER USER e incluya la cláusula IDENTIFIED GLOBALLY AS especificando el nombre de usuario de IAM local

    Por ejemplo, para crear un nuevo usuario global de base de datos denominado peter_fitch y asignar este usuario a un usuario de IAM local existente denominado peterfitch:

    CREATE USER peter_fitch IDENTIFIED GLOBALLY AS 'IAM_PRINCIPAL_NAME=peterfitch'

    En el siguiente ejemplo, se muestra cómo crear el usuario especificando un dominio no predeterminado, sales_domain:

    CREATE USER peter_fitch2 IDENTIFIED GLOBALLY AS
    'IAM_PRINCIPAL_NAME=sales_domain/peterfitch';

Adición de roles de IAM en Autonomous Database

Si lo desea, puede crear roles globales para proporcionar roles y privilegios de base de datos adicionales a los usuarios de IAM cuando se asignen varios usuarios de IAM al mismo usuario global compartido.

El uso de roles globales es opcional al utilizar una asignación de IAM exclusiva al usuario (esquema) o una asignación de usuario compartido en Autonomous Database. Por ejemplo, se pueden otorgar todos los privilegios y roles al esquema compartido, y a todos los usuarios de IAM que se asignen al esquema compartido se les otorgarán los privilegios y roles asignados al esquema compartido.

Puede utilizar un rol global para diferenciar opcionalmente a los usuarios que utilizan el mismo esquema compartido. Por ejemplo, un juego de usuarios puede tener todos el mismo esquema compartido y el esquema compartido podría tener el privilegio CREATE SESSION. A continuación, los roles globales se pueden utilizar para otorgar privilegios y roles diferenciados asignados a diferentes grupos de usuarios que utilizan el mismo esquema compartido.

El otorgamiento de roles adicionales a usuarios de IAM en Autonomous Database funciona mediante la asignación de roles globales de Autonomous Database a grupos de IAM.

Para asignar roles globales de Autonomous Database a grupos de IAM:

  1. Conéctese como usuario ADMIN a la base de datos que está activada para utilizar IAM (el usuario ADMIN tiene los privilegios del sistema CREATE USER y ALTER USER necesarios para estos pasos).
  2. Defina la autorización de base de datos para los roles de Autonomous Database con las sentencias CREATE ROLE o ALTER ROLE e incluya la cláusula IDENTIFIED GLOBALLY AS especificando el nombre del grupo de IAM.

    Utilice la siguiente sintaxis para asignar un rol global a un grupo de IAM:

    CREATE ROLE global_role IDENTIFIED GLOBALLY AS
        'IAM_GROUP_NAME=IAM_GROUP_of_WHICH_the_IAM_USER_IS_a_MEMBER';

    Por ejemplo, para asignar un grupo de IAM denominado ExporterGroup a un rol global de base de datos compartido denominado export_role:

    CREATE ROLE export_role IDENTIFIED GLOBALLY AS
         'IAM_GROUP_NAME=ExporterGroup';
    

    En el siguiente ejemplo, se muestra cómo crear el rol especificando un dominio no predeterminado, sales_domain:

    CREATE ROLE export_role IDENTIFIED GLOBALLY AS
         'IAM_GROUP_NAME=sales_domain/ExporterGroup';
    

    Todos los miembros de ExporterGroup en el dominio sales_domain se autorizarán con el rol global de base de datos export_role cuando se conecten a la base de datos.

  3. Utilice las sentencias GRANT para otorgar los privilegios necesarios u otros roles al rol global.
    GRANT CREATE SESSION TO export_role;
    GRANT DWROLE TO export_role;
  4. Si desea asociar un rol de base de datos existente a un grupo de IAM, utilice la sentencia ALTER ROLE para modificar el rol de base de datos existente para asignar el rol a un grupo de IAM. Utilice la siguiente sintaxis para modificar un rol de base de datos existente para asignarlo a un grupo de IAM:
    ALTER ROLE existing_database_role 
       IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_Group_Name';

Si desea agregar asignaciones de roles globales adicionales para otros grupos de IAM, siga estos pasos para cada grupo de IAM.

Creación de contraseña de base de datos de IAM para usuarios de IAM

Para agregar un usuario de IAM y permitir que el usuario de IAM se conecte a Autonomous Database proporcionando un nombre de usuario y una contraseña, debe crear una contraseña de base de datos de IAM.

Consulte la sección sobre cómo trabajar con contraseñas de base de datos de IAM para obtener más información.

Conexión a Autonomous Database con autenticación de Identity and Access Management (IAM)

Una vez que el usuario ADMIN de la base de datos ha asignado usuarios globales y roles globales a los usuarios de IAM y los grupos de IAM, los usuarios se conectan a la instancia de Autonomous Database mediante sus credenciales de Oracle Cloud Infrastructure IAM o acceden a la base de datos mediante un token de base de datos de Oracle Cloud Infrastructure IAM.

Podrá seguir conectándose a Autonomous Database con el nombre de usuario y la contraseña de la cuenta de base de datos local (cuenta de usuario de base de datos no global).

Puede utilizar un cliente de base de datos para acceder a una instancia de Autonomous Database como usuario de Oracle Cloud Infrastructure IAM. Para utilizar un cliente con credenciales de nombre de usuario y contraseña de Oracle Cloud Infrastructure IAM y un verificador de contraseñas, el cliente de base de datos debe ser 12c o posterior.

También puede utilizar un token de base de datos deOracle Cloud Infrastructure IAM para acceder a una instancia de Autonomous Database con clientes soportados:

Note:

Si la instancia de Autonomous Database está en modo restringido, solo se podrán conectar a la base de datos los usuarios con el privilegio RESTRICTED SESSION, como ADMIN.

Acerca de la conexión a una instancia de Autonomous Database on Dedicated Exadata Infrastructure mediante IAM

Los usuarios de IAM se pueden conectar a la instancia de Autonomous Database on Dedicated Exadata Infrastructure mediante un verificador de contraseña de base de datos de IAM o un token de IAM.

El uso del verificador de contraseña de base de datos de IAM es similar al proceso de autenticación de contraseña de Oracle Database. Sin embargo, en lugar de almacenar el verificador de contraseña (hash cifrado de la contraseña) en la Autonomous Database on Dedicated Exadata Infrastructure, el verificador se almacena como parte del perfil de usuario de IAM de Oracle Cloud Infrastructure (OCI).

El segundo método de conexión, el uso de un token de IAM para la base de datos, es más moderno. El uso del acceso basado en token se ajusta mejor a recursos en la nube como Autonomous Database on Dedicated Exadata Infrastructure. El token se basa en la seguridad que puede aplicar el punto final de IAM. Puede ser una autenticación multifactor, que es más segura que el uso únicamente de contraseñas. Otra ventaja del uso de tokens es que el verificador de contraseña (que se considera confidencial) nunca se almacena ni está disponible en la memoria.

Conexiones de cliente que utilizan un verificador de contraseña de base de datos de IAM

Una vez que haya configurado la autorización necesaria para el usuario de IAM, este usuario se puede conectar mediante la aplicación cliente existente, como SQL*Plus o SQLcl, sin configuración adicional.

El usuario de IAM introduce el nombre de usuario de IAM y la contraseña de base de datos de IAM (no la contraseña de la consola de Oracle Cloud Infrastructure [OCI]) mediante cualquier cliente de base de datos soportado actualmente. La única restricción es que la versión de cliente de base de datos sea Oracle Database versión 12.1.0.2 o posterior para utilizar contraseñas de Oracle Database 12c. El cliente de base de datos debe poder utilizar el verificador de contraseña 12C. El uso del cifrado del verificador 11G no está soportado con IAM. No se necesita ninguna configuración especial de cliente o herramienta para que el usuario de IAM se conecte a la instancia de Autonomous Database on Dedicated Exadata Infrastructure.

Conexiones de cliente que utilizan un token

Para el acceso de token de IAM a Autonomous Database on Dedicated Exadata Infrastructure, la aplicación o herramienta de cliente solicita un token de base de datos de IAM para el usuario de IAM.

La aplicación cliente transferirá el token de base de datos directamente al cliente de base de datos a través de la API de cliente de base de datos.

Si la aplicación o la herramienta no se han actualizado para que solicite un token de IAM, el usuario de IAM puede utilizar la interfaz de línea de comandos (CLI) de Oracle Cloud Infrastructure (OCI) para solicitar y almacenar el token de base de datos. Puede solicitar un token de acceso a la base de datos (db-token) con las siguientes credenciales:

  • Tokens de seguridad (con autenticación de IAM), tokens de delegación (en OCI Cloud Shell) y API-keys, que son credenciales que representan al usuario de IAM para activar la autenticación
  • Tokens de principal de instancia, que permiten que las instancias sean actores (o principales) autorizados para realizar acciones en recursos de servicio después de la autenticación
  • Token entidad de recurso, que es una credencial que permite a la aplicación autenticarse en otros servicios de Oracle Cloud Infrastructure

Cuando los usuarios de IAM se conectan al cliente con una barra inclinada / y se configura el parámetro OCI_IAM (sqlnet.ora, tnsnames.ora o como parte de una cadena de conexión), el cliente de base de datos recupera el token de base de datos de un archivo. Si el usuario de IAM envía un nombre de usuario y una contraseña, la conexión utilizará el acceso del verificador de base de datos de IAM descrito para las conexiones de cliente que utilizan verificadores de contraseña de base de datos de IAM. En las instrucciones de esta guía se muestra cómo utilizar la CLI de OCI como ayuda para el token de base de datos. Si la aplicación o la herramienta se ha actualizado para que funcione con IAM, siga las instrucciones de la aplicación o la herramienta. Algunos casos de uso habituales son: SQL*Plus local, SQLcl local, SQL*Plus en Cloud Shell o aplicaciones que utilizan carteras SEP.

En los siguientes temas se explica cómo:
  • Configurar una conexión de cliente para que SQL*Plus utilice una contraseña de base de datos de IAM.

  • Configurar una conexión de cliente para que SQL*Plus utilice un token de IAM.

  • Acceder a la base de datos mediante un token de base de datos deOracle Cloud Infrastructure IAM utilizando un principal de instancia.

Configuración de una conexión de cliente para SQL*Plus que utilice una contraseña de base de datos de IAM

Puede configurar SQL*Plus para que utilice una contraseña de base de datos de IAM.

  • Como usuario de IAM, conéctese a la instancia de Autonomous Database utilizando la siguiente sintaxis:
    CONNECT user_name@db_connect_string
    Enter password: password

    En esta especificación, user_name es el nombre de usuario de IAM. Hay un límite de 128 bytes para la combinación de domain_name/user_name.

    En el siguiente ejemplo se muestra cómo el usuario de IAM peter_fitch se puede conectar a una instancia de Autonomous Database.

    sqlplus /nolog
    connect peter_fitch@db_connect_string
    Enter password: password

    Algunos caracteres especiales requerirán que user_name y password vayan entre comillas dobles. Por ejemplo:

    "peter_fitch@example.com"@db_connect_string
    
    "IAM database password"

Configuración de una conexión de cliente para SQL*Plus que utilice un token de IAM

Puede configurar una conexión de cliente para SQL*Plus que utilice un token de IAM.

  1. Asegúrese de que tiene una cuenta de usuario de IAM.
  2. Compruebe con un administrador de IAM y un administrador de Oracle Database que tiene una política que le permite acceder a la base de datos en el compartimento o su arrendamiento, y que está asignado a un esquema global en la base de datos.
  3. Si la aplicación o la herramienta no soporta la integración directa con IAM, descargue, instale y configure la CLI de OCI. ( Consulte la sección de inicio rápido de la interfaz de línea de comandos de OCI). Configure una clave de API como parte de la configuración de la CLI de OCI y seleccione los valores por defecto.
    1. Configure el acceso a la clave de API para el usuario de IAM.
    2. Recupere db-token. Por ejemplo:
      • Recuperación de db-token con API-key mediante la interfaz de línea de comandos de Oracle Cloud Infrastructure (OCI):
        oci iam db-token get
      • Recuperación de db-token con un token de seguridad (o sesión):
        oci iam db-token get --auth security_token

        Si el token de seguridad ha caducado, aparecerá una ventana para que el usuario pueda volver a conectarse a OCI. Esto genera el token de seguridad para el usuario. La CLI de OCI utilizará este token refrescado para obtener db-token.

      • Recuperación de db-token con un token de delegación: al conectarse a Cloud Shell, el token de delegación se genera automáticamente y se ubica en el directorio /etc. Para obtener este token, ejecute el siguiente comando en Cloud Shell:
        oci iam db-token get
      • Recuperación de un token de instancia mediante la interfaz de línea de comandos de OCI:
        oci iam db-token get --auth instance_principal
    3. El cliente de base de datos también se puede configurar para recuperar un token de base de datos utilizando el nombre de usuario de IAM y la contraseña de base de datos de IAM.
    Consulte Claves y OCID necesarios para obtener más información.
  4. Asegúrese de utilizar las actualizaciones más recientes de las versiones 19c y 21c del cliente de Oracle Database.
    Esta configuración solo funciona con la versión 19c o 21c del cliente de Oracle Database.
  5. Siga el proceso existente para descargar la cartera de Autonomous Database y, a continuación, siga las instrucciones para configurarla para su uso con SQL*Plus.
    1. Confirme que la coincidencia de DN está activada buscando SSL_SERVER_DN_MATCH=ON en sqlnet.ora.
    2. Configure el cliente de base de datos para que utilice el token de IAM agregando TOKEN_AUTH=OCI_TOKEN al archivo sqlnet.ora. Puesto que utilizará las ubicaciones por defecto para el archivo de token de base de datos, no es necesario incluir la ubicación del token.
    Los valores TOKEN_AUTH y TOKEN_LOCATION en las cadenas de conexión de tnsnames.ora tienen prioridad sobre la configuración de sqlnet.ora de esa conexión. Por ejemplo, para la cadena de conexión, suponiendo que el token está en la ubicación por defecto (~/.oci/db-token para Linux):
    (description= 
      (retry_count=20)(retry_delay=3)
      (address=(protocol=tcps)(port=1522)
      (host=example.us-phoenix-1.oraclecloud.com))
      (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
      (security=(ssl_server_cert_dn="CN=example.uscom-east-1.oraclecloud.com, 
         OU=Oracle BMCS US, O=Example Corporation, 
         L=Redwood City, ST=California, C=US")
      (TOKEN_AUTH=OCI_TOKEN)))
    
Después de actualizar la cadena de conexión con el parámetro TOKEN_AUTH, el usuario de IAM se puede conectar a la instancia de Autonomous Database ejecutando el siguiente comando para iniciar SQL*Plus. Puede incluir el propio descriptor de conexión o utilizar el nombre del descriptor del archivo tnsnames.ora.
connect /@exampledb_high

O:

connect /@(description= 
  (retry_count=20)(retry_delay=3)
  (address=(protocol=tcps)(port=1522)
  (host=example.us-phoenix-1.oraclecloud.com))
  (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
  (security=(ssl_server_cert_dn="CN=example.uscom-east-1.oraclecloud.com, 
     OU=Oracle BMCS US, O=Example Corporation, 
     L=Redwood City, ST=California, C=US")
  (TOKEN_AUTH=OCI_TOKEN)))

El cliente de base de datos ya está configurado para obtener db-token porque TOKEN_AUTH ya está definido, ya sea mediante el archivo sqlnet.ora o en una cadena de conexión. El cliente de base de datos obtiene db-token y lo firma mediante la clave privada y, a continuación, envía el token a Autonomous Database. Si se ha especificado un nombre de usuario de IAM y una contraseña de base de datos de IAM en lugar de una barra inclinada /, el cliente de base de datos se conectará utilizando la contraseña en lugar de db-token.

Uso del principal de instancia para acceder a Autonomous Database con autenticación de Identity and Access Management (IAM)

Una vez que el usuario ADMIN ha activado IAM en Oracle Cloud Infrastructure en Autonomous Database, una aplicación puede acceder a la base de datos a través de un token de base de datos de Oracle Cloud Infrastructure IAM mediante un principal de instancia.

Configuración de autenticación de proxy

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.

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 un permiso para que el usuario de IAM se conecte mediante proxy a 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 al que se realizará la conexión mediante 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 al 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. Tendrá que conectarse a la base de datos utilizando los diferentes tipos de métodos de autenticación que se muestran aquí, pero la salida de los comandos que ejecute será la misma para todos los tipos.
    • Para la autenticación mediante contraseña:
      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"
      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 mediante token:
      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"
      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"

Uso de un enlace de base de datos con usuarios autenticados de IAM

Puede utilizar un enlace de base de datos para conectarse desde una instancia de Autonomous Database a otra como usuario de Oracle Cloud Infrastructure IAM.

Puede utilizar un usuario conectado o un enlace de base de datos de usuario fijo para conectarse a una instancia de Autonomous Database como usuario de Oracle Cloud Infrastructure IAM.

Note:

El enlace de base de datos de usuario actual no está soportado para la conexión a Autonomous Database como usuario de Oracle Cloud Infrastructure IAM.
  • Enlace de base de datos de usuario conectado: para un enlace de base de datos de usuario conectado, un usuario de IAM debe estar asignado a un esquema en la base de datos de origen y en la de destino conectado mediante un enlace de base de datos. Puede utilizar un verificador de contraseña de base de datos o un token de base de datos de IAM para utilizar un enlace de base de datos de usuario conectado.

  • Enlace de base de datos de usuario fijo: se puede crear un enlace de base de datos de usuario fijo mediante un usuario de base de datos o un usuario de IAM. Al utilizar un usuario de IAM como enlace de base de datos de usuario fijo, el usuario de IAM debe tener una asignación de esquema en la base de datos de destino. El usuario de IAM para un enlace de base de datos solo se puede configurar con un verificador de contraseña.

Desactivación de la autenticación de Identity and Access Management (IAM) en Autonomous Database

Describe los pasos para desactivar el acceso de usuario de autenticación externa de IAM para Autonomous Database.

Puede desactivar el acceso de usuario de IAM en la instancia de Autonomous Database mediante el comando ALTER SYSTEM, como se muestra a continuación:
ALTER SYSTEM RESET IDENTITY_PROVIDER_TYPE SCOPE=BOTH;

Si también desea actualizar el acceso a IAM desde el recurso, es decir, la base de datos de contenedores autónoma o Autonomous Database, puede que deba eliminar o modificar el grupo de IAM y las políticas que haya configurado para permitir el acceso a IAM desde esos recursos.

Notas para el uso de herramientas de Autonomous Database con autenticación de Identity and Access Management (IAM)

Proporciona notas para utilizar las herramientas de Autonomous Database con la autenticación de IAM activada.