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

Una vez que el usuario ADMIN haya activado Oracle Cloud Infrastructure IAM en Autonomous Database, los usuarios se conectarán a la instancia deAutonomous Database con sus credenciales IAM de Oracle Cloud Infrastructure o accedente a la base de datos mediante un token IAM de Oracle Cloud Infrastructure.

Después de activar los accesos de usuario a Oracle Cloud Infrastructure IAM, también puede conectarse a Autonomous Database mediante el nombre del usuario y su contraseña (cuenta de usuario del base datos no global) de su cuenta.

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 del nombre de usuario de IAM y una contraseña de Oracle Cloud Infrastructure y un verificador del nombre de usuario, el cliente de base de datos debe ser 12c o posterior.

También puede utilizar un token de base de Datos de IAM de Oracle Cloud Infrastructure para acceder a una instancia de la instancia de la Autonomous Database. El uso de tokens de IAM requiere la actualización más reciente de la versión 19c del cliente de Oracle Database (19.16 como mínimo). Algunos clientes anteriores ofrecen un juego limitado de capacidades para el acceso del token.

En los siguientes ejemplos se muestra el verificador de contraseñas con SQL*Plus para acceder a la base de datos con un nombre de usuario y una contraseña de IAM de Oracle Cloud Infrastructure y los pasos necesarios para utilizar SQL*Plus con un token de base de datos de IAM de Oracle Cloud Infrastructure.

Nota

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.

Puede utilizar un token Oracle Cloud Infrastructure IAM Database Token para acceder a una instancia deAutonomous Database con clientes soportados, incluidos los siguientes:

Acerca de la conexión a la instancia de Autonomous Database mediante IAM

Los usuario de IAM se pueden conectar a la instancia de la base de datos de Autonomous Database 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 almacenarse el verificador de contraseña (hash cifrado de la contraseña) en la base de datos Oracle, el verificador se almacena como parte del perfil 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 los recursos de la nube, como Autonomous Database. 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. Se necesita una conexión TCPS (TLS) al utilizar tokens para el acceso a la base de datos.

Nota

No puede configurar el cifrado de red nativo al transferir un token de IAM. Solo está soportada la seguridad de capa de transporte (TLS) por sí misma, no el cifrado de red nativo ni el cifrado de red nativo con TLS.

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 DBaaS de OCI.

Conexiones de cliente que utilizan un token solicitado por una aplicación o herramienta de cliente

Para la conexión de token deIAM a la instancia de Autonomous Database, la aplicación o la herramienta del cliente solicitan un token de base de Datos de IAM para el usuario 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 principal de recurso, que es una credencial que permite a la aplicación autenticarse en otros servicios de Oracle Cloud Infrastructure
  • Nombre de usuario de IAM y contraseña de base de datos de IAM (solo puede solicitarlo el cliente de base de datos).

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: SQLPlus local, SQLcl local, SQL*Plus en Cloud Shell o aplicaciones que utilizan carteras SEP.

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 los usuarios de IAM peter_fitch se pueden conectar a las instancias 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 el administrador de IAM y con el administrador de Oracle Database que tiene una política en la que puede 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 de 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. The database client can also be configured to retrieve a database token using the IAM username and IAM database password.
    Consulte Claves y OCID necesarios para obtener más información.
  4. Asegúrese de utilizar las actualizaciones más recientes de la versión 19c, 21c o 23ai del cliente Oracle Database.
    Esta configuración solo funciona con la versión 19c, 21c o 23ai del cliente Oracle Database.
  5. Siga el proceso existente para descargar la cartera de la 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.
      Nota

      Se necesita una coincidencia de DN parcial o completa al enviar un token desde el cliente de base de datos a Autonomous Database. Si Autonomous Database utiliza un punto final privado, debe especificar un valor de host para el parámetro de cadena de conexión. El uso de una dirección IP para el parámetro de host en la cadena de conexión no funcionará con la coincidencia de DN y el token de IAM no se enviará a la base de datos.

      Consulte Ejemplos de configuración de puntos finales privados en Autonomous Database para obtener información de configuración sobre cómo definir el parámetro de host al utilizar un punto final privado.

    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_dn_match=yes)
      (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 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 bien:

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, 
     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 Oracle Cloud Infrastructure IAM 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.