Autenticazione Kerberos con Babelfish - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Autenticazione Kerberos con Babelfish

La versione Babelfish per Aurora PostgreSQL 15.2 supporta l'autenticazione al cluster di database tramite Kerberos. Questo metodo ti consente di usare l'autenticazione di Microsoft Windows per gli utenti che si connettono al database Babelfish, ma per utilizzarlo devi prima configurare il cluster di database in modo da impiegare AWS Directory Service for Microsoft Active Directory per l'autenticazione Kerberos. Per ulteriori informazioni, consulta Cos'è Directory Service? nella Guida per l'amministrazione di AWS Directory Service.

Configurazione dell'autenticazione Kerberos

Il cluster di database Babelfish per Aurora PostgreSQL può connettersi utilizzando due porte diverse, ma la configurazione dell'autenticazione Kerberos è un processo unico. Pertanto, per prima cosa è necessario configurare l'autenticazione Kerberos per il cluster database. Per ulteriori informazioni, consulta Configurazione dell'autenticazione Kerberos. Dopo aver completato la configurazione, verifica di poterti connettere a un client PostgreSQL usando Kerberos. Per ulteriori informazioni, consulta Connessione con Autenticazione Kerberos.

Accesso e allocazione degli utenti in Babelfish

Gli accessi Windows creati dalla porta TDS (Tabular Data Stream) possono essere utilizzati con la porta TDS o con la porta PostgreSQL. Innanzitutto, l'accesso che può utilizzare Kerberos per l'autenticazione deve essere sottoposto a provisioning dalla porta TDS prima che questa venga usata dagli utenti e dalle applicazioni T-SQL per connettersi a un database Babelfish. Quando si creano gli accessi Windows, gli amministratori possono fornire l'accesso utilizzando il nome di dominio DNS o il nome di dominio NetBIOS. In genere, il dominio NetBIOS è il sottodominio del nome di dominio DNS. Ad esempio, se il nome di dominio DNS è CORP.EXAMPLE.COM, il dominio NetBIOS può essere CORP. Se per l'accesso viene usato il formato del nome di dominio NetBIOS, è necessario impostare una mappatura al nome di dominio DNS.

Gestione della mappatura del nome di dominio NetBIOS al nome di dominio DNS

Per gestire le mappature tra il nome di dominio NetBIOS e il nome di dominio DNS, Babelfish include le stored procedure di sistema per aggiungere, rimuovere e troncare le mappature. Solo un utente con il ruolo sysadmin può eseguire queste procedure.

Per creare una mappatura tra i nomi di dominio NetBIOS e DNS, usare la stored procedure di sistema babelfish_add_domain_mapping_entry fornita da Babelfish. Entrambi gli argomenti devono avere un valore valido e non essere NULL.

EXEC babelfish_add_domain_mapping_entry 'netbios_domain_name', 'fully_qualified_domain_name'

L'esempio seguente mostra come creare la mappatura tra il nome NetBIOS CORP e il nome di dominio DNS CORP.EXAMPLE.COM.

EXEC babelfish_add_domain_mapping_entry 'corp', 'corp.example.com'

Per eliminare una voce di mappatura esistente, usaRE la stored procedure di sistema babelfish_remove_domain_mapping_entry:

EXEC babelfish_remove_domain_mapping_entry 'netbios_domain_name'

L'esempio seguente mostra come rimuovere la mappatura per il nome NetBIOS CORP.

EXEC babelfish_remove_domain_mapping_entry 'corp'

Per rimuovere tutte le voci di mappatura esistenti, usa la stored procedure di sistema babelfish_truncate_domain_mapping_table:

EXEC babelfish_truncate_domain_mapping_table

Per visualizzare tutte le mappature tra i nomi di dominio NetBIOS e DNS, utilizzare la seguente query.

SELECT netbios_domain_name, fq_domain_name FROM babelfish_domain_mapping;

Gestione degli accessi

Creazione degli accessi

Esegui la connessione al database tramite l'endpoint TDS utilizzando un accesso con le autorizzazioni corrette. Se non è stato creato un utente del database, l'accesso viene mappato all'utente guest. Se l'utente guest non è abilitato, il tentativo di accesso ha esito negativo.

Crea un accesso Windows utilizzando la seguente query. L'opzione FROM WINDOWS consente l'autenticazione tramite Active Directory.

CREATE LOGIN login_name FROM WINDOWS [WITH DEFAULT_DATABASE=database]

L'esempio seguente mostra come creare un accesso per l'utente di Active Directory [corp\test1] con il database predefinito db1.

CREATE LOGIN [corp\test1] FROM WINDOWS WITH DEFAULT_DATABASE=db1

Questo esempio presuppone che esista una mappatura tra il dominio NetBIOS CORP e il nome di dominio DNS CORP.EXAMPLE.COM. Se non è presente una mappatura, è necessario fornire il nome di dominio DNS [CORP.EXAMPLE.COM\test1].

Nota

Gli accessi basati sugli utenti di Active Directory sono limitati a nomi contenenti meno di 21 caratteri.

Eliminazione di un accesso

Per eliminare un accesso, usa la stessa sintassi utilizzata per qualsiasi accesso, come mostrato nell'esempio seguente:

DROP LOGIN [DNS domain name\login]
Modifica di un accesso

Per modificare un accesso, usa la stessa sintassi utilizzata per qualsiasi accesso, come mostrato nell'esempio seguente:

ALTER LOGIN [DNS domain name\login] { ENABLE|DISABLE|WITH DEFAULT_DATABASE=[master] }

Il comando ALTER LOGIN supporta un numero limitato di opzioni per gli accessi Windows, tra cui le seguenti:

  • DISABLE: per disabilitare un accesso. Non puoi usare un accesso disabilitato per l'autenticazione.

  • ENABLE: per abilitare un accesso disabilitato.

  • DEFAULT_DATABASE: per modificare il database predefinito di un accesso.

Nota

La gestione delle password viene completamente eseguita tramite Directory Service, quindi il comando ALTER LOGIN non consente agli amministratori del database di modificare o impostare le password per gli accessi Windows.

Connessione a Babelfish per Aurora PostgreSQL con l'autenticazione Kerberos

In genere, gli utenti del database eseguono l'autenticazione tramite Kerberos usando computer client che sono membri del dominio Active Directory. Utilizzano l'autenticazione di Windows dalle loro applicazioni client per accedere al server Babelfish per Aurora PostgreSQL sulla porta TDS.

Connessione a Babelfish per Aurora PostgreSQL sulla porta PostgreSQL con l'autenticazione Kerberos

Puoi utilizzare gli accessi creati dalla porta TDS con la porta TDS o la porta PostgreSQL. Tuttavia, PostgreSQL utilizza per impostazione predefinita il confronto con distinzione tra maiuscole e minuscole per i nomi utente. Affinché Aurora PostgreSQL interpreti i nomi utente Kerberos senza distinzione tra maiuscole e minuscole, è necessario impostare il parametro krb_caseins_users su true nel gruppo di parametri del cluster Babelfish personalizzato. Questo parametro è impostato su false per impostazione predefinita. Per ulteriori informazioni, consulta Configurazione per nomi utente senza distinzione tra maiuscole e minuscole. Inoltre, è necessario specificare il nome utente di accesso nel formato <accesso@nome dominio DNS> dalle applicazioni client PostgreSQL. Non è possibile usare il formato <nome dominio DNS\accesso>.

Errori frequenti

Puoi configurare una relazione di trust tra foreste tra Microsoft Active Directory on-premise e AWS Managed Microsoft AD. Per maggiori informazioni, consulta Creazione di una relazione di trust. Quindi, dovrai connetterti utilizzando un endpoint specifico del dominio specializzato anziché utilizzare il dominio Amazon rds.amazonaws.com nell'endpoint host. Se non utilizzi l'endpoint specifico del dominio corretto, potresti riscontrare il seguente errore:

Error: “Authentication method "NTLMSSP" not supported (Microsoft SQL Server, Error: 514)"

Questo errore si verifica quando il client TDS non riesce a memorizzare nella cache il ticket di servizio per l'URL dell'endpoint fornito. Per ulteriori informazioni, consulta Connessione con Kerberos.