

# Configurar a autenticação do Kerberos usando grupos de segurança do Active Directory para Babelfish
<a name="babelfish-kerberos-securityad"></a>

A partir da versão 4.2.0 do Babelfish, é possível configurar a autenticação do Kerberos para o Babelfish com grupos de segurança do Active Directory. Veja a seguir os pré-requisitos a serem atendidos para configurar a autenticação do Kerberos usando o Active Directory: 
+  É necessário seguir todas as etapas mencionadas em [Autenticação do Kerberos com o Babelfish](babelfish-active-directory.md). 
+ A instância de banco de dados deve estar associada ao Active Directory. Para verificar isso, é possível visualizar o status da associação ao domínio no console ou executando o comando [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) da AWS CLI.

  O status da instância de banco de dados deve ser habilitado para Kerberos. Para saber mais sobre a associação ao domínio, consulte [Compreensão da associação de domínio](postgresql-kerberos-managing.md#postgresql-kerberos-managing.understanding).
+ Verifique os mapeamentos entre o nome de domínio NetBIOS e o nome de domínio DNS usando a seguinte consulta:

  ```
  SELECT netbios_domain_name, fq_domain_name FROM babelfish_domain_mapping;
  ```
+ Antes de continuar, verifique se a autenticação do Kerberos usando o login individual funciona conforme o esperado. A conexão usando a autenticação do Kerberos como usuário do Active Directory deve ser bem-sucedida. Se você enfrentar algum problema, consulte [Erros que ocorrem com frequência](babelfish-active-directory.md#babelfish-active-directory-errors).

## Configurar a extensão pg\_ad\_mapping
<a name="babelfish-kerberos-securityad-setpgextn"></a>

 É necessário seguir todas as etapas mencionadas em [Configurar a extensão pg\_ad\_mapping](AD.Security.Groups.md#AD.Security.Groups.Setup). Para verificar se a extensão está instalada, execute a seguinte consulta no endpoint do TDS: 

```
1> SELECT extname, extversion FROM pg_extension where extname like 'pg_ad_mapping';
2> GO
extname       extversion
------------- ----------
pg_ad_mapping 0.1

(1 rows affected)
```

## Gerenciar logins de grupo
<a name="babelfish-kerberos-securityad-managing"></a>

 Crie logins de grupo seguindo as etapas mencionadas em [Gerenciar logins](babelfish-active-directory.md#babelfish-active-directory-login-managing). Recomendamos que o nome de login seja igual ao nome do grupo de segurança do Active Directory (AD) para facilitar a manutenção, embora não seja obrigatório. Por exemplo: 

```
CREATE LOGIN [corp\accounts-group] FROM WINDOWS [WITH DEFAULT_DATABASE=database]
```

## Auditoria e registro em log
<a name="babelfish-kerberos-securityad-audit"></a>

 Para determinar a identidade principal de segurança do AD, use os seguintes comandos: 

```
1> select suser_name();
2> GO
suser_name
----------
corp\user1

(1 rows affected)
```

No momento, a identidade do usuário do AD não está visível nos logs. É possível ativar o parâmetro `log_connections` para registrar o estabelecimento da sessão de banco de dados. Para ter mais informações, consulte [log\_connections](https://docs.aws.amazon.com/prescriptive-guidance/latest/tuning-postgresql-parameters/log-connections.html). A saída inclui a identidade do usuário do AD como entidade principal, como mostra o exemplo a seguir. O PID de back-end associado a essa saída pode então ajudar a atribuir ações de volta ao usuário real do AD.

```
bbf_group_ad_login@babelfish_db:[615]:LOG: connection authorized: user=bbf_group_ad_login database=babelfish_db application_name=sqlcmd GSS (authenticated=yes, encrypted=yes, principal=user1@CORP.EXAMPLE.COM)
```