Conexión de usuarios de Identity and Access Management (IAM) a Oracle Exadata Database Service on Dedicated Infrastructure

Puede configurar Oracle Exadata Database Service on Dedicated Infrastructure 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 Oracle Database con credenciales de IAM.

Autenticación de Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM) con Oracle Database

Aprenda a activar una instancia de Oracle Database en Oracle Exadata Database Service on Dedicated Infrastructure para permitir el acceso de usuario con una contraseña de base de datos de Oracle Cloud Infrastructure IAM (mediante un verificador de contraseña) o con tokens SSO.

Acerca de la autenticación de Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM) con Oracle Database

Los usuarios de IAM se pueden conectar a la instancia de base de datos 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 base de datos. Sin embargo, en lugar de almacenar el verificador de contraseña (hash cifrado de la contraseña) en la base de datos, el verificador se almacena como parte del perfil de usuario de OCI IAM.

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 es una opción más adecuada para recursos en la nube como instancias de Oracle Database en Exadata Cloud 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.

Nota

Oracle Database soporta la integración DBaaS de Oracle para Oracle Cloud Infrastructure (OCI) IAM con dominios de identidad, así como IAM heredado, que no incluye dominios de identidad. Los grupos y usuarios de dominio por defecto y no por defecto están soportados al utilizar IAM con dominios de identidad.

El soporte para dominios personalizados que no son por defecto solo está disponible con Oracle Database versión 19c, versión 19.21 y posteriores (pero no con Oracle Database versión 21c).

La integración de Oracle Cloud Infrastructure IAM con Oracle Exadata Database Service on Dedicated Infrastructure soporta los siguientes métodos de autenticación:

  • Autenticación mediante verificador de contraseña de base de datos de Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)
  • Autenticación basada en token SSO de Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)

Para obtener más información sobre la arquitectura para utilizar usuarios de IAM en Oracle Exadata Database Service on Dedicated Infrastructure, consulte Autenticación y autorización de usuarios de IAM para Oracle DBaaS Databases en la Guía de seguridad de Oracle Database 19c y la Guía de seguridad de Oracle Database 23ai.

Autenticación mediante verificador de contraseña de base de datos de Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)

Puede activar una instancia de Oracle Database para permitir el acceso de usuario con una contraseña de base de datos de Oracle Cloud Infrastructure IAM (mediante un verificador de contraseña).

Nota

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 Oracle Database.

Una contraseña de base de datos de Oracle Cloud Infrastructure IAM permite a un usuario de IAM conectarse a una instancia de Oracle 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 su 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. Mediante un usuario de IAM con un verificador de contraseña, puede conectarse a Oracle Database con cualquier cliente de base de datos soportado.

Para el acceso a la base de datos del verificador de contraseñas, cree las asignaciones para usuarios de IAM y aplicaciones de OCI a la instancia de Oracle Database. Las propias cuentas de usuario de IAM se gestionan en IAM. Las cuentas de usuario y los grupos de usuarios pueden estar en el dominio predeterminado o en un dominio personalizado no predeterminado.

Para obtener más información sobre la gestión de contraseñas de base de datos de IAM, consulte Gestión de credenciales de usuario.

Autenticación basada en token SSO de Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)

Para el acceso de token de IAM a la base de datos, 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 herramienta no se ha actualizado para que solicite un token de IAM, el usuario de IAM puede utilizar la interfaz de línea de comandos de 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 OCI 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 OCI
  • 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. Si el parámetro PASSWORD_AUTH=OCI_TOKEN, el controlador de base de datos utilizará el nombre de usuario y la contraseña para conectarse directamente a IAM y solicitar un token de base de datos. 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.

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. 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 (19c y 21c) disponen de un juego limitado de capacidades para el acceso de token. La versión 21c del cliente de Oracle Database no soporta por completo la función de acceso de token de IAM:
    • JDBC-thin en todas las plataformas
      • Consulte Soporte para la autenticación basada en token de IAM y Descargas de JDBC y UCP para obtener más información.
    • SQL*Plus y Oracle Instant Client OCI-C en Linux:

      Consulte Autenticación basada en token de Identity and Access Management (IAM) para obtener más información

    • Oracle Data Provider para .NET (ODP.NET) Core: clientes .NET (versión más reciente de Linux o Windows). Los componentes de software .NET están disponibles como descarga gratuita en los siguientes sitios:
      • Oracle Data Access Components: descargas de .NET
      • Galería NuGet
      • Visual Studio Code Marketplace
  • Si la aplicación o 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). Para obtener más información, consulte db-token get. 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 la ubicación de archivo por defecto o en una especificada.
  • Algunos clientes de Oracle Database 23ai también pueden obtener un token directamente desde OCI IAM en lugar de utilizar la interfaz de línea de comandos de OCI. Revise la documentación del cliente para ver qué clientes soportan esta integración nativa de IAM.
  • Una aplicación o herramienta de cliente puede utilizar un principal de recurso o un principal de instancia de Oracle Cloud Infrastructure IAM 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 Oracle Database. Para obtener más información, consulte Asignación de principales de instancia y de recurso.
  • 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 Autenticación y autorización de usuarios de IAM para instancias de base de datos de Oracle DBaaS 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.
Nota

Si la base de datos está en modo restringido, solo los administradores de base de datos con el privilegio RESTRICTED SESSION pueden conectarse a la base de datos.

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ña para acceder a la base de datos. Si el parámetro PASSWORD_AUTH=OCI_TOKEN, el controlador de base de datos utilizará en su lugar el nombre de usuario y la contraseña para conectarse directamente a IAM y solicitar un token de base de datos.

Requisitos para la autenticación de Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM) en Oracle Database

Revise los requisitos para la autenticación de Identity and Access Management (IAM) en una instancia de Oracle Database.

Requisitos para la autenticación de IAM en Oracle Database

Antes de utilizar la autenticación de IAM en bases de datos de Exadata Cloud Infrastructure, debe utilizar el servicio Networking para agregar un gateway de servicio, una regla de ruta y una regla de seguridad de salida a la red virtual en la nube (VCN) y las subredes en las que residen los recursos de la base de datos.

  1. Cree un gateway de servicio en la VCN en la que residan los recursos de base de datos siguiendo las instrucciones de la Tarea 1: creación del gateway de servicio de la documentación de OCI.
  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 la base de datos para que estos recursos puedan utilizar el gateway para usar la autenticación de 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 rutas de la subred para mostrar su página Detalles de tabla de rutas.
    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.

Desactivación del esquema de autenticación externo

Revise los requisitos para activar el acceso de usuario de IAM a Oracle Database.

Si la base de datos está activada para otro esquema de autenticación externo, verifique que desea utilizar IAM en la instancia de Oracle Database. Solo puede haber un esquema de autenticación externo activado en un momento determinado.

Si desea utilizar IAM y otro esquema de autenticación externo está activado, primero debe desactivar el otro esquema de autenticación externo.

Configuración de TLS para utilizar tokens de IAM

Al enviar tokens de IAM desde el cliente de base de datos al servidor de base de datos, se debe establecer una conexión TLS. La cartera TLS con el certificado de base de datos para la instancia de servicio ExaDB-D se debe almacenar en la ubicación WALLET_ROOT. Cree un directorio tls para que tenga el siguiente aspecto: WALLET_ROOT/<PDB GUID>/tls.

Al configurar TLS entre el cliente y el servidor de base de datos, hay varias opciones que se deben tener en cuenta.

  • Uso de un certificado de servidor de base de datos autofirmado frente a un certificado de servidor de base de datos firmado por una autoridad de certificación comúnmente conocida
  • TLS unidireccional (TLS) frente a TLS mutua o bidireccional (mTLS)
  • Cliente con o sin cartera

Certificado autofirmado

El uso de un certificado autofirmado es una práctica habitual para los recursos de TI internos, ya que puede crearlos usted mismo y de forma gratuita. El recurso (en nuestro caso, el servidor de base de datos) tendrá un certificado autofirmado para autenticarse en el cliente de base de datos. El certificado autofirmado y el certificado raíz se almacenarán en la cartera del servidor de base de datos. Para que el cliente de base de datos pueda reconocer el certificado del servidor de base de datos, también se necesitará una copia del certificado raíz en el cliente. Este certificado raíz creado automáticamente se puede almacenar en una cartera del cliente o se puede instalar en el almacén de certificados por defecto del sistema cliente (solo Windows y Linux). Cuando se establece la sesión, el cliente de base de datos comprobará que el certificado enviado por el servidor de base de datos ha sido firmado por el mismo certificado raíz.

Una autoridad de certificación conocida

El uso de una autoridad de certificación raíz conocida tiene algunas ventajas, ya que es muy probable que el certificado raíz ya esté almacenado en el almacén de certificados por defecto del sistema cliente. No hay ningún paso adicional necesario para que el cliente almacene el certificado raíz si es un certificado raíz común. La desventaja es que esto tiene normalmente un costo asociado.

TLS unidireccional

En la sesión TLS estándar, solo el servidor proporciona un certificado al cliente para autenticarse a sí mismo. El cliente no necesita tener un certificado de cliente independiente para autenticarse en el servidor (proceso similar a cómo se establecen las sesiones HTTPS). Aunque la base de datos necesita una cartera para almacenar el certificado del servidor, lo único que debe tener el cliente es el certificado raíz utilizado para firmar el certificado del servidor.

TLS bidireccional (también denominada TLS mutua, mTLS)

En mTLS, tanto el cliente como el servidor tienen certificados de identidad que se presentan entre sí. En la mayoría de los casos, el mismo certificado raíz firmará ambos certificados, por lo que el mismo certificado raíz se puede utilizar con el servidor de base de datos y el cliente para autenticar el otro certificado. mTLS se utiliza a veces para autenticar al usuario, ya que el servidor de base de datos autentica la identidad del usuario mediante el certificado. Esto no es necesario para transferir tokens de IAM, pero se puede utilizar al transferir tokens de IAM.

Cliente con cartera

Es obligatoria una cartera de cliente cuando se utiliza mTLS para almacenar el certificado de cliente. Sin embargo, el certificado raíz se puede almacenar en la misma cartera o en el almacén de certificados por defecto del sistema.

Un cliente sin cartera

Los clientes se pueden configurar sin una cartera al utilizar TLS en estas condiciones: 1) TLS unidireccional se está configurando en el caso en que el cliente no tiene su propio certificado y 2) el certificado raíz que ha firmado el certificado del servidor de base de datos se almacena en el almacén de certificados por defecto del sistema. Es probable que el certificado raíz ya exista si el certificado de servidor está firmado por una autoridad de certificación común. Si se trata de un certificado autofirmado, el certificado raíz se deberá instalar en el almacén de certificados por defecto del sistema para evitar el uso de una cartera de cliente.

Para obtener detalles sobre cómo configurar TLS entre el cliente de base de datos y el servidor de base de datos, incluidas las opciones descritas anteriormente, consulte Configuración de autenticación de seguridad de capa de transporte en la Guía de seguridad de Oracle Database.

Si decide utilizar certificados autofirmados para tareas adicionales relacionadas con la cartera, consulte Gestión de elementos de infraestructuras de claves públicas (PKI) en la Guía de seguridad de Oracle Database.

Activación de la base de datos y los clientes para la integración de IAM

Siga el enlace adecuado que aparece a continuación para configurar los usuarios de IAM para acceder a la base de datos.

Para obtener más información sobre la arquitectura para utilizar usuarios de IAM en Oracle Exadata Database Service on Dedicated Infrastructure, consulte Autenticación y autorización de usuarios de IAM para Oracle DBaaS Databases en la Guía de seguridad de Oracle Database 19c y la Guía de seguridad de Oracle Database 23ai.