Barrierefreiheit des Entra-ID-Endpunkts testen
Sie müssen sicherstellen, dass Ihre Oracle AI Database auf den Entra-ID-Endpunkt zugreifen kann.
Wenn der Datenbankclient so konfiguriert ist, dass Microsoft Entra ID-OAuth2-Token abgerufen werden, muss der Datenbankclient auf den Entra ID-Endpunkt zugreifen können. Führen Sie den folgenden Befehl durch, um zu prüfen, ob Sie über Internetzugriff verfügen:
curl https://login.windows.net/common/discovery/keysDer Statuscode 200 gibt den Erfolg an.
Fragen Sie den IT-Helpdesk nach den Proxyinformationen, wenn Sie diesen Befehl nicht erfolgreich ausgeführt haben.
Damit eine Oracle AI Database Entra-ID-OAuth2-Token akzeptiert, muss die Datenbank den Public Key vom Microsoft Entra-ID-Endpunkt anfordern.
-
Führen Sie den folgenden Test aus, um zu bestimmen, ob die Datenbank eine Verbindung zum Microsoft Entra ID-Endpunkt herstellen kann:
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; /Wenn dieser Test erfolgreich ist, wird eine
PL/SQL procedure successfully completed-Meldung angezeigt.Wenn die folgenden Meldungen angezeigt werden, bedeutet dies, dass eine ACL-(Database Network Access Control List-)Policy den Test blockiert hat und Sie vorübergehend eine Access Control-Listen-Policy festlegen müssen, damit Sie dies testen können:
ORA-29273: HTTP request failed ORA-24247: network access denied by access control list (ACL)-
Legen Sie die ACL wie folgt fest:
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; /Ersetzen Sie
username_placeholderdurch den Benutzernamen des Datenbankbenutzers, der den Test ausführt. Beispiel: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; / -
Versuchen Sie, den Test erneut auszuführen.
-
Entfernen Sie die ACL, da Sie sie jetzt nicht mehr benötigen. Beispiel: Angenommen, Ihr Benutzername lautet
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; /
-
Wenn die Datenbank keine Verbindung zum Microsoft Entra ID-Endpunkt herstellen kann, müssen Sie das Package HTTP_PROXY für die Datenbank wahrscheinlich festlegen, auch nachdem Sie die ACL-Policy festgelegt haben. Prüfen Sie die unter "Zugehörige Themen" aufgeführten Themen, je nachdem, ob Sie eine Oracle AI Database-Standardumgebung oder eine Oracle Real Application Clusters-RAC-Umgebung verwenden. Ihr Netzwerkadministrator sollte Ihnen mitteilen können, welche HTTP_PROXY-Einstellung korrekt sein soll.