Configurare l'autenticazione Kerberos con Autonomous Database

Descrive come configurare Kerberos per l'autenticazione degli utenti di Oracle Autonomous Database.

Informazioni sull'autenticazione Kerberos

È possibile configurare Oracle Autonomous Database in modo che utilizzi il protocollo di autenticazione di rete Kerberos per autenticare gli utenti del database. Kerberos è un protocollo di autenticazione di rete valido. Utilizza la crittografia a chiave segreta per abilitare l'autenticazione complessa fornendo l'autenticazione utente-server.

  • Il supporto di Oracle Autonomous Database per Kerberos offre i vantaggi offerti dall'autenticazione Single Sign-On e centralizzata degli utenti Oracle. Kerberos è un sistema DI autenticazione sicuro di terze parti che si basa su segreti condivisi. Si presume che la terza parte sia sicura e fornisca funzionalità di Single Sign-On, archiviazione centralizzata delle password, autenticazione del database link e sicurezza avanzata del PC. Lo fa tramite un server di autenticazione Kerberos.

  • Il sistema Kerberos ruota attorno al concetto di biglietto. Un ticket è un insieme di informazioni elettroniche che identificano un utente o un servizio. Un ticket identifica l'utente e i privilegi di accesso alla rete.

  • Nell'autenticazione basata su Kerberos, si invia in modo trasparente una richiesta di ticket a un KDC (Key Distribution Center). Il Key Distribution Center ti autentica e ti concede un ticket per accedere al database.

Componenti del sistema di autenticazione Kerberos

Fornisce una panoramica del sistema di autenticazione Kerberos.

  • Un realm stabilisce un dominio amministrativo di autenticazione. Ogni realm dispone del proprio database Kerberos contenente gli utenti e i servizi per il dominio amministrativo specifico.

  • I biglietti sono emessi dal Key Distribution Center (KDC). I client presentano i ticket al database server per dimostrare l'autenticità della loro identità. Ogni biglietto ha scadenza e un tempo di rinnovo.

  • Keytabs memorizza le chiavi a lungo termine per uno o più principal. Un file keytab viene generato richiamando lo strumento kadmin.local (per il centro di distribuzione delle chiavi MIT) o ktpass (per il centro di distribuzione delle chiavi Active Directory).

  • Le voci principali sono le voci nel database di Key Distribution Center. A ciascun utente, host o servizio viene assegnato un principal. Un principal è un'identità univoca a cui il Key Distribution Center può assegnare i ticket.

  • Il supporto Kerberos in Autonomous Database utilizza questi valori per vari componenti che compongono il nome del principal di un servizio:

Componente del principal servizio Valore in Autonomous Database
kinstance

È possibile ottenere questo valore dall'attributo PUBLIC_DOMAIN_NAME nella colonna CLOUD_IDENTITY di V$PDBS. Questo valore è diverso dal nome dominio completamente qualificato (FQDN) per un database su un endpoint privato.

Utilizzare la seguente query per ottenere kinstance:

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

Questo sarà il valore del parametro host trovato nella stringa di connessione TNS.
kservice

In Autonomous Database sono disponibili due opzioni per il valore kservice:

  • Utilizzare il GUID del database: se non si fornisce un nome di servizio Kerberos con DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION, il nome di servizio predefinito utilizzato è il GUID dell'istanza di Autonomous Database. In questo caso, quando si crea il file keytab, utilizzare il GUID come valore per il nome del servizio.

    Poiché nel caso predefinito il file Keytab utilizza un nome di servizio che è un GUID, che è specifico dell'istanza, quando si utilizza il nome di servizio predefinito è necessario generare file keytab diversi per ogni istanza di Autonomous Database.

    Utilizzare il comando seguente per ottenere GUID (il caso è significativo):

    SELECT GUID FROM v$pdbs;
  • Utilizzare un nome personalizzato: impostare il nome del servizio quando si desidera utilizzare gli stessi file Keytab su più istanze di Autonomous Database. Quando si utilizza un nome personalizzato, non è necessario creare e caricare file keytab diversi per ogni istanza di Autonomous Database. Quando si utilizza un nome personalizzato, è necessario specificare il parametro params kerberos_service_name con DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION. La specifica di questo parametro non è obbligatoria quando si utilizza il GUID per il nome del servizio.

Dopo che Kerberos è stato abilitato nell'istanza di Autonomous Database, utilizzare la query seguente per visualizzare il nome del servizio Kerberos:

SELECT SYS_CONTEXT('USERENV', 'KERBEROS_SERVICE_NAME') FROM DUAL;
REALM Qualsiasi realm supportato dal KDC. REALM deve essere sempre in maiuscolo.

Per abilitare l'autenticazione Kerberos per l'istanza di Autonomous Database, è necessario mantenere pronti i file di configurazione Kerberos (krb.conf) e il file della tabella delle chiavi di servizio (v5srvtab). Per ulteriori informazioni su questi file e sulla procedura per ottenerli, vedere Configurazione dell'autenticazione Kerberos.

Abilita autenticazione Kerberos su Autonomous Database

Mostra i passi per abilitare l'autenticazione Kerberos nell'istanza di Autonomous Database.

Per eseguire DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION è necessario aver eseguito il login come utente ADMIN o disporre del privilegio EXECUTE su DBMS_CLOUD_ADMIN.

Per utilizzare DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION per abilitare l'autenticazione Kerberos:

Per abilitare l'autenticazione Kerberos per l'istanza di Autonomous Database, è necessario ottenere i file di configurazione Kerberos: krb.conf e il file della tabella delle chiavi di servizio v5srvtab. Per ulteriori informazioni su questi file e sulla procedura necessaria per ottenerli, vedere Configuring Kerberos Authentication.

  1. Copiare i file di configurazione Kerberos krb.conf e v5srvtab in un bucket nell'area di memorizzazione degli oggetti.

    Se si utilizza l'area di memorizzazione degli oggetti di Oracle Cloud Infrastructure, vedere Inserimento dei dati nello storage degli oggetti per i dettagli sul caricamento dei file.

  2. Eseguire la procedura DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION e passare in un URI di posizione con l'argomento JSON params. È necessario posizionare i file di configurazione krb.conf e v5srvtab nella posizione di storage degli oggetti specificata nel parametro location_uri.

    Ad esempio:

    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;
    /
    Nota

    Oracle consiglia di memorizzare i file di configurazione Kerberos in un bucket privato nell'area di memorizzazione degli oggetti.

    In questo esempio, namespace-string è lo spazio di nomi dello storage degli oggetti Oracle Cloud Infrastructure e bucketname è il nome del bucket. Per ulteriori informazioni, vedere Informazioni sugli spazi di nomi dello storage degli oggetti.

    Il valore credential_name utilizzato in questo passo è costituito dalle credenziali per l'area di memorizzazione degli oggetti.

    La creazione di una credenziale per accedere all'area di memorizzazione degli oggetti di Oracle Cloud Infrastructure non è necessaria se si abilitano le credenziali del principal risorsa. Per ulteriori informazioni, consulta la sezione Usa principal risorsa per accedere alle risorse di Oracle Cloud Infrastructure.

    Se location_uri è un URL preautenticato, non è necessario fornire un valore credential_name.

    In questo modo viene creato un oggetto directory denominato KERBEROS_DIR nel database e vengono utilizzate le credenziali per scaricare i file di configurazione Kerberos dalla posizione dell'area di memorizzazione degli oggetti all'oggetto directory.

    È possibile specificare il parametro params kerberos_service_name per specificare un nome di servizio Kerberos. Ad esempio:

    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. Dopo aver abilitato l'autenticazione Kerberos, rimuovere la configurazione krb.conf e v5srvtab dall'area di memorizzazione degli oggetti. È possibile utilizzare i metodi dell'area di memorizzazione degli oggetti locale per rimuovere questi file o utilizzare DBMS_CLOUD.DELETE_OBJECT per eliminare i file dall'area di memorizzazione degli oggetti.

Per ulteriori informazioni sullo storage degli oggetti, consulta la sezione Passare a Oracle Cloud Infrastructure Object Storage and Create Bucket.

Per ulteriori informazioni, vedere ENABLE_EXTERNAL_AUTHENTICATION Procedure.

Disabilitare l'autenticazione Kerberos in Autonomous Database

Mostra i passi per disabilitare l'autenticazione Kerberos per l'istanza di Autonomous Database.

  1. Eseguire la procedura DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION per disabilitare l'autenticazione Kerberos. Per eseguire la procedura, è necessario aver eseguito il login come utente ADMIN o disporre del privilegio EXECUTE su DBMS_CLOUD_ADMIN.
    BEGIN   
       DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
    END;
    /

    In questo modo l'autenticazione Kerberos (o qualsiasi schema di autenticazione esterna specificato) viene disabilitata per Oracle Autonomous Database.

    Per ulteriori informazioni, vedere DISABLE_EXTERNAL_AUTHENTICATION Procedure.

Note per l'autenticazione Kerberos su Autonomous Database

Fornisce note sull'uso dell'autenticazione Kerberos per Autonomous Database.

  • Se si abilita l'autenticazione Kerberos per Autonomous Database, è comunque possibile utilizzare l'autenticazione del database basata su password per il database.

  • L'autenticazione Kerberos non è supportata per questi strumenti:
    • API database Oracle per MongoDB

    • Oracle REST Data Services

    • Oracle Machine Learning

    • APEX

    • Oracle Graph Studio

    • Azioni di Oracle Database

  • È possibile abilitare l'autenticazione Kerberos per autenticare l'utente ADMIN. È possibile utilizzare la funzionalità Reimposta password nella console di Oracle Cloud Infrastructure per reimpostare la password dell'utente ADMIN e riottenere l'accesso se un file keytab danneggiato causa il fallimento dell'autenticazione dell'utente ADMIN.

  • Il valore predefinito per il skew dell'orologio massimo in Autonomous Database è 300 secondi (5 minuti). Non è possibile modificare il valore predefinito clock skew.