Acerca de la integración de Oracle Autonomous Database con el ID de Microsoft Entra

Oracle Autonomous Database y Microsoft Entra ID se pueden configurar para permitir a los usuarios y aplicaciones conectarse a la base de datos mediante sus credenciales de Entra ID.

Los usuarios y las aplicaciones de Azure pueden iniciar sesión con credenciales de inicio de sesión único (SSO) de Entra ID para acceder a la base de datos. Esto se realiza con un token de acceso OAuth2 de ID de Entra que el usuario o la aplicación primero solicita del ID de Entra. 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 posterior, excepto 21c
  • Todas las plataformas de servidor de Oracle Database: Linux, Windows, AIX, Solaris y HPUX
  • Oracle Autonomous Database Serverless
  • Oracle Autonomous Database en infraestructura de Exadata dedicada
  • Oracle Autonomous Database on Exadata Cloud@Customer
  • Oracle Exadata Database Service on Dedicated Infrastructure
  • Oracle Exadata Database Service en Cloud at Customer
  • Oracle Base Database Service:

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

Este tipo de integración permite al usuario de Azure acceder a una instancia de Oracle Autonomous Database. Los usuarios y las aplicaciones de Azure pueden conectarse con credenciales de conexión única (SSO) de Entra ID para obtener un token de acceso OAuth2 de Entra ID para enviarlo a la base de datos.

El administrador de Entra ID crea y registra Oracle Autonomous Database con Entra ID. Dentro de Entra ID, esto se denomina registro de aplicación, que es la abreviatura de registro de aplicación. Esta es la información digital que Entra ID debe conocer sobre el software que utiliza Entra ID. El administrador de Entra ID también crea roles de aplicación para el registro de la aplicación de base de datos en Entra ID. Los roles de aplicación conectan usuarios, grupos y aplicaciones de Azure a esquemas y roles de base de datos. El administrador de Entra ID asigna usuarios, grupos o aplicaciones de Azure 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 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. Un usuario invitado de Azure (usuario no de organización) o una entidad de servicio Entra ID (aplicación) solo se pueden asignar a un esquema global de base de datos mediante un rol de aplicación Entra ID. 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, incluidas Oracle APEX, Database Actions, Oracle Graph Studio y la API de Oracle Database para MongoDB, no son compatibles con el uso de tokens Entra ID para conectarse a la base de datos.

Las herramientas y aplicaciones que se actualizan para admitir tokens Entra ID pueden autenticar usuarios directamente con Entra ID y transferir el token de acceso a la base de datos a la instancia de Oracle Autonomous Database. Puede configurar herramientas de base de datos existentes como SQL*Plus para utilizar un token de ID de Entra desde una ubicación de archivo. En estos casos, los tokens Entra ID se pueden recuperar mediante herramientas como Microsoft PowerShell o Azure CLI y colocarse en una ubicación de archivo. Los tokens de acceso a la base de datos OAuth2 de Entra ID se emiten 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 asignó el principal Entra ID en el registro de la aplicación Entra ID de la base de datos se incluyen como parte del token de acceso. La ubicación del directorio para el token de Entra ID 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 estos 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 pueden solicitar un token de Entra ID mediante una serie de métodos para abrir una ventana de conexión de Azure para introducir sus credenciales de Entra ID.

Oracle Autonomous Database acepta tokens que representan los siguientes principales de Entra ID:

  • Usuario de Azure, que es usuario registrado en el arrendamiento de Entra ID
  • Usuario invitado, que está registrado como usuario invitado en el arrendamiento de Entra ID
  • 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 soporta los siguientes flujos de autenticación de Entra ID:

  • Flujo interactivo (también denominado flujo de código de autorización) que utiliza la clave de prueba para el intercambio de código (PKCE), que se utiliza con mayor frecuencia para usuarios humanos (no aplicaciones) para autenticarse en Entra ID 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 donde 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 Entra ID formen parte de la llamada de solicitud de token.
Nota

La integración de DBaaS con el ID de Microsoft Entra no soporta usuarios con privilegios administrativos (SYSDBA, SYSOPER, SYSBACKUP, SYSDG, SYSKM y SYSRAC).

Temas

Arquitectura de la Integración de Oracle Database con el ID de Microsoft Entra

Los tokens de acceso de Microsoft Azure Active Directory siguen el estándar OAuth 2.0 con extensiones.

Se necesitará el token de acceso Entra ID antes de acceder a la base de datos desde el cliente de base de datos (por ejemplo, con SQLPlus o SQLcl). Los clientes de Oracle (por ejemplo, OCI, JDBC y ODP) se pueden configurar para seleccionar un token de Entra ID de una ubicación de archivo o el token se puede transferir al cliente a través de la API de cliente de base de datos. Un usuario de Azure puede utilizar un script (ejemplos disponibles de Microsoft) para recuperar un token y colocarlo en una ubicación de archivo para que el cliente de base de datos lo recupere. Las aplicaciones pueden utilizar el SDK de Azure para obtener un token de acceso y transferirlo a través de la API de cliente de base de datos. Las herramientas de línea de comandos como Microsoft PowerShell o la interfaz de línea de comandos de Azure se pueden utilizar para recuperar el token de Entra ID si la aplicación no puede obtener directamente el token.

El siguiente diagrama es un diagrama de flujo generalizado para el estándar OAuth 2.0, mediante el token OAuth2. Consulte Authentication flow support in MSAL en la documentación de Microsoft Entra ID para obtener más información sobre cada flujo soportado.

El flujo de código de autorización es un estándar OAuth2 y se describe en detalle como parte de los estándares. Hay dos pasos en el flujo. El primer paso autentica al usuario y recupera el código de autorización. El segundo paso utiliza el código de autorización para obtener el token de acceso a la base de datos.

  1. El usuario de Azure solicita acceso al recurso, la instancia de Oracle Database.
  2. El cliente o la aplicación de la base de datos solicitan un código de autorización de Entra ID.
  3. Entra ID autentica el usuario de Azure y devuelve el código de autorización.
  4. La herramienta auxiliar o la aplicación utiliza el código de autorización con el ID de Entra para intercambiarlo por el token OAuth2.
  5. El cliente de base de datos envía el token de acceso OAuth2 a la base de datos Oracle. El token incluye los roles de la aplicación de base de datos a los que se asignó el usuario en el registro de la aplicación Entra ID para la base de datos.
  6. La instancia de Oracle Database utiliza la clave pública Entra ID para verificar que el token de acceso ha sido creado por Entra ID.

Tanto el cliente de base de datos como el servidor de base de datos deben estar registrados con la función registros de aplicaciones en la sección Azure Active Directory del portal de Azure. El cliente de base de datos debe estar registrado con el registro de la aplicación Entra ID. También se debe otorgar permiso para permitir que el cliente de base de datos obtenga un token de acceso para la base de datos.

Asignación de usuarios de Azure a un esquema y roles de Oracle Database

Los usuarios de Microsoft Azure deben estar asignados a un esquema de Oracle Database y tener los privilegios necesarios (mediante roles) antes de poder autenticarse en la instancia de Oracle Database.

En Microsoft Azure, un administrador de Entra ID puede asignar usuarios, grupos y aplicaciones a los roles de aplicación de base de datos.

La asignación exclusiva de un usuario de Entra ID a un esquema de base de datos requiere que el administrador de la base de datos cree y gestione un esquema de base de datos para el ciclo de vida del usuario (unión, movimiento, abandono). El administrador de la base de datos debe crear el esquema cuando el usuario se une a la organización. El administrador de la base de datos también debe modificar los privilegios y roles que se otorgan al esquema de base de datos para alinearlos con las tareas a las que está asignado el usuario de Azure. Cuando el usuario de Azure abandona la organización, el administrador de la base de datos debe borrar el esquema de base de datos para que no quede una cuenta no utilizada en la base de datos. El uso de los roles de aplicación de base de datos permite al administrador de Entra ID controlar el acceso y los roles mediante la asignación de usuarios a roles de aplicación que están asignados a esquemas y roles globales. De esta forma, los administradores de Entra ID gestionan el acceso de usuario a la base de datos y los administradores de la base de datos no necesitan crear, gestionar ni borrar esquemas para cada usuario.

Un usuario de Azure se puede asignar a un esquema de base de datos (usuario) de forma exclusiva o mediante un rol de aplicación.

  • Creación de una asignación exclusiva entre un usuario de Azure y un esquema de Oracle Database. En este tipo de asignación, se debe crear el esquema de base de datos para el usuario de Azure. Los privilegios y roles de base de datos que necesita el usuario de Azure se deben otorgar al esquema de base de datos. El esquema de base de datos no solo se debe crear cuando el usuario de Azure está autorizado a la base de datos, sino que los privilegios y roles otorgados se deben modificar a medida que cambian los roles y las tareas de Entra ID. Por último, el esquema de base de datos se debe borrar cuando el usuario de Azure abandona la organización.
  • Creación de una asignación compartida entre un rol de aplicación Entra ID y un esquema de Oracle Database. Este tipo de asignación, que es más común que las asignaciones exclusivas, es para los usuarios de Azure que se han asignado directamente al rol de aplicación o que son miembros de un grupo de Entra ID asignado al rol de aplicación. El rol de aplicación se asigna a un esquema de Oracle Database (asignación de esquema compartido). La asignación de esquema compartido permite que varios usuarios de Azure compartan el mismo esquema de Oracle Database, por lo que no es necesario crear un nuevo esquema de base de datos cada vez que un nuevo usuario se una a la organización. Esta eficiencia operativa permite a los administradores de bases de datos centrarse en las tareas de mantenimiento, rendimiento y ajuste de aplicaciones de la base de datos, en lugar de configurar nuevos usuarios, actualizar privilegios y roles y eliminar cuentas.

Además de otorgar directamente roles y privilegios de base de datos al esquema global asignado, se pueden otorgar roles y privilegios adicionales mediante roles globales asignados. Los diferentes usuarios de Azure asignados al mismo esquema global compartido pueden necesitar diferentes privilegios y roles. Los roles de la aplicación Azure se pueden asignar a roles globales de Oracle Database. A los usuarios de Azure asignados al rol de aplicación o que sean miembros de un grupo de ID de Entra asignado al rol de aplicación se les otorgará el rol global de Oracle Database cuando accedan a la base de datos.

En el siguiente diagrama se ilustran los diferentes tipos de asignaciones que están disponibles.

Estas asignaciones son las siguientes:

  • Un usuario de Azure se puede asignar directamente a un esquema global (usuario) de Oracle Database.
  • Se asigna un usuario de Azure, un grupo de ID de Entra o una aplicación a un rol de aplicación que, a continuación, se asigna a un esquema global (usuario) de Oracle Database o a un rol global.

Casos de Uso para Conectarse a una Oracle Database con Entra ID

Oracle Database soporta varios casos de uso para conectarse a la base de datos.

  • Flujo de código de autorización OAuth2: es el flujo más común para usuarios humanos. El cliente dirige al usuario de Azure a Entra ID para obtener el código de autorización. Este código se utiliza para obtener el token de acceso a la base de datos. Consulte el artículo de Microsoft Azure Plataforma de identidad y flujo de código de autorización de OAuth 2.0.
  • Credenciales de contraseña de propietario de recurso (ROPC): este flujo no se recomienda para los servidores de producción. Es útil para el software de prueba que no puede funcionar con una ventana de autenticación emergente. Se utiliza en entornos de interfaz de usuario no gráficos cuando no se puede utilizar una ventana emergente para autenticar un usuario.
  • Credenciales de cliente: este flujo se utiliza para que las aplicaciones se conecten a la base de datos. La aplicación debe registrarse con el registro de la aplicación Entra ID y necesita un ID de cliente y una contraseña de cliente. Estas credenciales de cliente se deben utilizar para obtener el token de acceso a la base de datos del ID de Entra cuando la aplicación se conecta a la base de datos. La aplicación puede transferir el token a través del sistema de archivos o a través de la API de cliente de base de datos.
  • Token On-behalf-of (OBO): una aplicación Azure solicita un token OBO para un usuario conectado. El token OBO también será un token de acceso para la base de datos con la identidad de usuario de Azure y los roles de aplicación asignados para la base de datos. Esto permite al usuario de Azure conectarse a la base de datos como usuario y no a la aplicación. Solo una aplicación puede solicitar un token de OBO para su usuario de Azure y transferirlo al cliente de base de datos a través de la API.