

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# AD FS
<a name="setup-identity-provider-adfs"></a>

Este tutorial mostra como usar o AD FS como provedor de identidades (IdP) para acessar clusters do Amazon Redshift.

## Etapa 1: configurar o AD FS e sua conta da AWS para que confiem um no outro
<a name="setup-identity-provider-adfs-trust"></a>

 O procedimento a seguir descreve como configurar uma relação de confiança. 

1. Crie ou use um cluster existente do Amazon Redshift para os usuários do AD FS se conectarem. Para configurar a conexão, certas propriedades deste cluster são necessárias, como o identificador de cluster. Para obter mais informações, consulte [Criar um cluster](https://docs.aws.amazon.com/redshift/latest/mgmt/create-cluster.html).

1. Configure o AD FS para controlar o acesso do Amazon Redshift no console de gerenciamento Microsoft: 

   1. Escolha **ADFS 2.0** e **Add Relying Party Trust (Adicionar confiança da parte dependente)**. Na página **Add Relying Party Trust Wizard (Assistente para adicionar confiança da parte dependente)** escolha **Start (Iniciar)**.

   1. Na página **Select Data Source (Selecionar fonte de dados)**, escolha **Import data about the relying party published online or on a local network (Importar dados sobre a parte dependente publicados online ou em uma rede local)**.

   1. Em **Federation metadata address (host name or URL) (Endereço de metadados de federação [nome do host ou URL])**, insira **https://signin.aws.amazon.com/saml-metadata.xml**. O arquivo XML de metadados é um documento de metadados SAML padrão que descreve a AWS como uma parte confiável.

   1. Na página **Specify Display Name (Especificar nome de exibição)**, insira um valor para **Display name (Nome de exibição)**. 

   1. Na página **Choose Issuance Authorization Rules (Escolher regras de autorização de emissão)**, escolha uma regra de autorização de emissão para permitir ou negar que todos os usuários acessem essa parte dependente.

   1. Na página **Ready to Add Trust (Pronto para adicionar confiança)** revise as configurações.

   1. Na página **Finish (Concluir)**, escolha **Open the Edit Claim Rules dialog for this relying party trust when the wizard closes (Abrir a caixa de diálogo Editar regras de reivindicação para esta parte dependente quando o assistente for encerrado)**.

   1. No menu de contexto (clique com o botão direito do mouse), escolha **Relying Party Trusts (Confianças de parte dependente)**.

   1. Para sua parte dependente, abra o menu de contexto (clique com o botão direito do mouse) e escolha **Edit Claim Rules (Editar regras de reivindicação)**. Na página **Edit Claim Rules (Editar regras de reivindicação)**, escolha **Add Rule (Adicionar regra)**.

   1. Em **Claim rule template (Modelo de regra de reivindicação)**, escolha **Transform an Incoming Claim (Transformar uma reivindicação de entrada)** e na página **Edit Rule – NameId (Editar regra – NameId)**, faça o seguinte:
      + Em **Claim rule name (Nome da regra de reivindicação)**, insira **NameId**.
      + Em **Incoming claim name (Nome da reivindicação de entrada)**, escolha **Windows Account Name (Nome da conta do Windows)**.
      + Em **Outgoing claim name (Nome da reivindicação de saída)**, escolha **Name ID (ID do nome)**.
      + Em **Outgoing name ID format (Formato de ID de nome de saída)**, escolha **Persistent Identifier (Identificador persistente)**.
      + Escolha **Pass through all claim values (Transmitir todos os valores de reivindicação)**.

   1. Na página **Edit Claim Rules (Editar regras de reivindicação)**, escolha **Add Rule (Adicionar regra)**. Na página **Select Rule Template (Selecionar modelo de regra)**, em **Claim rule template (Modelo de regra de reivindicação)**, escolha **Send LDAP Attributes as Claims (Enviar atributos LDAP como reivindicações)**.

   1. Na página **Configure Rule (Configurar regra)**, faça o seguinte:
      + Em **Claim rule name (Nome da regra de reivindicação)**, insira **RoleSessionName**.
      + Em **Attribute store (Armazenamento de atributos)**, escolha **Active Directory**.
      + Em **LDAP Attribute (Atributo LDAP)**, escolha **Email Addresses (Endereços de e-mail)**.
      + Para o **Tipo de declaração de saída**, escolha **https://aws.amazon.com/SAML/Attributes/RoleSessionName**.

   1. Na página **Edit Claim Rules (Editar regras de reivindicação)**, escolha **Add Rule (Adicionar regra)**. Na página **Select Rule Template (Selecionar modelo de regra)**, em **Claim rule template (Modelo de regra de reivindicação)**, escolha **Send Claims Using a Custom Rule (Enviar reivindicações usando uma regra personalizada)**.

   1. Na página **Edit Rule – Get AD Groups (Editar regra – Obter grupos do AD)**, em **Claim rule name (Nome da regra de reivindicação)**, insira **Get AD Groups (Obter grupos do AD)**.

   1. Em **Custom rule (Regra personalizada)**, insira o seguinte.

      ```
      c:[Type ==
                                          "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
                                          Issuer == "AD AUTHORITY"] => add(store = "Active Directory",
                                          types = ("http://temp/variable"), query = ";tokenGroups;{0}",
                                          param = c.Value);
      ```

   1. Na página **Edit Claim Rules (Editar regras de reivindicação)**, escolha **Add Rule (Adicionar regra)**. Na página **Select Rule Template (Selecionar modelo de regra)**, em **Claim rule template (Modelo de regra de reivindicação)**, escolha **Send Claims Using a Custom Rule (Enviar reivindicações usando uma regra personalizada)**.

   1. Na página **Edit Rule – Roles (Editar regra – Funções)**, em **Claim rule name (Nome da regra de reivindicação)**, digite **Roles (Funções)**.

   1. Em **Custom rule (Regra personalizada)**, insira o seguinte.

      ```
      c:[Type == "http://temp/variable", Value =~ "(?i)^AWS-"] => issue(Type = "https://aws.amazon.com/SAML/Attributes/Role", Value = RegExReplace(c.Value, "AWS-", "arn:aws:iam::123456789012:saml-provider/ADFS,arn:aws:iam::123456789012:role/ADFS-"));
      ```

      Observe os ARNs do provedor SAML e a função a ser assumida. Neste exemplo, `arn:aws:iam:123456789012:saml-provider/ADFS` é o ARN do provedor SAML e `arn:aws:iam:123456789012:role/ADFS-` é o ARN da função.

1. Certifique-se de que você fez download do arquivo `federationmetadata.xml`. Verifique se o conteúdo do documento não tem caracteres inválidos. Este é o arquivo de metadados que você usa ao configurar a relação de confiança com a AWS. 

1. Crie um provedor de identidade SAML do IAM no console do IAM. O documento de metadados fornecido é o arquivo XML de metadados da federação que você salvou quando configurou o Azure Enterprise Application. Para obter etapas detalhadas, consulte [Criar e gerenciar um provedor de identidade do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html#idp-manage-identityprovider-console) no *Manual do usuário do IAM*. 

1. Crie uma função do IAM para a federação do SAML 2.0 no console do IAM. Para obter etapas detalhadas, consulte [Criar uma função para o SAML](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html#idp_saml_Create) no *Manual do usuário do IAM*. 

1. Crie uma política do IAM que você possa anexar à função do IAM criada para a federação do SAML 2.0 no console do IAM. Para obter etapas detalhadas, consulte [Criar políticas do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-start) no *Manual do usuário do IAM*. Para obter um exemplo do Azure AD, consulte [Configurar a autenticação única de JDBC ou ODBC](setup-azure-ad-identity-provider.md). 

## Etapa 2: configurar JDBC ou ODBC para autenticação no AD FS
<a name="setup-identity-provider-adfs-auth"></a>

------
#### [ JDBC ]

 O procedimento a seguir descreve como configurar uma relação entre o JDBC e o AD FS. 
+ Configure seu cliente de banco de dados para se conectar ao cluster por meio do JDBC usando a autenticação única do Azure FS. 

  Você pode utilizar qualquer cliente que use um driver JDBC para se conectar usando a autenticação única do AD FS ou usar uma linguagem, como Java, para se conectar por meio de um script. Para obter informações sobre instalação e configuração, consulte [Configurar uma conexão para o driver JDBC versão 2.x para o Amazon Redshift](jdbc20-install.md).

  Por exemplo, você pode usar SQLWorkbench/J como o cliente. Ao configurar o SQLWorkbench/j, a URL do seu banco de dados usa o seguinte formato.

  ```
  jdbc:redshift:iam://cluster-identifier:us-west-1/dev
  ```

  Se você usar o SQLWorkbench/j como o cliente, execute as seguintes etapas:

  1. Inicie o SQL Workbench/J. Na página **Selecionar perfil de conexão**, adicione um **Grupo de perfis**, por exemplo, **ADFS**.

  1. Em **Connection Profile (Perfil de conexão)**, insira o nome do perfil de conexão, por exemplo, **ADFS**.

  1. Escolha **Manage Drivers (Gerenciar drivers)** e escolha **Amazon Redshift**. Escolha o ícone **Open Folder (Abrir pasta)** ao lado de **Library (Biblioteca)**, e escolha o arquivo.jar JDBC apropriado. 

  1. Na página **Select Connection Profile (Selecionar perfil de conexão)**, adicione informações ao perfil de conexão da seguinte maneira:
     + Em **User (Usuário)**, insira o nome de usuário do AD FS. Este é o nome de usuário da conta do usado para o logon único que tem permissão para o cluster que você está tentando autenticar.
     + Em **Password (Senha)**, insira a senha do AD FS.
     + Em **Drivers**, escolha **Amazon Redshift (com.amazon.redshift.jdbc.Driver)**.
     + Para **URL**, insira **jdbc:redshift:iam://*your-cluster-identifier*:*your-cluster-region*/*your-database-name***.

  1. Escolha **Propriedades estendidas**. Para **plugin\$1name**, insira **com.amazon.redshift.plugin.AdfsCredentialsProvider**. Esse valor especifica para o driver usar o método de autenticação única do AD FS. 

------
#### [ ODBC ]

**Como configurar o ODBC para autenticação no AD FS**
+ Configure seu cliente de banco de dados para se conectar ao cluster por meio de ODBC usando a autenticação única do AD FS. 

  O Amazon Redshift fornece drivers ODBC para sistemas operacionais Linux, Windows e macOS. Antes de instalar um driver de ODBC, será necessário determinar se a ferramenta do cliente SQL é de 32 ou 64 bits. Instale o driver de ODBC que corresponde aos requisitos da ferramenta de cliente SQL. 

  No Windows, na página **Amazon Redshift ODBC Driver DSN Setup (Configuração do DSN do driver ODBC do Amazon Redshift)**, em **Connection Settings (Configurações de conexão)**, insira as seguintes informações: 
  + Para **Data Source Name (Nome da fonte de dados)**, insira ***your-DSN***. Isto especifica o nome da fonte de dados usado como o nome do perfil de ODBC. 
  + Para o **Tipo de autenticação**, escolha **Provedor de identidade: SAML**. Esse é o método que o driver de ODBC usa para autenticar por meio da autenticação única do AD FS.
  + Para **Cluster ID (ID do cluster)**, insira ***your-cluster-identifier***. 
  + Para **Region (Região)**, insira ***your-cluster-region***.
  + Para **Database (Banco de dados)**, insira ***your-database-name***.
  + Em **User (Usuário)**, insira ***your-adfs-username***. Esse é o nome de usuário da conta do AD FS que está sendo usado para autenticação única que tem permissão para o cluster que você está tentando autenticar. Use isso somente quando **Auth type (Tipo de autenticação)** for **Identity Provider: SAML (Provedor de identidade: SAML)**.
  + Em **Password (Senha)**, insira ***your-adfs-password***. Use isso somente quando **Auth type (Tipo de autenticação)** for **Identity Provider: SAML (Provedor de identidade: SAML)**. 

  No macOS e no Linux, edite o arquivo `odbc.ini` da seguinte forma: 
**nota**  
Nenhuma entrada diferencia letras maiúsculas de minúsculas.
  + Para **clusterid**, insira ***your-cluster-identifier***. Esse é o nome do cluster criado pelo Amazon Redshift.
  + Para **region (região)**, insira ***your-cluster-region***. Esta é a Região da AWS do cluster do Amazon Redshift criado.
  + Para **database (banco de dados)**, insira ***your-database-name***. Este é o nome do banco de dados que você está tentando acessar no cluster do Amazon Redshift.
  + Para **locale (localidade)**, insira **en-us**. Este é o idioma em que as mensagens de erro são exibidas.
  + Para **IAM**, insira **1**. Esse valor especifica ao driver para autenticar usando credenciais do IAM.
  + Em **plugin\$1name**, siga um destes procedimentos:
    + Na configuração de autenticação única do AD FS com MFA, digite **BrowserSAML**. Este é o método de autenticação que o driver ODBC usa para autenticar no AD FS. 
    + Na configuração de autenticação única do AD FS, digite **ADFS**. Esse é o método que o driver de ODBC usa para autenticar por meio da autenticação única do Azure AD. 
  + Em **uid**, insira ***your-adfs-username***. Esse é o nome de usuário da conta do Microsoft Azure que está sendo usado para autenticação única que tem permissão para o cluster que você está tentando autenticar. Use isso somente quando **plugin\$1name** for **ADFS**.
  + Em **pwd**, insira ***your-adfs-password***. Use isso somente quando **plugin\$1name** for **ADFS**. 

  No macOS e no Linux, edite também as configurações de perfil para adicionar as exportações a seguir.

  ```
  export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
  ```

  ```
  export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini
  ```

------