Note:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse en una cuenta gratuita, consulte Introducción a la cuenta gratuita de Oracle Cloud Infrastructure.
- Utiliza valores de ejemplo para credenciales, arrendamiento y compartimentos de Oracle Cloud Infrastructure. Al finalizar el laboratorio, sustituya estos valores por otros específicos del entorno en la nube.
Integración de Oracle Autonomous Database con Microsoft Entra ID
Introducción
Oracle Autonomous Database se puede integrar con Microsoft Entra ID (ME-ID, anteriormente conocido como Azure Active Directory (Azure AD)). Los usuarios y las aplicaciones de ME-ID pueden conectarse con credenciales de conexión única (SSO) de ME-ID para obtener un token de acceso OAuth2 de ME-ID y acceder a la base de datos.
Esto se realiza con un token de acceso OAuth2 de ME-ID que el usuario o la aplicación primero solicita de ME-ID. 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.
Público Objetivo
Profesionales y administradores de IAM.
Objetivos
- Configure Autonomous Database para utilizar el token de acceso OAuth2 de Microsoft Entra ID y permitir a los usuarios acceder a una instancia de Autonomous Database con credenciales SSO de ME-ID.
Requisitos
-
Integración de Oracle Autonomous Database con Microsoft Entra ID
-
Autonomous Database aprovisionada en OCI.
-
Arrendamiento de dominios de identidad de OCI IAM con privilegio de administrador.
-
Cualquier herramienta de Oracle Database para probar la conexión de Autonomous Database, consulte Conexión a Autonomous Database mediante las herramientas de Oracle Database. En este tutorial, estamos utilizando la interfaz de línea de comandos de SQL*Plus en la Nueva instalación de Oracle Client del sistema Windows.
-
Cuenta de Microsoft Azure existente con privilegio de administrador.
Tarea 1: Registro de Oracle Autonomous Database con el registro de aplicaciones de Microsoft Azure
-
Conéctese al portal de Microsoft Azure como mínimo administrador de aplicaciones en la nube.
-
Vaya a Inicio, Azure Active Directory, Registros de aplicación y Registrar una aplicación. Introduzca Nombre como
ADB-DB
y haga clic en Registrar. Se ha creado la aplicación. -
Haga clic en URI de ID de aplicación: Agregar, Editar el URI de ID de aplicación y sustituya api: por el nombre de dominio de arrendamiento como se ha mencionado y, a continuación, haga clic en Guardar.
-
URI de ID de aplicación:
<tenancy_domain_name>/appid
-
-
Haga clic en Agregar un ámbito, introduzca los siguientes detalles y, a continuación, haga clic en Agregar ámbito.
-
Nombre de ámbito:
session:scope:connect
-
¿Quién puede conceder?:
Admins and users
-
Nombre mostrado de consentimiento de administrador:
connect to database
-
Descripción del consentimiento del administrador:
connect to database
-
Nombre mostrado de contenido de usuario:
connect to database
-
Descripción del contenido del usuario:
connect to database
-
Estado:
Enabled
-
-
Haga clic en Visión general, Roles de aplicación, Crear rol de aplicación, introduzca los siguientes detalles y, a continuación, haga clic en Aplicar.
-
Nombre mostrado:
pdb.users
-
Tipos de miembros permitidos:
Users/Groups
-
Valor:
pdb.users
-
Descripción:
all user access
-
¿Desea activar este rol de aplicación?:
Enabled
-
-
Haga clic en Roles de aplicación, Crear rol de aplicación, introduzca los siguientes detalles y, a continuación, haga clic en Aplicar.
-
Nombre mostrado:
dba.role
-
Tipos de miembros permitidos:
Users/Groups
-
Valor:
dba.role
-
Descripción:
dba global role
-
¿Desea activar este rol de aplicación?:
Enabled
-
-
Haga clic en Roles de aplicación, Crear rol de aplicación, introduzca los siguientes detalles y, a continuación, haga clic en Aplicar.
-
Nombre mostrado:
hr.app
-
Tipos de miembros permitidos:
Applications
-
Valor:
hr.app
-
Descripción:
application
-
¿Desea activar este rol de aplicación?:
Enabled
-
-
Vaya a Inicio, Aplicaciones empresariales, ADB-DB, Asignar usuarios y grupos.
-
En Agregar asignación, seleccione Usuarios y seleccione su usuario. Al generar el token de acceso, este usuario asignado se utilizará en Single-Sign On.
-
En Seleccionar un rol, seleccione pdb.users.
-
Haga clic en Select.
-
Haga clic en Asignar.
-
-
En Agregar asignación, seleccione Usuarios y seleccione su usuario. Al generar el token de acceso, este usuario asignado se utilizará en Single-Sign On.
-
En Seleccionar un rol, seleccione dba.role.
-
Haga clic en Select.
-
Haga clic en Asignar.
-
Tarea 2: Crear registro de aplicación cliente
-
Vaya a Inicio, Registros de aplicación, Registrar una aplicación, introduzca los siguientes detalles y, a continuación, haga clic en Registrar.
-
Nombre:
ADB-Client
. -
Tipos de cuenta soportados:
Accounts in this organizational directory only
. -
Redirigir URI:
Public client/native - http://localhost
.
-
-
Vaya a Permisos de API y haga clic en Agregar permiso. En Solicitar permisos de API, seleccione API que utiliza mi organización, ADB-DB, Permisos delegados y permiso como
session:scope:connect
y, a continuación, haga clic en Agregar permisos. -
Haga clic en Exponer una API, URI de ID de aplicación: Agregar, Editar el URI de ID de aplicación y sustituya api: por el nombre de dominio de arrendamiento.
Tarea 3: Conexión a la base de datos SQL
-
Vaya a Oracle Autonomous Database y haga clic en la lista desplegable Acciones de base de datos, seleccione SQL e introduzca las siguientes consultas.
SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
Nota:
identity_provider_type
está definido actualmente enNONE
. -
Ejecute el procedimiento de base de datos para definir el proveedor de identidad en 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;
-
Vuelva a ejecutar la consulta SQL para comprobar el proveedor de identidad.
SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
Nota:
identity_provider_type
ahora esAzure AD
. -
Cree usuarios:
allusers
,hrapp
y rol:dba_azure
.CREATE USER allusers IDENTIFIED GLOBALLY AS 'AZURE_ROLE=pdb.users'; CREATE USER hrapp IDENTIFIED GLOBALLY AS 'AZURE_ROLE=hr.app'; CREATE ROLE dba_azure IDENTIFIED GLOBALLY AS 'AZURE_ROLE=dba.role';
-
Otorgue Crear sesión a:
allusers
yhrapp
.GRANT CREATE SESSION TO allusers;
GRANT CREATE SESSION TO hrapp;
GRANT pdb_dba TO dba_azure;
Tarea 4: Navegar al portal de Azure
-
Abra Azure Portal y vaya a Inicio, Registros de aplicaciones y ADB-Client. Copie el Application (client) ID y el Directory (tenant) ID.
-
Abra el portal de Azure y vaya a Inicio, Registros de aplicaciones y ADB-DB. Copie el ámbito.
Tarea 5: Obtener token de Microsoft Access mediante la biblioteca MSAL Python
-
Consulte el script de Python para obtener el token de acceso mediante el flujo AuthZ. Consulte Obtención de tokens de Microsoft Entra ID mediante la biblioteca MSAL Python.
-
Sustituya
Client_id
,Tenant_id
yScope
en el script obtenido en la tarea 4.
Tarea 6: Ejecución del script de Python
-
Abra PowerShell. Verifique la versión de Python y la versión
pip
.python --version
pip --version
-
Ejecute el script de Python con el siguiente comando. Se le redirigirá al portal de Microsoft Azure, donde deberá autenticarse.
python ./get-token-for-user.py
-
Una vez finalizada la autenticación, se le redirigirá a PowerShell y se genera el token de acceso.
-
Guarde el token de acceso en la máquina local, proporcione el nombre como token y guárdelo como tipo de archivo
All Types
. -
Conéctese mediante una cadena de conexión según su entorno. Sustituya hostname y access-token-path según
TNS.ora
en la cartera.conn /@(description= (retry_count-20) (retry_delay=3) (address= (protocol=tcps) (port=1522) (host-adb. us-ashburn-1.oraclecloud. com)) (connect_data=(<hostname>))(security-(ss1_server_dn_match-yes)(TOKEN_AUTH-OAUTH)(TOKEN_LOCATION-"<access-token-path>")))
Ahora se ha conectado correctamente a la base de datos.
-
Ejecute las siguientes consultas SQL una por una y observe la salida para validar el usuario y los roles.
sqlplus /nolog
SELECT SYS_CONTEXT ('USERENV','CURRENT_USER') FROM DUAL;
SELECT SYS_CONTEXT ('USERENV','AUTHENTICATED_IDENTITY') FROM DUAL;
SELECT SYS_CONTEXT ('USERENV','ENTERPRISE_IDENTITY') FROM DUAL;
SELECT * FROM SESSION_ROLES;
exit
Ha probado correctamente la conexión a Autonomous Database mediante el token de acceso ME-ID OAuth.
Enlaces relacionados
Agradecimientos
- Autoras: Indiradarshni Balasundaram, Alex Kovuru, Anuj Tripathi
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en Oracle Learning Explorer.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Integrate Oracle Autonomous Database with Microsoft Entra ID
F90208-01
December 2023
Copyright © 2023, Oracle and/or its affiliates.