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 Netzwerkauthentifizierungsprotokoll Kerberos 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;
Hinweis

Dieser Wert ist der Wert des Parameters host in der TNS-Verbindungszeichenfolge.
kservice

In Autonomous Database haben Sie zwei Optionen für den Wert kservice:

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

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

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

    SELECT GUID FROM v$pdbs;
  • Benutzerdefinierten Namen verwenden: 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 anderen 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 der Autonomous Database-Instanz aktiviert wurde, zeigen Sie den Kerberos-Servicenamen mit der folgenden Abfrage an:

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 über diese Dateien und die entsprechenden Schritte finden Sie unter Kerberos-Authentifizierung konfigurieren.

Kerberos-Authentifizierung in Autonomous Database aktivieren

Zeigt die Schritte zum Aktivieren der Kerberos-Authentifizierung in Ihrer Autonomous Database-Instanz an.

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 besitzen.

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

Um die Kerberos-Authentifizierung für Autonomous Database zu aktivieren, müssen Sie die Kerberos-Konfigurationsdateien krb.conf und die Serviceschlüsseltabellendatei v5srvtab abrufen. Weitere Informationen über diese Dateien und die erforderlichen Schritte zum Abrufen von Dateien finden Sie unter Kerberos-Authentifizierung konfigurieren.

  1. Kopieren Sie die Kerberos-Konfigurationsdateien krb.conf und v5srvtab in einen Bucket im 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 im Object Storage-Speicherort ablegen, der im Parameter location_uri angegeben ist.

    Beispiel:

    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.

    Die credential_name, die Sie in diesem Schritt verwenden, sind die Zugangsdaten für den Objektspeicher.

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

    Wenn die location_uri eine vorab authentifizierte URL ist, ist die Angabe einer credential_name nicht erforderlich.

    Dadurch wird ein Verzeichnisobjekt mit dem Namen KERBEROS_DIR in der Datenbank erstellt. Mit den Zugangsdaten werden die Kerberos-Konfigurationsdateien aus dem Speicherort des Objektspeichers in das Verzeichnisobjekt heruntergeladen.

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

    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. Nachdem Sie die Kerberos-Authentifizierung aktiviert hat, entfernen Sie 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 Ihre Autonomous Database-Instanz an.

  1. Führen Sie die Prozedur DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION aus, um die Kerberos-Authentifizierung zu deaktivieren. Um die Prozedur ausführen zu können, 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 ein angegebenes externes Authentifizierungsschema) für Oracle Autonomous Database deaktiviert.

    Weitere Informationen finden Sie unter Prozedur DISABLE_EXTERNAL_AUTHENTICATION.

Hinweise zur Kerberos-Authentifizierung in Autonomous Database

Stellt Hinweise zur Verwendung der Kerberos-Authentifizierung für Autonomous Database bereit.

  • 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. Sie können die Funktion "Kennwort zurücksetzen" in der Oracle Cloud Infrastructure-Konsole verwenden, um das Kennwort des ADMIN-Benutzers zurückzusetzen und diesen Zugriff wiederherstellen, wenn eine beschädigte Schlüsseltabellendatei die Authentifizierung eines ADMIN-Benutzers nicht erfolgreich verläuft.

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