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 de Microsoft Entra ID OAuth2, 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 Entra ID, la base de datos debe solicitar la clave pública del punto final de Microsoft Entra ID.
  • 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 bloqueó 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 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. Vuelva a ejecutar la prueba.
    3. Elimine la ACL porque ya no la necesita. Por ejemplo, suponiendo que el 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 ID de Microsoft Entra, incluso después de definir la política de ACL, lo más probable es que necesite definir el paquete HTTP_PROXY para la base de datos. Revise los temas que se muestran en Temas relacionados, en función de si utiliza 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.