Verbindung zu Autonomous Database mit Identity and Access Management-(IAM-)Authentifizierung herstellen

Nachdem der ADMIN-Benutzer Oracle Cloud Infrastructure IAM in Autonomous Database aktiviert hatte, melden sich Benutzer mit ihren Oracle Cloud Infrastructure IAM-Zugangsdaten an der Autonomous Database-Instanz an oder greifen über ein Oracle Cloud Infrastructure IAM-Datenbanktoken auf der Datenbank zu.

Nachdem Sie den Zugriff auf Oracle Cloud Infrastructure IAM-Benutzer aktiviert haben, können Sie sich auch mit Ihrem Benutzernamen und Kennwort für den lokalen Datenbankaccount (nicht-globaler Datenbankbenutzeraccount) bei Autonomous Database anmelden.

Als Oracle Cloud Infrastructure-IAM-Benutzer können Sie mit einem Datenbankclient auf eine Autonomous Database-Instanz zugreifen. Um einen Client mit Oracle Cloud Infrastructure-IAM-Zugangsdaten und -Kennwort und einer Kennwortverifizierung zu verwenden, muss der Datenbankclient 12c oder höher sein.

Alternativ können Sie ein Oracle Cloud Infrastructure IAM-Datenbanktoken für den Zugriff auf eine Autonomous Database-Instanz verwenden. Für die Verwendung von IAM-Token wird der neueste Oracle Database-Client 19c (mindestens 19.16) benötigt. Einige frühere Clients bieten eine begrenzte Anzahl an Funktionen für den Tokenzugriff.

Die folgenden Beispiele zeigen die Kennwortverifizierung mit SQL*Plus für den Zugriff auf die Datenbank mit einem Oracle Cloud Infrastructure IAM-Benutzernamen und -Kennwort sowie die erforderlichen Schritte zur Verwendung von SQL*Plus mit einem Oracle Cloud Infrastructure-IAM-Datenbanktoken.

Hinweis

Wenn sich Ihre Autonomous Database-Instanz im eingeschränkten Modus befindet, können nur die Benutzer mit der Berechtigung RESTRICTED SESSION wie ADMIN eine Verbindung zur Datenbank herstellen.

Sie können mit einem Oracle Cloud Infrastructure IAM-Datenbanktoken auf eine Autonomous Database-Instanz mit unterstützten Clients zugreifen, darunter:

Verbindung zu eine Autonomous Database-Instanz mit IAM herstellen

IAM-Benutzer können sich entweder über die IAM-Datenbankkennwortverifizierung oder über ein IAM-Token bei der Autonomous Database-Instanz anmelden.

Die Verwendung der IAM-Datenbankkennwortverifizierung ähnelt dem Oracle Database-Kennwortauthentifizierungsprozess. Statt die Kennwortverifizierung (verschlüsselter Hasch des Kennworts) in der Oracle-Datenbank zu speichern, wird die Verifizierung stattdessen als Teil des Oracle Cloud Infrastructure (OCI) IAM-Benutzerprofil gespeichert.

Die zweite Verbindungsmethode, bei der ein IAM-Token für die Datenbank verwendet wird, ist moderner. Ein tokenbasierter Zugriff ist für Cloud-Ressourcen wie Autonomous Database besser geeignet. Das Token basiert auf der Stärke, die der IAM-Endpunkt durchsetzen kann. Dies kann eine Multifaktor-Authentifizierung sein, die stärker ist als die alleinige Verwendung von Kennwörtern. Ein weiterer Vorteil der Verwendung von Token besteht darin, dass die Kennwortverifizierung (die als sensibel gilt) nie gespeichert wird oder im Arbeitsspeicher verfügbar ist. Eine TCPS-(TLS-)Verbindung ist erforderlich, wenn Token für den Datenbankzugriff verwendet werden.

Hinweis

Sie können keine native Netzwerkverschlüsselung konfigurieren, wenn Sie ein IAM-Token übergeben. Nur Transport Layer Security (TLS) selbst wird unterstützt, keine native Netzwerkverschlüsselung oder native Netzwerkverschlüsselung mit TLS.

Clientverbindungen, die eine IAM-Datenbankkennwortverifizierung verwenden

Nachdem Sie die für den IAM-Benutzer erforderliche Autorisierung konfiguriert haben, kann sich dieser Benutzer ohne zusätzliche Konfiguration mit einer vorhandenen Clientanwendung wie SQL*Plus oder SQLcl anmelden.

Der IAM-Benutzer gibt den IAM-Benutzernamen und das IAM-Datenbankkennwort (nicht das Oracle Cloud Infrastructure-(OCI-)Konsolenkennwort) mit einem beliebigen aktuell unterstützten Datenbankclient ein. Der einzige Constraint besteht darin, dass die Datenbankclientversion Oracle Database Release 12.1.0.2 oder höher sein muss, um Oracle Database 12c-Kennwörter verwenden zu können. Der Datenbankclient muss die Kennwortverifizierung 12C verwenden können. Die Verwendung der Verifizierungsverschlüsselung 11G wird mit IAM nicht unterstützt. Es ist keine spezielle Client- oder Toolkonfiguration erforderlich, damit der IAM-Benutzer eine Verbindung zur OCI DBaaS-Instanz herstellen kann.

Clientverbindungen, die ein von einer Clientanwendung oder einem Clienttool angefordertes Token verwenden

Für den Zugriff auf IAM-Tokenzugriff auf die Autonomous Database fordert die Clientanwendung oder das Clienttoool ein DatenbanktToken von IAM für den IAM-Benutzeran.

Die Clientanwendung übergibt das Datenbanktoken über die Datenbankclient-API direkt an den Datenbankclient.

Wenn die Anwendung oder das Tool nicht zur Anforderung eines IAM-Tokens aktualisiert wurde, kann der IAM-Benutzer das Datenbanktoken über die Oracle Cloud Infrastructure-(OCI-)Befehlszeilenschnittstelle (CLI) anfordern und speichern. Sie können ein Datenbankzugriffstoken (db-token) mit den folgenden Zugangsdaten anfordern:

  • Sicherheitstoken (mit IAM-Authentifizierung), Delegationstoken (in der OCI Cloud Shell) und API-keys. Hierbei handelt es sich um Zugangsdaten, die den IAM-Benutzer darstellen, um die Authentifizierung zu aktivieren.
  • Instanz-Principal-Token, mit denen Instanzen zu autorisierten Akteuren (oder Principals) werden, um nach der Authentifizierung Aktionen für Serviceressourcen auszuführen
  • Resource Principal-Token. Hierbei handelt es sich um Zugangsdaten, mit denen sich die Anwendung bei anderen Oracle Cloud Infrastructure-Services authentifizieren kann.
  • IAM-Benutzername und IAM-Datenbankkennwort (kann nur vom Datenbankclient angefordert werden) verwenden.

Wenn sich der IAM-Benutzer mit einer Schrägstrichanmeldung / beim Client anmeldet und der Parameter OCI_IAM konfiguriert ist (sqlnet.ora, tnsnames.ora oder als Teil einer Verbindungszeichenfolge), ruft der Datenbankclient das Datenbanktoken aus einer Datei ab. Wenn der IAM-Benutzer einen Benutzernamen und ein Kennwort übermittelt, verwendet die Verbindung den für Clientverbindungen mit IAM-Datenbankkennwortverifizierung beschriebenen IAM-Datenbankverifizierungszugriff. Die Anweisungen in dieser Dokumentation zeigen, wie Sie die OCI-CLI als Helper für das Datenbanktoken verwenden. Wenn die Anwendung oder das Tool für den Einsatz mit IAM aktualisiert wurde, befolgen Sie die Anweisungen zu der Anwendung oder dem Tool. Zu den allgemeinen Anwendungsfällen gehören SQLPlus On Premise, SQLcl On Premise, SQL*Plus in der Cloud Shell oder Anwendungen, die SEP-Wallets verwenden.

Clientverbindung für SQL*Plus konfigurieren, die ein IAM-Datenbankkennwort verwendet

Sie können SQL*Plus so konfigurieren, dass ein IAM-Datenbankkennwort verwendet wird.

  • Melden Sie sich als IAM-Benutzer mit der folgenden Syntax bei der Autonomous Database-Instanz an:
    CONNECT user_name@db_connect_string
    Enter password: password

    In dieser Spezifikation ist user_name der IAM-Benutzername. Für domain_name/user_name zusammen sind maximal 128 Byte zulässig.

    Das folgende Beispiel zeigt, wie der IAM-Benutzer peter_fitch sich bei einer Autonomous Database-Instanz anmelden kann.

    sqlplus /nolog
    connect peter_fitch@db_connect_string
    Enter password: password

    Bei einigen Sonderzeichen müssen user_name und password in doppelte Anführungszeichen gesetzt werden. Beispiel:

    "peter_fitch@example.com"@db_connect_string
    
    "IAM database password"

Clientverbindung für SQL*Plus konfigurieren, die ein IAM-Token verwendet

Sie können eine Clientverbindung für SQL*Plus konfigurieren, die ein IAM-Token verwendet.

  1. Stellen Sie sicher, dass Sie über einen IAM-Benutzeraccount verfügen.
  2. Fragen Sie bei einem IAM-Administrator und einem Oracle Database-Administrator nach, ob Sie eine Policy haben, mit der Sie auf die Datenbank im Compartment oder in Ihrem Mandanten zugreifen können und die Sie einem globalen Schema in der Datenbank zugeordnet sind.
  3. Wenn Ihre Anwendung oder Ihr Tool keine direkte IAM-Integration unterstützt, sollten Sie die OCI-CLI herunterladen, installieren und konfigurieren. (Siehe OCI-Befehlszeilenschnittstelle - Schnellstart.) Richten Sie im Rahmen der OCI-CLI-Konfiguration einen API-Schlüssel ein, und wählen Sie Standardwerte aus.
    1. Richten Sie den API-Schlüsselzugriff für den IAM-Benutzer ein.
    2. Rufen Sie das db-token ab. Beispiel:
      • db-token mit einem API-key über die Oracle Cloud Infrastructure-(OCI-)Befehlszeilenschnittstelle abrufen:
        oci iam db-token get
      • db-token mit einem Sicherheitstoken (oder Sessiontoken) abrufen:
        oci iam db-token get --auth security_token

        Wenn das Sicherheitstoken abgelaufen ist, wird ein Fenster angezeigt, damit der Benutzer sich erneut bei OCI anmelden kann. Dadurch wird das Sicherheitstoken für den Benutzer generiert. Die OCI-CLI verwendet dieses aktualisierte Token, um db-token abzurufen.

      • db-token mit einem Delegationstoken abrufen: Wenn Sie sich bei der Cloud Shell anmelden, wird das Delegationstoken automatisch generiert und im Verzeichnis /etc platziert. Um dieses Token abzurufen, führen Sie den folgenden Befehl in der cloud shell aus:
        oci iam db-token get
      • Instanztoken über die OCI-Befehlszeilenschnittstelle abrufen:
        oci iam db-token get --auth instance_principal
    3. Der Datenbankclient kann auch so konfiguriert werden, dass ein Datenbanktoken mit dem IAM-Benutzernamen und IAM-Datenbankkennwort abgerufen werden.
    Weitere Informationen finden Sie unter Erforderliche Schlüssel und OCIDs.
  4. Stellen Sie sicher, dass Sie die neuesten Releaseupdates für die Oracle Database-Clientreleases 19c, 21c oder 23ai verwenden.
    Diese Konfiguration funktioniert nur mit dem Oracle Database-Clientrelease 19c, 21c oder 23ai.
  5. Befolgen Sie den vorhandenen Prozess zum Herunterladen des Wallets aus Autonomous Database. Befolgen Sie dann die Anweisungen, wie das Wallet zur Verwendung mit SQL*Plus konfiguriert wird.
    1. Vergewissern Sie sich, dass der DN-Abgleich aktiviert ist, indem Sie in sqlnet.ora nach SSL_SERVER_DN_MATCH=ON suchen.
      Hinweis

      Beim Senden eines Tokens vom Datenbankclient an Autonomous Database ist ein teilweiser oder vollständiger DN-Abgleich erforderlich. Wenn Autonomous Database einen privaten Endpunkt verwendet, müssen Sie einen Hostwert für den Parameter "Connect String" angeben. Die Verwendung einer IP-Adresse für den Hostparameter in der Verbindungszeichenfolge funktioniert nicht mit dem DN-Abgleich, und das IAM-Token wird nicht an die Datenbank gesendet.

      Informationen zur Konfiguration des Hostparameters bei Verwendung eines privaten Endpunkts finden Sie unter Beispiele für die Konfiguration privater Endpunkte in Autonomous Database.

    2. Konfigurieren Sie den Datenbankclient für die Verwendung des IAM-Tokens, indem Sie TOKEN_AUTH=OCI_TOKEN der Datei sqlnet.ora hinzufügen. Da Sie die Standardspeicherorte für die Datenbanktokendatei verwenden, müssen Sie keinen Speicherort für das Token angeben.
    Die Werte TOKEN_AUTH und TOKEN_LOCATION in den tnsnames.ora-Verbindungszeichenfolgen haben Vorrang vor den sqlnet.ora-Einstellungen für diese Verbindung. Beispiel für die Verbindungszeichenfolge, wenn sich das Token am Standardspeicherort (~/.oci/db-token für Linux) befindet:
    (description= 
      (retry_count=20)(retry_delay=3)
      (address=(protocol=tcps)(port=1522)
      (host=example.us-phoenix-1.oraclecloud.com))
      (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
      (security=(ssl_server_dn_match=yes)
      (TOKEN_AUTH=OCI_TOKEN)))
    
Nachdem die Verbindungszeichenfolge mit dem Parameter TOKEN_AUTH aktualisiert worden ist, kann sich der IAM-Benutzer bei der Autonomous Database-Instanz anmelden, indem er den folgenden Befehl ausführt, um SQL*Plus zu starten. Sie können den Verbindungsdeskriptor selbst einschließen oder den Namen des Deskriptors aus der Datei tnsnames.ora verwenden.
connect /@exampledb_high

Oder:

connect /@(description= 
  (retry_count=20)(retry_delay=3)
  (address=(protocol=tcps)(port=1522)
  (host=example.us-phoenix-1.oraclecloud.com))
  (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
  (security=(ssl_server_cert_dn="CN=example.uscom-east-1.oraclecloud.com, 
     O=Example Corporation, 
     L=Redwood City, ST=California, C=US")
  (TOKEN_AUTH=OCI_TOKEN)))

Der Datenbankclient ist bereits für den Abruf von db-token konfiguriert, weil TOKEN_AUTH bereits festgelegt wurde, entweder über die Datei sqlnet.ora oder in einer Verbindungszeichenfolge. Der Datenbankclient ruft den db-token ab und signiert ihn mit dem Private Key und sendet das Token dann an Autonomous Database. Wenn ein IAM-Benutzername und ein IAM-Datenbankkennwort anstelle eines Schrägstrichs / angegeben werden, stellt der Datenbankclient eine Verbindung mit dem Kennwort anstatt mit db-token her.

Instanz-Principal für den Zugriff auf Autonomous Database mit Identity and Access Management-(IAM-)Authentifizierung verwenden

Nachdem der ADMIN-Benutzer Oracle Cloud Infrastructure-IAM auf Autonomous Database aktiviert hat, kann eine Anwendung mit einem Instanz-Principal über ein Oracle Cloud Infrastructure-IAM-Datenbanktoken auf die Datenbank zugreifen.