Uso de las autenticaciones de Identity and Access Management (IAM) con Autonomous AI Database

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

Note:

La integración de la base de datos de IA autónoma con Oracle Cloud Infrastructure (OCI) IAM está soportada en arrendamientos comerciales con dominios de identidad, así como en el Oracle Cloud Infrastructure IAM heredado, 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 AI Database soporta usuarios y grupos en dominios de identidad por defecto y no por defecto.

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

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

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

Note:

Cualquier cliente de base de datos 12c y superior soportado se puede utilizar para el acceso con contraseña a la base de datos de IA autónoma de la base de datos de IAM.

Las contraseñas de base de Datos de IAM de Oracle Cloud Infrastructure permiten a un usuario de IAM conectarse a una instancia de Autonomous AI Database, ya que, por lo general, los usuarios de la instancia de Oracle Database se conectan con un nombre y 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 la IAM con el verificador de contraseña le permite conectarse a Autonomous AI Database con cualquier cliente 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.

  • A client application or tool can use an Oracle Cloud Infrastructure IAM instance principal or resource principal to get an IAM database token, and use the IAM database token to authenticate itself to an Autonomous AI Database instance.

  • 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. See About Authenticating and Authorizing IAM Users for an Oracle Autonomous AI Database for a description of other methods such as using a delegation token within an 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 del servicio Identity and Access Management (IAM) en la base de datos de IA autónoma

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

Utilice el servicio Networking para agregar un gateway de servicio, una regla del direccionamiento y una regla del saliente a la VCN (Red virtual en la nube) y a las subredes en las cuales residen sus recursos de Autonomous AI Database.

  1. Cree una puerta de enlace de servicio en la VCN (Red virtual en la nube) donde residan sus recursos de Autonomous AI Database siguiendo las instrucciones de la Tarea 1: creación del puerta de enlace de servicio en 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 las instancias de Autonomous AI Database para que estos recursos puedan utilizar el gateway para utilizar 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 la base de datos de IA autónoma

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 autorización de Oracle Cloud Infrastructure (IAM) para usuarios está activada por defecto para Autonomous AI Database y las bases de Datos de contenedores autónomas recién aprovisionadas. Existen 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 su base de datos de IA autónoma. Sin embargo, solo puede haber uno de los esquemas de autenticación externo activado en el momento determinado.

Para permitir que los usuarios de la base de datos se conecten a Autonomous AI 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 conectarse a la base de datos de IA autónoma mediante Oracle Cloud Infrastructure (IAM) Authentication and Authorization.
    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

Describes the steps to write policy statements for an IAM group to enable IAM user access to Oracle Cloud Infrastructure resources, specifically Autonomous AI Database instances.

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 AI Database. No es necesaria una política al utilizar contraseñas para acceder a Autonomous AI Database de la base de datos de IAM.

Para activar Autonomous AI Database para permitir a los usuarios de la instancia de IAM conectarse a la base de datos mediante tokens de la aplicación 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 de IAM del grupo DBUsers acceder a cualquier base de datos de IA autónoma de su arrendamiento:

      Allow group DBUsers to use autonomous-database-family in tenancy
      Por ejemplo, para crear una política que limite el acceso a los miembros del grupo DBUsers a las base de datos de IA autónoma 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 AI Database:

  • Las políticas pueden permitir a los usuarios de la IAM acceder a instancias de la base de datos de IA autónoma en todo el arrendamiento, en un compartimento, o limitar la acceso a una única instancia de la base de datos de IA autónoma.

  • Puede utilizar la entidad de instancia o la de recurso para recuperar tokens para establecer una conexión desde la aplicación a una instancia de la base de datos de IA autónoma. 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.

Agregar usuarios de IAM en Autonomous AI Database

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

La autorización de usuarios de la IAM a una instancia de la base de datos de IA autónoma funciona mediante la asignación de usuarios globales de la IAM (esquemas) a usuarios de la IAM (asignación exclusiva) o grupos de la IAM (asignación de esquema compartido).

Para autorizar a los usuarios de IAM en una instancia de la base de datos de IA autónoma:

  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 la base de datos de IA autónoma (esquema) con las sentencias CREATE USER o ALTER USER e incluya la cláusula IDENTIFIED GLOBALLY AS especificando el nombre de 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 información que no sean IDENTIFIED GLOBALLY pueden continuar con la conexión como antes, incluso cuando Autonomous AI Database está activado para el autenticación deIAM.

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 de base de datos de IA autónoma (esquema) con sentencias CREATE USER o ALTER USER e incluya la cláusula IDENTIFIED GLOBALLY AS, especificando el nombre de usuario de IAM local de IAM.

    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 funciones de IAM en Autonomous AI 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 cuando se utiliza una asignación de IAM exclusiva al usuario (esquema) o una asignación de usuario compartido en Autonomous AI 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.

La asignación de roles adicionales a usuarios de la instancia de IAM en Autonomous AI Database funciona mediante la asignación de roles globales de la instancia de Autonomous AI Database a grupos de la instancia de IAM.

Para asignar roles globales de la base de datos de IA autónoma 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 la base de datos de IA autónoma con las sentencias CREATE ROLE o ALTER ROLE e incluya la cláusula IDENTIFIED GLOBALLY AS especificando el nombre de 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 usuarios de IAM y permitir que el usuario de IAM se conecte a Autonomous AI Database proporcionando un número de usuario y una contraseña, debe crear una contraseña para la base de datos de 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 la base de datos de IA autónoma con autenticación en Identity and Access Management (IAM)

Después de que el usuario ADMIN de la base de datos haya asignado usuarios globales y roles globales a los usuario de IAM y a los grupo de IAM, los usuarios se conectarán a la instancia deAutonomous AI Database mediante sus credenciales IAM de Oracle Cloud Infrastructure o accederán a la base de datos mediante un token Oracle Cloud Infrastructure de base de datos IAM.

Podrá seguir conectándose a la base de datos de IA autónoma con el nombre del usuario y contraseña de su cuenta de base datos local (cuenta de usuario no global).

Puede utilizar un cliente de base de datos para acceder a una instancia de la base de datos de IA autónoma como usuario de la IAM de Oracle Cloud Infrastructure. Para utilizar un cliente con credenciales del nombre de usuario de Oracle Cloud Infrastructure IAM y un Verificador de contraseña, el cliente de base de datos debe ser 12c o más reciente.

También puede utilizar un token de base de datos de IAM de Oracle Cloud Infrastructure para acceder a una instancia de base de datos de IA autónoma con clientes soportados:

Note:

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

Acerca de la conexión a una instancia de base de datos de IA autónoma en infraestructura de Exadata dedicada mediante IAM

Los usuarios de la instancia de IAM se pueden conectar a la instancia de Autonomous AI 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. However, instead of the password verifier (encrypted hash of the password) being stored in the Autonomous AI Database on Dedicated Exadata Infrastructure, the verifier is instead stored as part of the Oracle Cloud Infrastructure (OCI) IAM user profile.

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 adapta mejor a recursos en la nube, como Autonomous AI 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 ningún tipo de configuración de cliente o herramienta especial para que el usuario de IAM se conecte a la instancia de Autonomous AI Database on Dedicated Exadata Infrastructure.

Conexiones de cliente que utilizan un token

Para acceder de token deIAM a Autonomous AI Database on Dedicated Exadata Infrastructure, la aplicación o la herramienta del cliente solicitan un token de base de Datos de IAM para el usuario deIAM.

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 AI Database mediante 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 los usuarios de IAM peter_fitch pueden conectarse a un instancia de Autonomous AI 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 AI 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 que se actualice las cadenas de conexión con el parámetro TOKEN_AUTH, el usuario de IAM se puede conectar a la instancia de Autonomous AI 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 la base de Datos de IA autónoma. 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 AI Database con autenticación IAM de Identity and Access Management (en inglés)

Una vez que el usuario ADMIN haya activado IAM en Oracle Cloud Infrastructure en Autonomous AI Database, una aplicación puede acceder a la base del datos a través del token IAM de Oracle Cloud Infrastructure 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 la base de datos de IA autónoma como 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 la base de datos de IA autónoma 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 para conectarse desde una instancia de la base de datos de IA autónoma a otra como usuario de IAM de Oracle Cloud Infrastructure.

Puede utilizar una base de datos de usuario conectado o un enlace de base de datos de usuario fijo para conectarse a una base de datos de IA autónoma como usuario deOracle Cloud Infrastructure IAM.

Note:

El enlace de base de datos del usuario actual no está soportado para la conexión a una base de datos autónoma de IA como usuario de IAM de Oracle Cloud Infrastructure.
  • 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 del proceso de autenticación en Autonomous AI Database de Identity and Access Management (IAM)

Describe los pasos para desactivar el acceso del usuario para la base de datos de IA autónoma de IAM para la autenticación externa.

Puede desactivar el acceso de usuarios de IAM en la instancia de Autonomous AI 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 la base de datos de contenedores autónoma o base de datos de IA autónoma de IAM desde el recurso, 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 la base de datos de IA autónoma con autenticación del servicio Identity and Access Management (IAM)

Proporciona notas para utilizar las herramientas de la base de datos de IA autónoma con autentificación de IAM activada.