Kerberos-Authentifizierung mit Autonomous Database konfigurieren

Beschreibt, wie Kerberos zur Authentifizierung von Oracle Autonomous Database-Benutzern konfiguriert wird.

Kerberos-Authentifizierung

Sie können Oracle Autonomous Database so konfigurieren, dass das Kerberos-Netzwerkauthentifizierungsprotokoll zur Authentifizierung von Datenbankbenutzern verwendet wird. Kerberos ist ein sicheres Netzwerkauthentifizierungsprotokoll. Es verwendet die Secret-Key-Kryptografie, um eine sichere Authentifizierung durch Bereitstellung einer Benutzer-zu-Server-Authentifizierung zu ermöglichen.

  • Die Oracle Autonomous Database-Unterstützung für Kerberos bietet die Vorteile von Single Sign-On und zentralisierter Authentifizierung von Oracle-Benutzern. Kerberos ist ein vertrauenswürdiges Drittanbieter-Authentifizierungssystem, das auf Shared Secrets basiert. Es wird davon ausgegangen, dass der Drittanbieter sicher ist. Das System bietet Single Sign-On-Funktionen, zentralisierten Kennwortspeicher, Datenbanklinkauthentifizierung und erweiterte PC-Sicherheit. Dies geschieht über einen Kerberos-Authentifizierungsserver.

  • Das Kerberos-System arbeitet mit Tickets. Ein Ticket ist eine Gruppe elektronischer Informationen, die einen Benutzer oder einen Service identifizieren. Mit einem Ticket werden Sie und Ihre Netzwerkzugriffsberechtigungen identifiziert.

  • Bei der Kerberos-basierten Authentifizierung senden Sie eine Anforderung eines Tickets transparent an ein Key Distribution Center (KDC). Das Key Distribution Center authentifiziert Sie und gewährt Ihnen ein Ticket für den Zugriff auf die Datenbank.

Komponenten des Kerberos-Authentifizierungssystems

Bietet einen Überblick über das Kerberos-Authentifizierungssystem.

  • Eine Realm stellt eine administrative Authentifizierungsdomain her. Jede Realm verfügt über eine eigene Kerberos-Datenbank, in der die Benutzer und Services für die betreffende administrative Domain enthalten sind.

  • Tickets werden vom Key Distribution Center (KDC) ausgestellt. Clients legen dem Datenbankserver Tickets vor, um die Authentizität ihrer Identität zu demonstrieren. Jedes Ticket hat ein Ablaufdatum und eine Verlängerungszeit.

  • In Keytabs sind langfristige Schlüssel für einen oder mehrere Principals gespeichert. Eine Keytab wird durch Aufrufen des Tools kadmin.local (für MIT-Schlüsselverteilungscenter) oder ktpass (für Active Directory-Schlüsselverteilungscenter) generiert.

  • Principals sind die Einträge in der Datenbank des Schlüsselverteilungscenters. Jeder Benutzer, jeder Host oder jeder Service erhält einen Principal. Ein Principal ist eine eindeutige Identität, der das Schlüsselverteilungscenter Tickets zuweisen kann.

  • Die Kerberos-Unterstützung in Autonomous Database verwendet die folgenden Werte für verschiedene Komponenten, aus denen der Name eines Service-Principals besteht:

Komponente des Service Principals Wert in Autonomous Database
kinstance

Sie können diesen Wert aus dem Attribut PUBLIC_DOMAIN_NAME in der Spalte CLOUD_IDENTITY von V$PDBS abrufen. Dieser Wert unterscheidet sich vom vollqualifizierten Domainnamen (FQDN) für eine Datenbank auf einem privaten Endpunkt.

Verwenden Sie die folgende Abfrage, um die kinstance abzurufen:

SELECT json_value(cloud_identity, '$.PUBLIC_DOMAIN_NAME') "KINSTANCE" FROM v$pdbs;
kservice

In Autonomous Database stehen Ihnen zwei Optionen für den Wert kservice zur Verfügung:

  • Datenbank-GUID verwenden: Wenn Sie keinen Kerberos-Servicenamen mit DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION angeben, wird als Standardservicename die GUID der Autonomous Database-Instanz verwendet. Wenn Sie in diesem Fall die Keytab-Datei erstellen, verwenden Sie die GUID als Wert für den Servicenamen.

    Da die Keytab-Datei im Standardfall einen instanzspezifischen Servicenamen verwendet, der eine GUID ist, müssen Sie bei Verwendung des Standardservicenamens unterschiedliche Keytab-Dateien für jede Autonomous Database-Instanz generieren.

    Verwenden Sie den folgenden Befehl, um die Datei GUID abzurufen (Groß-/Kleinschreibung ist wichtig):

    SELECT GUID FROM v$pdbs;
  • Verwenden Sie einen benutzerdefinierten Namen: Legen Sie den Servicenamen fest, wenn Sie dieselben Keytab-Dateien auf mehreren Autonomous Database-Instanzen verwenden möchten. Wenn Sie einen benutzerdefinierten Namen verwenden, müssen Sie keine unterschiedlichen Keytab-Dateien für jede Autonomous Database-Instanz erstellen und hochladen. Wenn Sie einen benutzerdefinierten Namen verwenden, müssen Sie den Parameter params kerberos_service_name mit DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION angeben. Die Angabe dieses Parameters ist nicht erforderlich, wenn Sie die GUID für den Servicenamen verwenden.

Nachdem Kerberos in Ihrer Autonomous Database-Instanz aktiviert wurde, verwenden Sie die folgende Abfrage, um den Kerberos-Servicenamen anzuzeigen:

SELECT SYS_CONTEXT('USERENV', 'KERBEROS_SERVICE_NAME') FROM DUAL;
REALM Jede Realm, die von Ihrem Schlüsselverteilungscenter unterstützt wird. REALM muss immer in Großbuchstaben geschrieben werden.

Um die Kerberos-Authentifizierung für Autonomous Database zu aktivieren, müssen Sie die Kerberos-Konfigurationsdateien (krb.conf) und die Serviceschlüsseltabellendatei (v5srvtab) bereithalten. Weitere Informationen zu diesen Dateien und den entsprechenden Schritten finden Sie unter Kerberos-Authentifizierung konfigurieren.

Kerberos-Authentifizierung in Autonomous Database aktivieren

Zeigt die Schritte zum Aktivieren der Kerberos-Authentifizierung auf der Autonomous Database-Instanz.

Um DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION auszuführen, müssen Sie als ADMIN-Benutzer angemeldet sein oder die Berechtigung EXECUTE für DBMS_CLOUD_ADMIN haben.

So aktivieren Sie die Kerberos-Authentifizierung mit DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION:

Um die Kerberos-Authentifizierung für Autonomous Database zu aktivieren, benötigen Sie die Kerberos-Konfigurationsdateien: krb.conf und die Serviceschlüsseltabellendatei v5srvtab. Weitere Informationen zu diesen Dateien und den Schritten, die zum Abrufen dieser Dateien erforderlich sind, finden Sie unter Kerberos-Authentifizierung konfigurieren.

  1. Kopieren Sie die Kerberos-Konfigurationsdateien krb.conf und v5srvtab in einen Bucket in Ihrem Objektspeicher.

    Wenn Sie Oracle Cloud Infrastructure Object Storage verwenden, finden Sie unter Daten in Object Storage ablegen Details zum Hochladen von Dateien.

  2. Führen Sie die Prozedur DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION aus, und übergeben Sie eine Standort-URI mit dem JSON- Argument params. Sie müssen die Konfigurationsdateien krb.conf und v5srvtab in dem im Parameter location_uri angegebenen Speicherort im Objektspeicher ablegen.

    Beispiele:

    BEGIN
       DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
           type     => 'KERBEROS',
           params   => JSON_OBJECT(
                   'location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
                   'credential_name' value 'my_credential_name'));
    END;
    /
    Hinweis

    Oracle empfiehlt, die Kerberos-Konfigurationsdateien in einem privaten Bucket im Objektspeicher zu speichern.

    In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

    Als credential_name verwenden Sie in diesem Schritt die Zugangsdaten für den Objektspeicher.

    Das Erstellen von Zugangsdaten für den Zugriff auf Oracle Cloud Infrastructure Object Storage ist nicht erforderlich, wenn Sie Ressourcen-Principal-Zugangsdaten aktivieren. Weitere Informationen finden Sie unter Resource Principal für den Zugriff auf Oracle Cloud Infrastructure-Ressourcen verwenden.

    Wenn location_uri eine vorauthentifizierte URL ist, ist die Angabe von credential_name nicht erforderlich.

    Dadurch wird ein Verzeichnisobjekt mit dem Namen KERBEROS_DIR in der Datenbank erstellt, und die Zugangsdaten werden zum Herunterladen der Kerberos-Konfigurationsdateien aus dem Speicherort im Objektspeicher in das Verzeichnisobjekt verwendet.

    Sie können den Parameter params kerberos_service_name angeben, um einen Kerberos-Servicenamen anzugeben. Beispiele:

    BEGIN
       DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
           type     => 'KERBEROS',
           params   => JSON_OBJECT(
                   'location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
                   'credential_name' value 'my_credential_name'
                   'kerberos_service_name' value 'oracle' ));
    END;
    /
  3. Entfernen Sie nach der Kerberos-Authentifizierung die Konfigurationsdateien krb.conf und v5srvtab aus dem Objektspeicher. Sie können diese Dateien mit lokalen Objektspeichermethoden entfernen oder mit DBMS_CLOUD.DELETE_OBJECT aus dem Objektspeicher löschen.

Weitere Informationen zu Object Storage finden Sie unter Zu Oracle Cloud Infrastructure Object Storage navigieren und Bucket erstellen.

Weitere Informationen finden Sie unter Prozedur ENABLE_EXTERNAL_AUTHENTICATION.

Kerberos-Authentifizierung in Autonomous Database deaktivieren

Zeigt die Schritte zum Deaktivieren der Kerberos-Authentifizierung für eine Autonomous Database-Instanz.

  1. Führen Sie die Prozedur DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION aus, um die Kerberos-Authentifizierung zu deaktivieren. Um die Prozedur auszuführen, müssen Sie als ADMIN-Benutzer angemeldet sein oder die Berechtigung EXECUTE für DBMS_CLOUD_ADMIN besitzen.
    BEGIN   
       DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
    END;
    /

    Dadurch wird die Kerberos-Authentifizierung (oder das angegebene externe Authentifizierungsschema) für Oracle Autonomous Database deaktiviert.

    Weitere Informationen finden Sie unter Prozedur DISABLE_EXTERNAL_AUTHENTICATION.

Hinweise zur Kerberos-Authentifizierung in Autonomous Database

Enthält Hinweise zur Verwendung der Kerberos-Authentifizierung für Autonomous Database.

  • Wenn Sie die Kerberos-Authentifizierung für Autonomous Database aktivieren, können Sie weiterhin die kennwortbasierte Datenbankauthentifizierung für Ihre Datenbank verwenden.

  • Die Kerberos-Authentifizierung wird für folgende Tools nicht unterstützt:
    • Oracle Database API für MongoDB

    • Oracle REST Data Services

    • Oracle Machine Learning

    • APEX

    • Oracle Graph Studio

    • Oracle Database-Aktionen

  • Sie können die Kerberos-Authentifizierung aktivieren, um den ADMIN-Benutzer zu authentifizieren. Mit der Funktion "Kennwort zurücksetzen" können Sie in der Oracle Cloud Infrastructure-Konsole das Kennwort des ADMIN-Benutzers zurücksetzen und Zugriff wiederherstellen, wenn die Authentifizierung des ADMIN-Benutzers aufgrund einer beschädigten Keytab nicht erfolgreich verläuft.

  • Der Standardwert für die maximale Clock Skew in Autonomous Database ist 300 Sekunden (5 Minuten). Sie können den Standardwert für Clock Skew nicht ändern.