IAM-Proxyauthentifizierung konfigurieren

Mit der Proxyauthentifizierung kann ein IAM-Benutzer über einen Proxy auf ein Datenbankschema zugreifen, um Aufgaben wie die Anwendungswartung auszuführen.

IAM-Proxyauthentifizierung konfigurieren

IAM-Benutzer können über die Proxyauthentifizierung eine Verbindung zu Oracle DBaaS herstellen.

Die Proxyauthentifizierung wird in der Regel verwendet, um den realen Benutzer zu authentifizieren und ihn dann zu autorisieren, ein Datenbankschema mit den Schemaberechtigungen und Rollen zu verwenden, um eine Anwendung zu verwalten. Alternativen wie das Freigeben des Kennworts für das Anwendungsschema gelten als unsicher. Zudem lässt sich nicht prüfen, welcher tatsächliche Benutzer eine Aktion ausgeführt hat.

Ein Anwendungsfall wäre eine Umgebung, in der sich ein benannter IAM-Benutzer und Anwendungsdatenbankadministrator mit seinen Zugangsdaten authentifizieren und dann über einen Proxy auf einen Datenbankschemabenutzer (z.B. hrapp) zugreifen kann. Mit dieser Authentifizierung kann der IAM-Administrator die hrapp-Berechtigungen und -Rollen als Benutzer hrapp verwenden, um die Anwendungswartung auszuführen, jedoch weiterhin seine IAM-Zugangsdaten zur Authentifizierung verwenden. Ein Anwendungsdatenbankadministrator kann sich bei der Datenbank anmelden und dann über einen Proxy auf ein Anwendungsschema zugreifen, um dieses Schema zu verwalten.

Sie können die Proxyauthentifizierung sowohl für die Kennwort- als auch für die Tokenauthentifizierungsmethode konfigurieren.

Proxyauthentifizierung für den IAM-Benutzer festlegen

Um die Proxyauthentifizierung für einen IAM-Benutzer zu konfigurieren, muss der IAM-Benutzer bereits über eine Zuordnung zu einem globalen Schema (exklusive oder gemeinsame Zuordnung) verfügen. Ein separates Datenbankschema für den IAM-Benutzer muss für die Weiterleitung per Proxy ebenfalls verfügbar sein.

Wenn Sie sichergestellt haben, dass Ihnen diese Art von Benutzer vorliegt, ändern Sie den Datenbankbenutzer so, dass der IAM-Benutzer über einen Proxy darauf zugreifen kann.
  1. Melden Sie sich als Benutzer mit den Systemberechtigungen ALTER USER bei der Autonomous Database-Instanz an.
  2. Erteilen Sie dem IAM-Benutzer die Berechtigung, über den Proxy eine Verbindung zum lokalen Datenbankbenutzeraccount herzustellen.
    Ein IAM-Benutzer kann im Befehl nicht referenziert werden. Daher muss der Proxy zwischen dem globalen Datenbankbenutzer (dem IAM-Benutzer zugeordnet) und dem Zieldatenbankbenutzer erstellt werden.
    Im folgenden Beispiel ist hrapp das Datenbankschema, auf das ein Proxy angewendet werden soll, und peterfitch_schema ist der globale Datenbankbenutzer, dem Benutzer peterfitch exklusiv zugeordnet ist
    ALTER USER hrapp GRANT CONNECT THROUGH peterfitch_schema;
Nun kann sich der IAM-Benutzer mit dem Proxy bei der Datenbankinstanz anmelden. Beispiel: So stellen Sie eine Verbindung mit einer Kennwortverifizierung her:
CONNECT peterfitch[hrapp]@connect_string
Enter password: password

So stellen Sie eine Verbindung über ein Token her:

CONNECT [hrapp]/@connect_string

IAM-Benutzerproxyauthentifizierung validieren

Sie können die Proxykonfiguration des IAM-Benutzers sowohl für Kennwort- als auch für Tokenauthentifizierungsmethoden validieren.

  1. Melden Sie sich als Benutzer mit den Systemberechtigungen CREATE USER und ALTER USER bei der Autonomous Database-Instanz an.
  2. Stellen Sie als IAM-Benutzer eine Verbindung her, und führen sie die Befehle SHOW USER und SELECT SYS_CONTEXT aus.
    Angenommen, Sie möchten die Proxyauthentifizierung des IAM-Benutzers peterfitch prüfen, wenn dieser über einen Proxy auf den Datenbankbenutzer hrapp zugreift. Führen Sie die folgenden Abfragen aus, nachdem Sie mit einem IAM-Benutzer einen Proxy für die Datenbank erstellt haben. Je nachdem, wie Sie sich authentifizieren und auf die Datenbank zugreifen, erhalten Sie unterschiedliche Werte für diese Abfragen.
    • Bei der Kennwortauthentifizierung wird davon ausgegangen, dass sich der IAM-Benutzer in der Standarddomain befindet:
      CONNECT peterfitch[hrapp]/password\!@connect_string
      SHOW USER;
      --The output should be USER is "HRAPP"
      SELECT SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD') FROM DUAL;
      --The output should be "PASSWORD_GLOBAL_PROXY"
      SELECT SYS_CONTEXT('USERENV','PROXY_USER') FROM DUAL;
      --The output should be "PETERFITCH_SCHEMA"
      SELECT SYS_CONTEXT('USERENV','CURRENT_USER') FROM DUAL;
      --The output should be "HRAPP"
    • Für die Tokenauthentifizierung für einen Benutzer, der sich in einer Nicht-Standarddomain befindet, sales_domain:
      CONNECT [hrapp]/@connect_string
      SHOW USER;
      --The output should be USER is "HRAPP"
      SELECT SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD') FROM DUAL;
      --The output should be "TOKEN_GLOBAL_PROXY"
      SELECT SYS_CONTEXT('USERENV','PROXY_USER') FROM DUAL;
      --The output should be "PETERFITCH_SCHEMA"
      SELECT SYS_CONTEXT('USERENV','CURRENT_USER') FROM DUAL;
      --The output should be "HRAPP"