Prueba de la Accesibilidad del Punto Final de Entra ID

Debe asegurarse de que Oracle Database puede acceder al punto final de Entra ID.

Si el cliente de base de datos está configurado para obtener tokens OAuth2 de Microsoft Entra ID, el cliente de base de datos debe poder acceder al punto final de Entra ID. Ejecute el siguiente comando para comprobar si tiene acceso a Internet:
curl https://login.windows.net/common/discovery/keys
Un código de estado de 200 indica que se ha realizado correctamente.

Consulte con el servicio de ayuda de TI la información del proxy si no ha ejecutado correctamente este comando.

Para que una base de datos Oracle acepte tokens OAuth2 de ID de entrada, la base de datos debe solicitar la clave pública desde el punto final de ID de entrada de Microsoft.
  • Ejecute la siguiente prueba para determinar si la base de datos se puede conectar con el punto final de Microsoft Entra ID:
    SET SERVEROUTPUT ON SIZE 40000
    DECLARE
      req UTL_HTTP.REQ;
      resp UTL_HTTP.RESP;
    BEGIN
      UTL_HTTP.SET_WALLET(path => 'system:');
      req := UTL_HTTP.BEGIN_REQUEST('https://login.windows.net/common/discovery/keys');
      resp := UTL_HTTP.GET_RESPONSE(req);
      DBMS_OUTPUT.PUT_LINE('HTTP response status code: ' || resp.status_code);
      UTL_HTTP.END_RESPONSE(resp);
    END;
    /

    Si esta prueba se realiza correctamente, aparece un mensaje PL/SQL procedure successfully completed.

    Si aparecen los siguientes mensajes, significa que una política de lista de control de acceso de red (ACL) de base de datos ha bloqueado la prueba y tendrá que definir temporalmente una política de lista de control de acceso para permitirle probar esto:

    ORA-29273: HTTP request failed
    ORA-24247: network access denied by access control list (ACL)
    1. Defina la ACL de la siguiente manera:
      BEGIN
      DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
        host => '*',
        ace  =>  xs$ace_type(privilege_list => xs$name_list('connect'),
                             principal_name => 'username_placeholder',
                             principal_type => xs_acl.ptype_db));
      END;
      /

      Sustituya username_placeholder por el nombre de usuario del usuario de la base de datos que está ejecutando la prueba. Por ejemplo:

      BEGIN
      DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
        host => '*',
        ace  =>  xs$ace_type(privilege_list => xs$name_list('connect'),
                             principal_name => 'DBA_DEBRA',
                             principal_type => xs_acl.ptype_db));
      END;
      /
    2. Intente ejecutar la prueba de nuevo.
    3. Elimine la ACL, porque ya no la necesita. Por ejemplo, suponiendo que su nombre de usuario es dba_debra:
      BEGIN
      DBMS_NETWORK_ACL_ADMIN.REMOVE_HOST_ACE(
        host => '*',
        ace  =>  xs$ace_type(privilege_list => xs$name_list('connect'),
                             principal_name => 'DBA_DEBRA',
                             principal_type => xs_acl.ptype_db));
      END;
      /
Si la base de datos no se puede conectar con el punto final de Microsoft Entra ID, incluso después de definir la política de ACL, es muy probable que tenga que definir el paquete HTTP_PROXY para la base de datos. Revise los temas que se muestran en Temas relacionados, según si está utilizando un entorno de Oracle Database por defecto o un entorno RAC de Oracle Real Application Clusters. El administrador de red debe poder indicarle cuál debe ser la configuración correcta de HTTP_PROXY.