Configurar o OAuth do Amazon Redshift IAM Identity Center

A partir do Tableau 2023.3.2 para uso local (Tableau Desktop, Tableau Server e Tableau Prep) e no final de março de 2024 para Tableau Cloud, você pode usar o OAuth 2.0/OIDC para federar a identidade de um provedor de identidade externo para o Amazon Redshift.

Observação: este recurso não está disponível para OSX devido a limitações do driver.

Essas instruções são para o serviço AWS IAM IDC mais recente. Para integração original do IAM, consulte Configurar o Amazon Redshift IAM OAuth.

Dependendo do fornecedor de identidade, existem diferentes passos necessários para configurar a integração. Esta é uma visão geral de alto nível. O Tableau não pode fornecer instruções detalhadas sobre como configurar a AWS ou o IDP, mas esta é a abordagem geral.

Configurar o IDP

  1. Crie clientes OAuth no IDP para Tableau Desktop e Tableau Server ou Tableau Cloud. O cliente Desktop deve ativar PKCE e usar redirecionamentos de http://localhost.

  2. Adicione quaisquer declarações personalizadas para autorização de funções.

  3. Crie o arquivo de configuração do Tableau OAuth. Veja a documentação em GitHub(O link abre em nova janela) e os exemplos(O link abre em nova janela). Aceitamos exemplos para outros IDPs.

    1. Certifique-se de prefixar as IDs de configuração do Tableau OAuth com “custom_”.

    2. Se o seu IDP suportar porta localhost dinâmica, desative OAUTH_CAP_FIXED_PORT_IN_CALLBACK_URL. Caso contrário, adicione várias URLs de retorno de chamada de host local à lista de permissões no arquivo de configuração e no IDP.

  4. Instale os arquivos de configuração do Tableau OAuth em computadores desktop e nos sites do Tableau Server ou Tableau Cloud.

Etapa 2: configurar IDP e funções na AWS

Consulte a documentação da AWS para obter informações sobre como fazer isso.

Etapa 3: conectar-se ao Redshift

  1. Conecte-se ao Redshift.

  2. Selecione OAuth para Authentication (Autenticação).

  3. Selecione Identity Center para Federation Type (Tipo de Federação).

  4. (Opcional) Especifique o Identity Center Namespace se necessário.

Quando configurado corretamente, você será redirecionado ao IDP para autenticar e autorizar tokens para o Tableau. O Tableau receberá um token de acesso e tokens de atualização. Ele enviará o token de acesso ao driver para autenticação.

Okta

Se você estiver usando o Okta, será melhor usar um “servidor de autorização personalizado” vez de em vez do “servidor de autorização organizacional”. Os servidores de autorização personalizados são mais flexíveis. Um servidor de autorização personalizado é criado por padrão e denominado "padrão". A URL de autorização deve ter esta aparência:

https://${yourOktaDomain}/oauth2/{authServerName}/v1/authorize

Atualizar o driver

Para o OAuth do Redshift usando o serviço IDC de IAM, você deve usar o driver Redshift ODBC começando com a versão 2.0.1.0, que pode ser baixado em https://github.com/aws/amazon-redshift-odbc-driver/tags(O link abre em nova janela). Observe que não há driver v2 para OSX.

Solução de problemas do OAuth do IDC de IAM do Redshift

Se você vir uma mensagem de erro sobre token inválido/expirado vindo do driver na primeira conexão (ele terá um código de erro SQLState como [28000] ou [08001] na mensagem de erro), o Tableau concluiu com êxito o fluxo OAuth e falhou no driver. Isso significa que há uma configuração incorreta no lado da AWS ou no lado do IDP. Também pode haver erros de permissão ou autorização retornados pelo driver, o que também está fora do controle do Tableau.

A melhor maneira de diagnosticar esses erros é remover o Tableau da imagem. Primeiro você precisa obter um token de acesso (o padrão para IAM IDC) ou um token de acesso (se personalizado) para enviar ao driver.

Aqui está um exemplo com Okta. Quase todos os IDPs internos têm uma maneira de fazer isso que é bastante semelhante. Observe que para usar esse fluxo você precisa ter habilitado o tipo de concessão de senha do proprietário do recurso. Substitua a URL do IDP, o segredo do cliente, a ID do cliente, o nome de usuário e a senha.

curl -X POST "https://OKTA_URL/v1/token" \
-H 'accept: application/json' \
-H "Authorization: Basic $(echo -n 'CLIENTID:CLIENTSECRET' | base64)" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=password&username=USER&password=PASSWORD&scope=openid"

Depois de obter o token, você pode usar um DSN para testar. Abaixo está um exemplo de uso do gerenciador de driver ODBC no Windows. No Mac, você pode usar a interface do gerenciador de driver iODBC. No Linux, você pode usar a ferramenta de linha de comando isql incluída no Tableau Server na pasta “customer-bin”.

Agradecemos seu feedback!Seu feedback foi enviado. Obrigado!