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 konfigurieren

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 über einen Proxy zugegriffen werden soll, und peterfitch_schema ist der globale Datenbankbenutzer, der 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

Proxyauthentifizierung des IAM-Benutzers 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. Melden Sie sich als IAM-Benutzer an, 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 einen IAM-Benutzer als Proxy für die Datenbank verwendet haben. Je nachdem, wie Sie die Datenbank authentifizieren und darauf zugreifen, erhalten Sie verschiedene 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"