AD FS - Amazon Redshift

AD FS

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

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.

  2. 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).

    2. 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).

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

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

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

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

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

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

    9. 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).

    10. 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).

    11. 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).

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

    13. 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).

    14. 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).

    15. 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);
    16. 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).

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

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

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

  4. 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) no Manual do usuário do IAM.

  5. 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 no Manual do usuário do IAM.

  6. 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) no Manual do usuário do IAM. Para obter um exemplo do Azure AD, consulte Configurar a autenticação única de JDBC ou ODBC.

Etapa 2: configurar JDBC ou ODBC para autenticação no AD FS

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.1 para o Amazon Redshift.

    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.

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

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

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

    5. Escolha Propriedades estendidas. Para plugin_name, 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_name, 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_name for ADFS.

    • Em pwd, insira your-adfs-password. Use isso somente quando plugin_name 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