Note:

Autenticación de Oracle Database 23ai con el ID de Microsoft Entra

Introducción

Oracle Database se puede integrar con Microsoft Entra ID (anteriormente Microsoft Azure Active Directory) para permitir un acceso seguro y sin contraseña a la base de datos. Con esta configuración, los usuarios y servicios pueden conectarse a la base de datos mediante sus credenciales de Microsoft Entra ID a través de Single Sign-On (SSO).

La autenticación se maneja mediante un token de acceso OAuth2 emitido por Microsoft Entra ID. Este token, que incluye la identidad del usuario y los detalles de acceso, se transfiere a Oracle Database. El cliente de base de datos valida el formato y la caducidad del token antes de permitir el acceso, lo que garantiza un proceso de conexión seguro y optimizado.

¿Por qué necesitamos esto?

A medida que las organizaciones priorizan cada vez más la seguridad, la gestión del acceso a datos confidenciales se vuelve fundamental. Oracle Database, en colaboración con Microsoft Entra ID, permite la autenticación segura sin contraseñas, aprovechando los modernos sistemas de gestión de identidad para un control de acceso fluido, escalable y sólido. Esta integración soporta una amplia gama de despliegues de Oracle, incluidos Oracle Autonomous Database, Oracle Exadata y Oracle Base Database Service, lo que garantiza un acceso consistente y seguro en diferentes entornos.

Clientes y herramientas de base de datos

Las aplicaciones y herramientas que soportan tokens de ID de Microsoft Entra pueden autenticar usuarios directamente a través del ID de Microsoft Entra y transferir el token de acceso a la base de datos a la instancia de Oracle Database a través de la API de cliente. Las herramientas de base de datos existentes, como SQL*Plus, se pueden configurar para utilizar un token de ID de Microsoft Entra almacenado en un archivo. El token se puede recuperar mediante herramientas de ayuda como Microsoft PowerShell, Azure CLI o bibliotecas como Microsoft Authentication Library (MSAL) y se puede guardar en una ubicación de archivo especificada. Más adelante, SQL*Plus hace referencia a este token al establecer la conexión.

Flujo de autenticación entre usuarios mediante sqlplus

Nota: En este tutorial se utiliza un script de Python que utiliza MSAL para adquirir tokens de seguridad. Para obtener más información, consulte Visión general de la biblioteca de autenticación de Microsoft (MSAL).

Este tutorial le guiará a través de la configuración de la autenticación de Microsoft Entra ID para Oracle Base Database 23ai, incluida la configuración de TLS. Consulte la documentación específica de su tipo de base de datos: local, Exadata, DBaaS o Autonomous. Tenga en cuenta que TLS está preconfigurado para Autonomous Database, por lo que puede omitir ese paso.

Público Objetivo

Administradores de Oracle Database y administradores de Oracle Cloud Infrastructure Identity and Access Management (OCI IAM).

Objetivos

Requisitos

Tarea 1: Configuración de TLS para Oracle Database 23ai

Tarea 1.1: Preparación del sistema operativo (SO) para la configuración de TLS

  1. Conéctese al servidor de base de datos y cambie al usuario root para configurar el directorio.

    [opc@db23aigrid ~]$ sudo su -
    
    [root@db23aigrid ~]# mkdir -p /etc/ORACLE/WALLETS/oracle
    
    [root@db23aigrid ~]# cd /etc/
    
    [root@db23aigrid etc]# chown -R oracle:oinstall ORACLE/
    
  2. Obtenga el nombre de host como usuario oracle.

    [root@db23aigrid etc]# su - oracle
    
    [oracle@db23aigrid admin]$ hostname -f
    

    Salida de ejemplo:

    db23aigrid.sub10121249210.dbsecvcn.oraclevcn.com
    
  3. Conéctese a la base de datos.

    [oracle@db23aigrid admin]$ sqlplus "/as sysdba"
    
  4. Verifique el directorio raíz de cartera.

    SQL> show parameter wallet_root;
    

    Salida de ejemplo:

    NAME           TYPE      VALUE
    ----------     ------    ----------------------------------------------------
    wallet_root    string    /opt/oracle/dcs/commonstore/wallets/DB23GRID_w54_iad
    
  5. Compruebe el nombre y el GUID de la base de datos conectable (PDB).

    SQL> show pdbs;
    

    Salida de ejemplo:

    CON_ID   CON_NAME      OPEN MODE      RESTRICTED
    -----    --------      ---------      ----------
    2        PDB$SEED      READ ONLY      NO
    
    3        DB23GRIDPDB   READ WRITE     NO
    
    SQL> select guid from v$containers where name = 'DB23GRIDPDB';
    

    Salida de ejemplo:

    GUID
    -- -----------------------------
    32435DD0A1EC55xxx0639400000A7225
    
  6. Cree directorios locales para la cartera y los certificados.

    [oracle@db23aigrid ~]$ mkdir -p /home/oracle/wallet_tls/certificates/rootCA
    
    [oracle@db23aigrid ~]$ mkdir -p /home/oracle/wallet_tls/certificates/db_wallet
    
  7. Cree el directorio TLS de la base de datos en la ruta de acceso raíz de cartera mediante el GUID de PDB.

    [oracle@db23aigrid ~]$ mkdir -p /opt/oracle/dcs/commonstore/wallets/DB23GRID_w54_iad/32435DDxxxxxx7E0639400000A7225/tls
    
  8. Actualice .bashrc con variables de entorno relacionadas con TLS.

    [oracle@db23aigrid ~]$ vi ~/.bashrc
    

    Agregue lo siguiente y ajuste los valores según su entorno.

    export DBUSR_SYSTEM=system
    export DBUSR_PWD=QAZxswedc123##     # Wallet and Database Administrator (sys) password
    
    export ORA_TLS_DIR=/etc/ORACLE/WALLETS/oracle
    export TLS_DIR=/opt/oracle/dcs/commonstore/wallets/DB23GRID_w54_iad/32435DD0A1EC55E7E0639400000A7225/tls
    export ROOT_TLS_DIR=/home/oracle/wallet_tls/certificates/rootCA
    export DB_TLS_DIR=/home/oracle/wallet_tls/certificates/db_wallet
    
    export TLS_DN=CN=db23aigrid.sub10121249210.dbsecvcn.oraclevcn.com,O=oracle,L=Austin,ST=Texas,C=US
    export TLS_SAN=DNS:db23aigrid,DNS:db23aigrid.sub10121249210.dbsecvcn.oraclevcn.com,
    IPV4Address:143.47.117.99
    
  9. Aplique los cambios.

    [oracle@db23aigrid ~]$ . ~/.bashrc
    

Tarea 1.2: Configuración de Cartera y Certificado de TLS

  1. Cree y configure la cartera raíz.

    1. Cree la cartera raíz.

      [oracle@db23aigrid ~]$ orapki wallet create -wallet ${ROOT_TLS_DIR} -pwd ${DBUSR_PWD} -auto_login
      
    2. Ver el contenido de la cartera, debe estar vacío.

      [oracle@db23aigrid ~]$ orapki wallet display -wallet ${ROOT_TLS_DIR}
      
    3. Cree el certificado autofirmado para la cartera de CA raíz.

      [oracle@db23aigrid ~]$ orapki wallet add -wallet ${ROOT_TLS_DIR} -dn $TLS_DN -keysize 2048 -sign_alg sha256 -self_signed -validity 3652 -pwd ${DBUSR_PWD} -addext_san $TLS_SAN
      
    4. El directorio debe tener ahora los archivos cwallet.sso y ewallet.p12.

      ls -l ${ROOT_TLS_DIR}
      
    5. Vea el contenido de la cartera, debe tener un usuario y un certificado de confianza.

      orapki wallet display -wallet ${ROOT_TLS_DIR}
      
    6. Exporte el certificado de confianza de CA raíz para su uso en la creación de la cartera de base de datos.

      [oracle@db23aigrid ~]$ orapki wallet export -wallet ${ROOT_TLS_DIR} -dn $TLS_DN -cert ${ROOT_TLS_DIR}/rootCA.crt -pwd ${DBUSR_PWD}
      
    7. Consulte el contenido del archivo rootCA.crt.

      cat ${ROOT_TLS_DIR}/rootCA.crt
      
  2. Cree y configure la cartera del servidor (base de datos).

    1. Cree la cartera de base de datos.

      [oracle@db23aigrid ~]$ orapki wallet create -wallet ${DB_TLS_DIR} -pwd ${DBUSR_PWD} -auto_login
      
    2. Agregue el certificado raíz de confianza a la cartera (obtenga este certificado del administrador de certificados).

      [oracle@db23aigrid ~]$ orapki wallet add -wallet ${DB_TLS_DIR} -trusted_cert -cert ${ROOT_TLS_DIR}/rootCA.crt -pwd ${DBUSR_PWD}
      
    3. Cree una clave privada y una solicitud de certificado en la cartera.

      [oracle@db23aigrid ~]$ orapki wallet add -wallet ${DB_TLS_DIR} -keysize 2048 -dn $TLS_DN -pwd ${DBUSR_PWD}-addext_san $TLS_SAN
      
    4. Exporte la solicitud de certificado para firmarla.

      [oracle@db23aigrid ~]$ orapki wallet export -wallet ${DB_TLS_DIR} -dn $TLS_DN -request ${DB_TLS_DIR}/db23gridpdb.csr -pwd ${DBUSR_PWD}
      
    5. Muestre el contenido de la cartera. Habrá una entrada en Certificados solicitados.

      orapki wallet display -wallet ${DB_TLS_DIR}
      
    6. Visualice el contenido del archivo de solicitud de firma de certificado (CSR).

      cat ${DB_TLS_DIR}/db23gridpdb.csr
      
  3. Firme e importe el certificado del servidor.

    1. Firme la CSR mediante la cartera raíz autofirmada.

      [oracle@db23aigrid ~]$ orapki cert create -wallet ${ROOT_TLS_DIR} -request ${DB_TLS_DIR}/db23gridpdb.csr -cert ${DB_TLS_DIR}/db23gridpdb-signed.crt -validity 3652 -sign_alg sha256 -pwd ${DBUSR_PWD}
      
    2. Visualice el certificado de usuario del servidor firmado.

      cat ${DB_TLS_DIR}/db23gridpdb-signed.crt
      
    3. Importe el certificado de usuario del servidor de base de datos firmado a la cartera de base de datos.

      [oracle@db23aigrid ~]$ orapki wallet add -wallet ${DB_TLS_DIR} -user_cert -cert ${DB_TLS_DIR}/db23gridpdb-signed.crt -pwd ${DBUSR_PWD}
      
    4. Visualice el contenido de la cartera y asegúrese de que el certificado de usuario del servidor de base de datos ahora se muestra en Certificados de usuario. La cartera que utilizará para el servidor de base de datos y el listener ya están listos para su uso.

      orapki wallet display -wallet ${DB_TLS_DIR}
      
  4. Desplegar archivos de cartera.

    1. Copie los archivos de cartera del servidor de base de datos.

      [oracle@db23aigrid ~]$ cp -v ${DB_TLS_DIR}/ewallet.p12 ${TLS_DIR}
      
      [oracle@db23aigrid ~]$ cp -v ${DB_TLS_DIR}/cwallet.sso ${TLS_DIR}
      
      [oracle@db23aigrid ~]$ cp -v ${DB_TLS_DIR}/ewallet.p12 ${ORA_TLS_DIR}
      
      [oracle@db23aigrid ~]$ cp -v ${DB_TLS_DIR}/cwallet.sso ${ORA_TLS_DIR}
      
    2. Exportar el certificado.

      [oracle@db23aigrid ~]$ orapki wallet export -wallet ${ROOT_TLS_DIR} -dn $TLS_DN -cert ${ROOT_TLS_DIR}/rootCA.crt -pwd ${DBUSR_PWD}
      
  5. Confíe en el sistema de CA raíz como usuario root.

    1. Ejecute el comando [root@db23ailvm etc]# cp -v /home/oracle/wallet_tls/certificates/rootCA/rootCA.crt /etc/pki/catrust/source/anchors/.

    2. Ejecute el comando [root@db23ailvm etc]# update-ca-trust extract.

    3. Defina los permisos de archivo adecuados.

      cd /etc/ORACLE/WALLETS/
      
      chmod -R 755 oracle/
      

Tarea 1.3: Configuración de Oracle para Comunicación TLS

  1. Edite sqlnet.ora para TLS unidireccional y agregue las siguientes líneas.

    [oracle@db23aigrid ~]$ cd $ORACLE_HOME/network/admin
    
    [oracle@db23aigrid ~]$ vi sqlnet.ora
    
    SSL_CLIENT_AUTHENTICATION = FALSE
    
  2. Edite tnsnames.ora y asegúrese de que se agregan entradas tanto para TCP como para TCPS para la base de datos PDB.

    Ajuste los valores según su entorno:

    [oracle@db23aigrid ~]$ cd $ORACLE_HOME/network/admin
    
    [oracle@db23aigrid ~]$ vi tnsnames.ora
    
    DB23GRIDPDB=(DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
    (ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=db23aigrid)(PORT=1521)))
    (CONNECT_DATA=(SERVICE_NAME=DB23GRIDPDB.sub10121249210.dbsecvcn.oraclevcn.com)))
    
    DB23GRIDPDB_TLS=(DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
    (ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCPS)(HOST=db23aigrid)(PORT=1522)))
    (CONNECT_DATA=(SERVICE_NAME=DB23GRIDPDB.sub10121249210.dbsecvcn.oraclevcn.com)))
    

Tarea 1.4: Configuración del Listener con TLS

Tarea 1.5: Validación de la conectividad TLS

  1. Pruebe el TCP (no TLS).

    $ sqlplus system/QAZxswedc123##@DB23GRIDPDB
    
    SQL> SELECT sys_context('USERENV', 'NETWORK_PROTOCOL') as network_protocol FROM dual;
    
    NETWORK_PROTOCOL
    
    Tcp
    
  2. Prueba del TCPS (TLS activado)

    $ sqlplus system/QAZxswedc123##@DB23GRIDPDB_TLS
    
    SQL> SELECT sys_context('USERENV', 'NETWORK_PROTOCOL') as network_protocol FROM dual;
    
    NETWORK_PROTOCOL
    
    Tcps
    

Tarea 1.6: Configuración del host de cliente para TLS

Nota: Requisitos para esta tarea.

Siga los pasos para configurar el host de cliente:

  1. Copie los archivos de cartera y certificado del servidor de base de datos. Puede utilizar cualquier herramienta de transferencia de archivos preferida para mover estos archivos del servidor de base de datos al cliente.

    cd /home/oracle/wallet_tls/certificates/
    
    tar -cvf rootCA.tar rootCA
    
    chmod 755 rootCA.tar
    
    cp rootCA.tar /tmp/
    
  2. Configurar directorios de cliente.

    [opc@bastion-server8-8 ~]$ sudo su - oracle
    
    [oracle@bastion-server8-8 ~]$ mkdir wallet_db23aigrid_tls
    
    [oracle@bastion-server8-8 ~]$ mkdir -p network/admin
    
    [oracle@bastion-server8-8 ~]$ export TNS_ADMIN=/home/oracle/network/admin
    
  3. Transfiera los archivos de cartera y certificado del servidor de base de datos a la instancia de cliente.

    [oracle@bastion-server8-8 ~]$ cp rootCA.tar wallet_db23aigrid_tls /
    
    [oracle@bastion-server8-8 ~]$ cd wallet_db23aigrid_tls /
    
    [oracle@linuxclient23:~/wallet_db23aigrid_tls]$ cp /tmp/rootCA.tar
    
  4. Extraer archivos de certificado.

    [oracle@linuxclient23:~/wallet_db23aigrid_tls]$ tar -xvf rootCA.tar
    
  5. Configure tnsnames.ora.

    [oracle@bastion-server8-8 ~]$ cd ~/network/admin
    
    [oracle@linuxclient23:~/instantclient_23_7/network/admin]$ vi tnsnames.ora
    
       DB23GRIDPDB=
       (DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
       (ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=143.47.117.99)(PORT=1521)))
       (CONNECT_DATA=(SERVICE_NAME=DB23GRIDPDB.sub10121249210.dbsecvcn.oraclevcn.com)))
    
       DB23GRIDPDB_TLS=(DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
       (ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCPS)(HOST=db23aigrid.sub10121249210.dbsecvcn.oraclevcn.com)(PORT=
       1522)))
       (CONNECT_DATA=(SERVICE_NAME=DB23GRIDPDB.sub10121249210.dbsecvcn.oraclevcn.com))
       (SECURITY = (SSL_SERVER_DN_MATCH=TRUE)))
    
  6. Configure sqlnet.ora.

    [oracle@linuxclient23:~/instantclient_23_7/network/admin]$ vi sqlnet.ora
    
       SSL_CLIENT_AUTHENTICATION = FALSE
       WALLET_LOCATION =
       (SOURCE =(METHOD = FILE)
       (METHOD_DATA =(DIRECTORY =/home/oracle/wallet_db23aigrid_tls/rootCA)))
    

Tarea 1.7: Prueba de la conexión desde la instancia de cliente

  1. Pruebe el TCP (no TLS).

    $ sqlplus system/QAZxswedc123##@DB23GRIDPDB
    
    SQL> SELECT sys_context('USERENV', 'NETWORK_PROTOCOL') as network_protocol FROM dual;
    
      NETWORK_PROTOCOL
    
      Tcp
    
  2. Pruebe el TCPS (TLS activado).

    $ sqlplus system/QAZxswedc123##@DB23GRIDPDB_TLS
    
    SQL> SELECT sys_context('USERENV', 'NETWORK_PROTOCOL') as network_protocol FROM dual;
    
      NETWORK_PROTOCOL
    
      Tcps
    

Tarea 2: Configuración de Microsoft Azure y la integración de bases de datos

Tarea 2.1: Registro del servidor de base de datos en Microsoft Azure

  1. Inicie sesión en el portal de Microsoft Azure como administrador con privilegios de Microsoft Entra ID para registrar aplicaciones.

  2. En la página Centro de administración del directorio activo de Azure, seleccione ID de Microsoft Entra.

  3. Haga clic en Registros de aplicación y Nuevo registro.

  4. Introduzca la siguiente información.

    • Nombre: introduzca BaseDB-Server.

    • ¿Quién puede utilizar esta aplicación o acceder a esta API?: seleccione Solo cuentas en este directorio organizativo.

  5. Haga clic en Registrar.

  6. En Aplicación registrada, haga clic en Exponer una API.

  7. Haga clic en Agregar junto a URI de ID de aplicación y Guardar. Deje los demás valores por defecto.

  8. Haga clic en Agregar un ámbito e introduzca la siguiente información.

    • Nombre de ámbito: introduzca session:scope:connect.

    • ¿Quién puede dar su consentimiento?: introduzca Administradores y usuarios.

    • Nombre mostrado de consentimiento de administrador: seleccione Conectar a base de datos.

    • Descripción de consentimiento de administrador: seleccione Conectar a base de datos.

    • Nombre mostrado de consentimiento de usuario: seleccione Conectar a base de datos.

    • Descripción de consentimiento de usuario: seleccione Conectar a base de datos.

    • Estado: seleccione Activado.

    Haga clic en Agregar ámbito. Una vez agregado, asegúrese de copiar el valor de Ámbito.

    Exposición de una API

  9. En Configuración de token, agregue Reclamar como upn con Tipo de token como Acceso.

    Nota: Esto es necesario como parte de la activación del token v2 del ID de Microsoft Entra. Para obtener más información sobre los tokens v2, consulte Enabling Microsoft Entra ID v2 Access Tokens.

    También es posible que deba cambiar el manifiesto de la aplicación en el ID de Microsoft Entra para obtener un token v2.

    Reclamación adicional

  10. En Roles de aplicación, agregue los siguientes roles de aplicación.

    Agregar roles de aplicación

  11. En Visión general, copie URI de ID de aplicación, ID de directorio (inquilino) e ID de aplicación (cliente).

  12. Vaya a Inicio, Aplicaciones empresariales, BaseDB-Servidor y haga clic en Agregar usuario/grupo para asignar usuarios.

  13. En Usuarios, seleccione el usuario. Al generar el token de acceso, este usuario asignado se utilizará para la conexión única.

  14. En Seleccionar un rol, seleccione pdb.users, haga clic en Seleccionar y Asignar.

  15. Repita los pasos 13 y 14 para el mismo usuario y asigne dba.role.

Tarea 2.2: Registro del cliente de base de datos en Microsoft Azure

  1. Registre la aplicación cliente de base de datos con la siguiente información.

    • Nombre: introduzca BaseDB-Client.

    • Tipos de cuenta soportados: seleccione Solo cuentas en este directorio organizativo.

    • Redirigir URI: introduzca Cliente público/nativo: <http://localhost>.

  2. En Gestionar, haga clic en Permisos de API y en Agregar un permiso. Seleccione API que utiliza mi organización, BaseDB-Server, Permisos delegados, Permiso como session:scope:connect y haga clic en Agregar permisos.

  3. En Visión general, copie el URI de ID de aplicación y el ID de directorio (inquilino).

Tarea 2.3: Configuración del servidor de base de datos para Microsoft Azure

Ejecute las siguientes consultas para configurar Microsoft Azure AD como proveedor de identidad y para crear usuarios y roles globales de base de datos.

  1. Compruebe el proveedor de identidad actual en la base de datos PDB.

    SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
    
  2. Defina Microsoft Azure como proveedor de identidad.

    ALTER SYSTEM SET IDENTITY_PROVIDER_TYPE=AZURE_AD SCOPE=BOTH;
    
  3. Validar proveedor de identidad actualizado.

    SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
    
  4. Defina la configuración del proveedor de identidad. Sustituya application_id_uri, tenant_id y app_id por valores copiados en la tarea 2.1.11.

    ALTER SYSTEM SET IDENTITY_PROVIDER_CONFIG =
    '{
       "application_id_uri": "api://b7ae5060-667c-47b7-83f8-71283df2a2f6" ,
       "tenant_id": "ef2b4271-9238-4dcd-8c56-d3e915e37c6f",
       "app_id": "b7ae5060-667c-47b7-83f8-71283df2a2f6"
    }' SCOPE=BOTH;
    
  5. Crear usuarios globales y roles en la base de datos.

    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';
    
  6. Otorgar privilegios a usuarios y roles.

    GRANT CREATE SESSION TO allusers;
    GRANT CREATE SESSION TO hrapp;
    GRANT pdb_dba TO dba_azure;
    

Tarea 2.4: Configuración de la utilidad de ayuda para generar el token de acceso de Microsoft Azure

En esta tarea, utilizaremos una utilidad de Python para generar un token de acceso que se guardaría en un archivo y, posteriormente, SQL*Plus haría referencia a él. Esta utilidad requiere que se ejecute el módulo MSAL.

  1. Guarde la utilidad Python desde aquí: Get-Token.py.

  2. En el siguiente código de Python, sustituya el valor de scope por el valor copiado en la tarea 2.1.8. De forma similar, actualice los valores de client_id y tenant_id con los valores de la tarea 2.2.3.

  3. Ejecute el código Python con el siguiente comando.

    python ./get-token.py
    
  4. Si todo está configurado correctamente, debe disparar un redireccionamiento del explorador al portal de Microsoft Azure para la autenticación del usuario. Tras la autenticación, se generará un archivo de token en el directorio donde se ejecutó el comando de Python, que contiene el token de acceso. El token de acceso y el token de refrescamiento también se imprimirán en la ventana de terminal.

  5. (Opcional), puede validar el token generado navegando aquí: jwt.io y pegando la cadena de token en el campo Codificado. El campo Decoded muestra información sobre la cadena de token.

Tarea 2.5: Conexión mediante SQL*PLUS

  1. Pruebe la conexión del token de Microsoft Azure mediante SQL*PLUS.

    sqlplus /nolog
    
    conn /@(description= (retry_count=20) (retry_delay=3) (address= (protocol=tcps) (port=1522) (host=db23aigrid.sub10121249210.dbsecvcn.oraclevcn.com)) (connect_data=(service_name=DB23GRIDPDB.sub10121249210.dbsecvcn.oraclevcn.com))(security=(SSL_SERVER_DN_MATCH=TRUE)(TOKEN_AUTH=OAUTH)(TOKEN_LOCATION=/home/oracle)))
    
  2. Verifique el usuario conectado.

    Nota: Una vez conectado, puede ejecutar las siguientes consultas para recuperar la información específica de la sesión del usuario.

    • La variable CURRENT_USER devuelve el usuario actual que está activo.
    • ALLUSERS es el usuario de esquema compartido que se asignó mediante los roles de aplicación de Microsoft Entra ID.
    • AUTHENTICATED_IDENTITY representa el usuario autenticado desde el ID de Microsoft Entra.
    • ENTERPRISE_IDENTITY devuelve el GUID del usuario autenticado del ID de Microsoft Entra.
    • SESSION_ROLES devuelve la lista combinada de roles otorgados localmente y otorgados mediante asignaciones globales mediante roles de aplicación de Microsoft Entra ID.
    1. Ejecute la siguiente consulta para verificar el usuario actual.

      SELECT SYS_CONTEXT ('USERENV','CURRENT_USER') FROM DUAL;
      

      Salida:

      SYS_CONTEXT('USERENV','CURRENT_USER')
      
      
      ALLUSERS
      
    2. Ejecute la siguiente consulta para verificar el usuario autenticado.

      SELECT SYS_CONTEXT ('USERENV','AUTHENTICATED_IDENTITY') FROM DUAL;
      

      Salida:

      SYS_CONTEXT('USERENV','AUTHENTICATED_IDENTITY')
      
      
      <anujtrip.ai@gmail.com>
      
    3. Ejecute la siguiente consulta para verificar el GUID del usuario autenticado.

      SELECT SYS_CONTEXT ('USERENV','ENTERPRISE_IDENTITY') FROM DUAL;
      

      Salida:

      SYS_CONTEXT('USERENV','ENTERPRISE_IDENTITY')
      
      
      7eb35b90-dcxxx5-bc0b-48789368e9cf
      
    4. Ejecute la siguiente consulta para verificar los roles de aplicación.

      SELECT * FROM SESSION_ROLES;
      

      Salida:

      ROLE
      
      DBA_AZURE
      
      PDB_DBA
      
      CONNECT
      

Pasos Siguientes

Con la autenticación basada en Microsoft Entra ID implementada correctamente, puede alinear los roles de usuario y las políticas de acceso mediante una gobernanza de identidad centralizada. Al aprovechar las asignaciones globales para usuarios y roles de esquema compartido, puede optimizar el control de acceso y reducir la complejidad administrativa. Además, es esencial supervisar las sesiones de los usuarios y los patrones de acceso para mejorar la seguridad y garantizar el cumplimiento de las políticas de la organización. También debe considerar la posibilidad de ampliar esta integración a otras bases de datos o aplicaciones para mantener una gestión de identidad coherente en toda la empresa.

Agradecimientos

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de formación gratuita en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.

Para obtener documentación sobre el producto, visite Oracle Help Center.