Autenticación y autorización de usuarios de Microsoft Azure Active Directory para Autonomous Database

Se puede configurar una instancia de Oracle Autonomous Database on Dedicated Exadata Infrastructure para que los usuarios de Microsoft Azure AD se conecten mediante tokens de acceso OAuth2 de Azure.

Acerca de la integración de Oracle Autonomous Database on Dedicated Exadata Infrastructure con Microsoft Azure AD

Oracle Autonomous Database on Dedicated Exadata Infrastructure y Microsoft Azure AD se pueden configurar para permitir a los usuarios y aplicaciones conectarse a la base de datos mediante sus credenciales de Azure AD.

Los usuarios y las aplicaciones de Azure AD se pueden conectar con credenciales de conexión única (SSO) de Azure AD para acceder a la base de datos. Esto se realiza con un token de acceso OAuth2 de Azure AD que el usuario o la aplicación primero solicita de Azure AD. Este token de acceso OAuth2 contiene la identidad del usuario y la información de acceso a la base de datos y, a continuación, se envía a la base de datos. Consulte el artículo de Microsoft Opciones de autenticación sin contraseña para Azure Active Directory para obtener información sobre la configuración de la autenticación multifactor y sin contraseña.

Puede realizar esta integración en los siguientes entornos de Oracle Database:

  • Oracle Database local versión 19.18 y posteriores
  • Oracle Autonomous Database on Shared Exadata Infrastructure
  • Oracle Autonomous Database en infraestructura de Exadata dedicada
  • Oracle Base Database Service
  • Oracle Exadata Cloud Service (Oracle ExaCS)

Las instrucciones para configurar Azure AD utilizan el término "Oracle Database" para abarcar estos entornos.

Este tipo de integración permite al usuario de Azure AD acceder a una instancia de Oracle Autonomous Database on Dedicated Exadata Infrastructure. Los usuarios y las aplicaciones de Azure AD se pueden conectar con credenciales de conexión única (SSO) de Azure AD para obtener un token de acceso OAuth2 de Azure AD que enviar a la base de datos.

El administrador de Azure AD crea y registra Oracle Autonomous Database on Dedicated Exadata Infrastructure con Azure AD. Dentro de Azure AD, esto se denomina registro de aplicaciones, que es la abreviatura de registro de aplicaciones. Esta es la información digital que Azure AD debe conocer sobre el software que utiliza Azure AD. El administrador de Azure AD también crea roles de aplicación para el registro de la aplicación de la base de datos en Azure AD. Los roles de aplicación conectan usuarios, grupos y aplicaciones de Azure a esquemas y roles de base de datos. El administrador de Azure AD asigna usuarios, grupos o aplicaciones de Azure AD a los roles de aplicación. Estos roles de aplicación se asignan a un esquema global de base de datos, a un rol global o a un esquema y a un rol. Los usuarios, grupos o aplicaciones de Azure AD asignados a un rol de aplicación se asignarán a un esquema global de base de datos, a un rol global o a un esquema y a un rol. Un esquema global de Oracle también se puede asignar exclusivamente a un usuario de Azure AD. Un usuario invitado de Azure AD (usuario no de organización) o una entidad de servicio (aplicación) de Azure AD solo se puede asignar a un esquema global de base de datos mediante un rol de aplicación de Azure AD. Un rol global de Oracle solo se puede asignar desde un rol de aplicación de Azure y no desde un usuario de Azure.

Las herramientas de Oracle Autonomous Database on Dedicated Exadata Infrastructure, incluidas Oracle APEX, Database Actions, Oracle Graph Studio y la API de Oracle Database para MongoDB, no son compatibles con el uso de tokens de Azure AD para conectarse a la base de datos.

Las herramientas y aplicaciones que se actualizan para soportar tokens de Azure AD pueden autenticar usuarios directamente con Azure AD y transferir el token de acceso de base de datos a la instancia de Oracle Autonomous Database on Dedicated Exadata Infrastructure. Puede configurar herramientas de base de datos existentes como SQL*Plus para utilizar un token de Azure AD desde una ubicación de archivo. En estos casos, los tokens de Azure AD se pueden recuperar mediante herramientas como Microsoft PowerShell o Azure CLI y colocarse en una ubicación de archivo. Se emiten tokens de acceso a base de datos OAuth2 de Azure AD con una hora de caducidad. El controlador de cliente de Oracle Database garantizará que el token tenga un formato válido y que no haya caducado antes de transferirse a la base de datos. El token está incluido en el ámbito de la base de datos, lo que significa que hay información en el token sobre la base de datos en la que se utilizará el token. Los roles de aplicación a los que se ha asignado el principal de Azure AD en el registro de la aplicación de Azure AD de base de datos se incluyen como parte del token de acceso. La ubicación del directorio para el token de Azure AD solo debe tener permisos suficientes para que el usuario escriba el archivo de token en la ubicación y el cliente de base de datos recupere esos archivos (por ejemplo, simplemente lectura y escritura por parte del usuario). Dado que el token permite el acceso a la base de datos, debe estar protegido en el sistema de archivos.

Los usuarios de Azure AD pueden solicitar un token de Azure AD mediante una serie de métodos para abrir una ventana de conexión de Azure para introducir sus credenciales de Azure AD.

Oracle Autonomous Database on Dedicated Exadata Infrastructure acepta tokens que representan los siguientes principales de Azure AD:

  • Usuario de Azure AD, que es un usuario registrado en el arrendamiento de Azure AD
  • Usuario invitado, que está registrado como usuario invitado en el arrendamiento de Azure AD
  • Servicio, que es la aplicación registrada que se conecta a la base de datos como ella misma con el flujo de credenciales del cliente (caso de uso de pool de conexiones)

Oracle Autonomous Database on Dedicated Exadata Infrastructure soporta los siguientes flujos de autenticación de Azure AD:

  • Código de autorización, más utilizado por usuarios humanos (no aplicaciones) para autenticarse en Azure AD en un entorno de cliente con un explorador
  • Credenciales de cliente, para aplicaciones de base de datos que se conectan como ellas mismas (y no como usuario final)
  • On-Behalf-Of (OBO), donde una aplicación solicita un token de acceso en nombre de un usuario conectado para enviarlo a la base de datos
  • Credencial de contraseña de propietario de recurso (ROPC), que no se recomienda para uso de producción, pero se puede utilizar en entornos de prueba en los que sería difícil incorporar una autenticación de usuario de explorador emergente. ROPC necesita que el nombre de usuario y la credencial de contraseña de Azure AD formen parte de la llamada de solicitud de token.

Arquitectura de la integración de Microsoft Azure AD con Autonomous Database

Los tokens de Microsoft Azure Active Directory siguen el estándar OAuth2 con extensiones. El uso de un token de Azure AD para acceder a una base de datos Oracle es similar al uso de tokens de OCI IAM. Consulte Arquitectura de la integración de Microsoft Azure AD con Oracle Database en la Guía de seguridad para obtener una explicación detallada.

Asignación de usuarios de Azure AD a Autonomous Database

Los usuarios de Microsoft Azure deben estar asignados a un esquema de una instancia de Autonomous Database y tener los privilegios necesarios (mediante roles) antes de poder autenticarse en la instancia de Autonomous Database. Consulte Asignación de usuarios de Azure AD a Oracle Database en la Guía de seguridad para obtener información sobre las diferentes formas de asignar usuarios, grupos y aplicaciones en Microsoft Azure.

Casos de uso para conectarse a una instancia de Autonomous Database mediante Azure AD

Oracle Database soporta tres tipos de casos de uso para conectarse a una instancia de Autonomous Database mediante Microsoft Azure Active Directory. Consulte Casos de uso para conectarse a una instancia de Oracle Database mediante Azure AD para obtener más información.

Proceso general de autenticación de identidades de Microsoft Azure AD con Oracle Autonomous Database on Dedicated Exadata Infrastructure

El administrador de Oracle Database y el administrador de Microsoft Azure AD desempeñan roles para permitir a los usuarios de Azure AD conectarse a la base de datos mediante tokens de acceso OAuth2 de Azure AD.

El proceso general es el siguiente:

  1. El administrador de Oracle Database garantiza que el entorno de Oracle Database cumpla los requisitos para la integración de Microsoft Azure AD. Consulte Requisitos de Oracle Database para la integración de Microsoft Azure AD.
  2. El administrador de Azure AD crea un registro de aplicación de Azure AD para la base de datos y el administrador de Oracle Database permite que la base de datos utilice tokens de Azure AD para el acceso a la base de datos.

    Como parte del proceso de registro de la aplicación, el administrador de Azure AD crea roles de aplicación de Azure que se utilizarán para las asignaciones entre los usuarios, grupos y aplicaciones de Azure a los esquemas y roles de Oracle Database.

  3. El administrador de Oracle Database crea y asigna esquemas globales a un usuario de Azure AD (mapa de esquema exclusivo) o a un rol de aplicación de Azure (mapa de esquema compartido). El usuario o la aplicación de Azure AD se deben asignar a un esquema.
  4. De manera opcional, el administrador de Oracle crea y asigna roles globales de Oracle Database a roles de aplicación de Azure.
  5. El usuario final de Azure AD que desea conectarse con la instancia de Oracle Autonomous Database on Dedicated Exadata Infrastructure registra la aplicación cliente como un cliente de Azure AD (como se registra la base de datos Oracle).

    El cliente de Azure AD tendrá una identificación de cliente y un secreto de cliente, a menos que el cliente de aplicación sea público. Si el cliente de aplicación es público, solo se necesita la identificación del cliente de aplicación.

  6. El usuario final de Azure AD (que puede ser un administrador de base de datos) se conecta mediante una utilidad como PowerShell o la interfaz de línea de comandos de Azure para recuperar el token de acceso a base de datos OAuth2 y almacenarlo en un directorio de archivos local. Una aplicación también puede solicitar un token de acceso OAuth2 de Azure AD directamente desde Azure AD y transferirlo a través de una API de una API de cliente de base de datos. Consulte la siguiente documentación del cliente de Oracle Database para obtener información sobre la transferencia de tokens OAuth2 de Azure AD:
  7. Una vez conectado a la instancia de Oracle Autonomous Database on Dedicated Exadata Infrastructure, el usuario final de Azure AD realiza las operaciones de base de datos necesarias.

Activación de la autenticación de Azure AD en Autonomous Database

Un administrador de Azure AD y un administrador de Autonomous Database realizan pasos para configurar la autenticación de Azure AD en Autonomous Database.

Requisitos

La integración de Microsoft Azure AD con Oracle Autonomous Database on Dedicated Exadata Infrastructure requiere:
  1. Autonomous Database en la versión 19.18 o superior.

  2. Conectividad a la base de datos en el puerto TLS 2484. Las conexiones no TLS no están soportadas.

  3. Conectividad de red de salida a Azure AD para que la base de datos pueda solicitar la clave pública de Azure AD.

  4. Autonomous Database que se va a registrar con Azure AD.

  5. Para los despliegues de Exadata Cloud@Customer, la configuración del proxy HTTP en el entorno debe permitir que la base de datos utilice Azure AD.

    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.

Procedimiento

Implante las siguientes tareas para configurar la integración de Autonomous Database para Microsoft Azure AD.

  1. Registre la instancia de Autonomous Database con un arrendamiento de Microsoft Azure AD: un usuario con privilegios de administrador de Azure AD utiliza Microsoft Azure AD para registrar la instancia de Oracle Database con el arrendamiento de Microsoft Azure AD. Consulte Registro de la instancia de Oracle Autonomous Database con un arrendamiento de Microsoft Azure AD en la Guía de seguridad.

  2. Activar tokens de acceso v2 de Microsoft Azure AD: si su organización utiliza el token de acceso v2 de Microsoft Azure AD (en lugar de tokens v1), puede que necesite realizar cambios adicionales en Azure AD para admitir la reclamación upn: en el token. Consulte Activación de tokens de acceso v2 de Microsoft Azure AD y Comprobación de la versión del token de acceso de Azure AD en la Guía de seguridad.

  3. Gestionar roles de aplicación en Microsoft Azure AD. En Azure AD, puede crear y gestionar roles de aplicación que se asignarán a usuarios y grupos de Azure AD y también se asignarán a esquemas y roles globales de Oracle Database. Consulte Gestión de roles de aplicación en Microsoft Azure AD en la Guía de seguridad.

  4. Configure la conectividad saliente a Microsoft Azure AD mediante un gateway de NAT:

    Cree un gateway de NAT en la red virtual en la nube (VCN) en la que residan los recursos de Autonomous Database siguiendo las instrucciones de Creación de un gateway de NAT de la Documentación de Oracle Cloud Infrastructure.

    Después de crear el gateway de NAT, 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 obtener una clave pública de la instancia de Azure AD:

    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: 0.0.0.0/0
      • Tipo de destino: gateway de NAT
      • Destino: nombre del gateway de NAT 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:

      • Tipo de destino: CIDR
      • Destino: 0.0.0.0/0
      • Protocolo IP: TCP
      • Rango de puertos de origen: 443
      • Rango de puertos de destino: todos

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

  5. Prueba de la Accesibilidad del Punto Final de Entra ID

    Asegúrese de que la instancia de Oracle Database puede acceder al punto final de Entra ID siguiendo los pasos descritos en Prueba de la accesibilidad del punto final de Azure en la Guía de seguridad.

    Si la base de datos no se puede conectar con el punto final de ID de Microsoft Entra, incluso después de definir la política de ACL, compruebe los requisitos anteriores para confirmar que ha configurado la red correctamente según los requisitos. Si el problema persiste, revise la red para asegurarse de que la instancia de base de datos se puede conectar al punto final de MS Entra ID.

  6. Configure Azure AD como proveedor de identidad externo para Autonomous Database:

    Por defecto, las instancias de Autonomous Database y las bases de datos de contenedores autónomas están configuradas para conectar a los usuarios con la autenticación y la autorización de Oracle Cloud Infrastructure (IAM). Un DBA de aplicación también puede cambiar esto a otro esquema de autenticación externo, como los usuarios gestionados centralmente con Active Directory (CMU-AD) o Kerberos. Sin embargo, una instancia de Autonomous Database solo puede activar un esquema de autenticación externo a la vez.

    Para activar Azure AD como proveedor de identidad externo en una instancia de Autonomous Database:

    1. Conéctese a la instancia de Autonomous Database como usuario con el privilegio EXECUTE en el paquete PL/SQL DBMS_CLOUD_ADMIN. El usuario ADMIN tiene este privilegio.
    2. Como solo puede haber un esquema de autenticación externo activado para una instancia de Autonomous Database en un momento determinado, ejecute el procedimiento DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION para desactivar cualquier esquema de autenticación externo que ya esté activado para la base de datos.
      Para ejecutar el procedimiento, debe estar conectado como usuario ADMIN o tener el privilegio EXECUTE en DBMS_CLOUD_ADMIN.
      BEGIN
          DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
      END;
      /
    3. Ejecute el procedimiento DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION con los parámetros necesarios de Azure AD.
      BEGIN
        DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
            type   =>'AZURE_AD',
            params => JSON_OBJECT('tenant_id' VALUE 'tenant_id',
                                  'application_id' VALUE 'application_id',
                                  'application_id_uri' VALUE 'application_id_uri'),
            force => TRUE
        );
      END;

      En este procedimiento, los parámetros de Azure AD son:

      • type: especifica el proveedor de autenticación externa. Para Azure AD, como se muestra, utilice 'AZURE_AD'.
      • params: los valores de los parámetros de Azure AD necesarios están disponibles en el portal de Azure en el panel Visión general de registro de la aplicación para Azure Active Directory. Los valores de params necesarios para Azure AD son:
        • tenant_id: ID de inquilino de la cuenta de Azure. El ID de inquilino especifica el registro de la aplicación Azure AD de la instancia de Autonomous Database.
        • application_id: ID de aplicación de Azure creado en Azure AD para asignar asignaciones de roles/esquemas para la autenticación externa en la instancia de Autonomous Database.
        • application_id_uri: URI único asignado a la aplicación Azure.

          Este es el identificador de la instancia de Autonomous Database. El nombre de dominio debe ser completo (esto soporta el acceso a recursos entre arrendamientos).

          La longitud máxima para este parámetro es 256 caracteres.

      • force: defina este parámetro en TRUE si se ha configurado otro método EXTERNAL AUTHENTICATION para la instancia de Autonomous Database y desea desactivarlo.
      Por ejemplo:
      BEGIN
        DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
            type   =>'AZURE_AD',
            params => JSON_OBJECT('tenant_id' VALUE '29981886-6fb3-44e3-82',
                                  'application_id' VALUE '11aa1a11-aaa',
                                  'application_id_uri' VALUE 'https://example.com/111aa1aa'),
            force  => TRUE
        );
      END;

      Esto define el parámetro del sistema IDENTITY_PROVIDER_TYPE.

      Por ejemplo, puede utilizar lo siguiente para verificar IDENTITY_PROVIDER_TYPE:
      SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
       
      NAME                   VALUE   
      ---------------------- -------- 
      identity_provider_type AZURE_AD
    Consulte Procedimiento ENABLE_EXTERNAL_AUTHENTICATION para obtener más información.

Asignación de esquemas y roles de Oracle Database

Los usuarios de Azure AD se asignarán a un esquema de base de datos y, opcionalmente, a uno o más roles de base de datos.

Tiene las siguientes opciones para asignar esquemas y roles de base de datos Oracle a usuarios de Microsoft Azure AD:

Configuración de conexiones de cliente a AD de Azure

Existen numerosas formas de configurar un cliente para conectarse a una instancia de Oracle Autonomous Database on Dedicated Exadata Infrastructure mediante tokens de Azure AD.

Debe seleccionar el método de conexión de cliente que mejor se adapte a su entorno. En esta guía se proporcionan ejemplos de conexión de SQL*Plus con diferentes métodos para obtener un token de acceso OAuth2 de Azure AD. Todos los clientes de la versión 19c de Oracle Database pueden aceptar un token que se transfiere como archivo. Los controladores JDBC Thin, Instant Client y ODP.net también aceptan el token a través de la API de cliente de base de datos de una aplicación. Las herramientas de Oracle Database como SQL*Plus no pueden recuperar los tokens directamente, por lo que se deben utilizar herramientas como PowerShell o Azure CLI para recuperar el token de acceso OAuth2 de Azure AD. Para recuperar un token de Azure AD, el cliente debe estar registrado mediante el proceso de registro de la aplicación Azure AD. El registro del cliente es similar al registro del servidor de Oracle Autonomous Database on Dedicated Exadata Infrastructure con Azure AD mediante el registro de la aplicación. Tanto la base de datos como el cliente deben estar registrados en Azure AD.

La base de datos se debe registrar para que el cliente pueda obtener permiso para obtener un token de acceso para la base de datos. El cliente debe estar registrado para que Azure AD pueda reconocer que un cliente de confianza está solicitando un token de acceso.

Note:

En el cliente, debe definir los parámetros TOKEN_AUTH y TOKEN_LOCATION en el archivo sqlnet.ora para recuperar el token de acceso a la base de datos de Azure AD desde una ubicación y utilizarlo cuando se utilice la conexión de barra inclinada /. Los detalles exactos se tratan en Configuración de tokens de acceso de SQL*Plus para Azure AD.

Consulte los siguientes artículos de Microsoft Azure para obtener más información sobre la conexión de clientes a Azure AD:

Conexión de cliente de flujo operativo para SQL*Plus en PowerShell a Autonomous Database

La conexión entre el usuario de Azure, Azure AD y la instancia de Autonomous Database se basa en la transferencia del token OAuth2 a través de estos componentes.

Consulte Operational Flow for SQL*Plus Client Connection in PowerShell to Oracle Database en la Security Guide para ver un ejemplo que muestra el uso del flujo de credenciales de contraseña de propietario de recursos (ROPC) con un cliente público.

Registro de un cliente con el registro de la aplicación Azure AD

Este tipo de registro es similar al registro de Autonomous Database con la aplicación Azure AD. Consulte las siguientes secciones para obtener más detalles:

Ejemplos de recuperación de tokens OAuth2 de Azure AD

Para ver ejemplos que muestran las diferentes formas de recuperar tokens OAuth2 de Azure AD, consulte Ejemplos de recuperación de tokens OAuth2 de Azure AD en la Guía de seguridad.

Configuración de SQL*Plus para tokens de acceso a Azure AD

Debe configurar SQL*Plus para recuperar el token de acceso a la base de datos de Azure AD desde una ubicación y utilizarlo cuando se utilice la conexión de barra/. Consulte Configuración de tokens de acceso a SQL*Plus para Azure AD en la Guía de seguridad para obtener instrucciones detalladas.

Solución de problemas de conexiones de ID de Microsoft Entra

Puede utilizar archivos de rastreo para diagnosticar problemas con conexiones de Microsoft Entra ID. También puede solucionar fácilmente los errores ORA-12599 y ORA-03114.

  • Puede utilizar archivos de rastreo para solucionar problemas de la integración de Oracle Database con Microsoft Azure AD. Consulte Archivos de seguimiento para solucionar problemas de conexiones de cliente de Oracle Database con Azure AD en la Guía de seguridad de bases de datos para obtener instrucciones.

  • Los errores ORA-12599: TNS: cryptographic checksum mismatch y ORA-03114: not connected to ORACLE indican que la base de datos a la que intenta conectarse está protegida por el cifrado de red nativo.

    Cuando se utilizan tokens para acceder a una base de datos Oracle, se debe establecer una conexión de seguridad de capa de transporte (TLS), no un cifrado nativo de red. Para solucionar estos errores, asegúrese de que TLS está configurado correctamente para la base de datos. Debe probar la configuración con un nombre de usuario y una contraseña de base de datos local y comprobar los siguientes parámetros SYSCONTEXT USERENV:

    • NETWORK_PROTOCOL
    • TLS_VERSION
  • Puede comprobar la versión del token de acceso de Microsoft Azure AD que utiliza su sitio mediante el sitio web de tokens web de JSON. Consulte Comprobación de la versión del token de acceso de Azure AD en la Guía de seguridad de bases de datos para obtener instrucciones.