Configurer Amazon Redshift IAM Identity Center OAuth

Depuis Tableau 2023.3.2, vous pouvez utiliser OAuth 2.0/OIDC pour fédérer l’identité à partir d’un fournisseur d’identité externe auprès d’Amazon Redshift.

Ces instructions concernent le nouveau service AWS IAM IDC. Pour l’intégration IAM d’origine, voir Configurer Amazon Redshift IAM OAuth.

Selon le fournisseur d’identité, plusieurs étapes différentes sont nécessaires pour configurer l’intégration. Nous vous présentons ici un aperçu général. Tableau ne peut pas fournir d’instructions détaillées de configuration d’AWS ou de l’IdP, mais seulement l’approche générale ci-après.

Pour des exemples détaillés d’implémentation de l’authentification avec Redshift, consultez Intégrer Tableau et Okta à Amazon Redshift à l’aide d’AWS IAM Identity Center(Le lien s’ouvre dans une nouvelle fenêtre) et Intégrer Tableau et Microsoft Entra ID à Amazon Redshift à l’aide d’AWS IAM Identity Center(Le lien s’ouvre dans une nouvelle fenêtre).

Étape 1 : Configurer l’IDP

  1. Créez des clients OAuth sur l’IdP pour Tableau Desktop et Tableau Server ou Tableau Cloud. Le client Desktop doit activer PKCE et utiliser les redirections http://localhost.

  2. Ajoutez les revendications personnalisées nécessaires pour l’autorisation concernant des rôles.

  3. Créez des fichiers de configuration Tableau OAuth. Consultez la documentation sur GitHub(Le lien s’ouvre dans une nouvelle fenêtre) et des exemples(Le lien s’ouvre dans une nouvelle fenêtre). N’hésitez pas à nous envoyer des exemples d’autres fournisseurs d’identité.

    1. Veillez à ajouter le préfixe « custom_ » aux ID de configuration Tableau OAuth.

    2. Si votre IdP prend en charge le port localhost dynamique, désactivez OAUTH_CAP_FIXED_PORT_IN_CALLBACK_URL. Dans le cas contraire, veillez à ajouter plusieurs URL de rappel localhost à la liste d’autorisations dans le fichier de configuration et sur l’IdP.

  4. Installez les nouveaux fichiers de configuration Tableau OAuth dans le dossier OAuthConfigs associé à chaque application sur les hôtes de bureau (Tableau Desktop, Tableau Prep Builder, Tableau Bridge) et sur chaque site Tableau Server et Tableau Cloud qui utilisera OAuth.

Étape 2 : Configurez l’IdP et les rôles sur AWS

Consultez votre documentation AWS pour plus d’informations sur cette opération.

Étape 3 : Connectez-vous à Redshift

  1. Connectez-vous à Redshift.

  2. Sélectionnez OAuth comme Authentification.

  3. Sélectionnez Identity Center comme Type de fédération.

  4. (Facultatif) Spécifiez le paramètre Espace de noms Identity Center si nécessaire.

Une fois la configuration correctement effectuée, vous serez redirigé vers l’IdP pour authentifier et autoriser des jetons pour Tableau. Tableau recevra un jeton d’accès et des jetons d’actualisation. Il enverra le jeton d’accès au pilote pour authentification.

Jetons

Par défaut, Redshift OAuth vers IAM IDC transmet le jeton d’accès au pilote. Pour les clients sur site, y compris ceux qui utilisent Tableau Bridge, vous pouvez utiliser un fichier TDC pour transmettre le jeton d’identification.

<connection-customization class='redshift' enabled='true' version='10.0'>
	<vendor name='redshift' />
	<driver name='redshift' />
	<customizations>
		<customization name='CAP_OAUTH_FEDERATE_ID_TOKEN' value='yes'/>
	</customizations>
</connection-customization>

Pour plus d’informations sur la configuration et l’installation des fichiers .tdc, consultez Personnalisation et optimisation d’une connexion(Le lien s’ouvre dans une nouvelle fenêtre) et Utilisation d’un fichier .tdc avec Tableau Server(Le lien s’ouvre dans une nouvelle fenêtre).

Okta

Dans le cas d’Okta, il est préférable d’utiliser un « serveur d’autorisation personnalisé » plutôt que le « serveur d’autorisation de l’organisation ». Les serveurs d’autorisation personnalisés sont plus flexibles. Un serveur d’autorisation personnalisé est créé par défaut avec le nom « default ». L’URL d’autorisation devrait se présenter comme suit :

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

Mettre à jour le pilote

Pour Redshift OAuth avec le service IAM IDC, vous devez utiliser au moins la version 2.x du pilote ODBC. Téléchargez la dernière version du pilote ODBC Redshift disponible sur https://github.com/aws/amazon-redshift-odbc-driver/tags(Le lien s’ouvre dans une nouvelle fenêtre). Notez qu’il n’y a pas de pilote v2 pour OSX.

Résolution des problèmes de Redshift IAM IDC OAuth

La meilleure façon de diagnostiquer ces erreurs est de supprimer Tableau de l’image. Vous pouvez également faire un test en utilisant le gestionnaire de pilotes ou un outil similaire. Ceci est uniquement destiné au dépannage : vous ne devez pas utiliser un DSN ou le connecteur « Autre ODBC » pour une utilisation régulière de cette fonctionnalité. Pour que le test soit valide, les paramètres doivent être les mêmes que ceux indiqués ci-dessous, à l’exception des informations sur le cluster, la base de données, le jeton et l’espace de noms.

Si vous voyez un message d’erreur concernant un jeton non valide/expiré provenant du pilote lors de la première connexion (il aura un code d’erreur SQLState comme [28000] ou [08001] dans le message d’erreur), cela signifie que Tableau a terminé avec succès le flux OAuth et échoué au niveau du pilote, et qu’il y a donc une erreur de configuration du côté d’AWS ou de l’IdP. Le pilote peut également renvoyer des erreurs d’autorisations, ce qui échappe également au contrôle de Tableau.

Avant de lancer le test, vous devez obtenir un jeton d’accès (par défaut pour IAM IDC) ou un jeton d’actualisation (si personnalisé) à envoyer au pilote.

Voici un exemple avec Okta. Presque tous les IdP procèdent de manière très similaire. Notez que, pour utiliser ce flux, vous devez avoir activé le type d’attribution de mot de passe du propriétaire de la ressource. Remplacez l’URL de l’IdP, le secret client, l’ID client, le nom d’utilisateur et le mot de passe.

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"

Une fois que vous avez le jeton, vous pouvez utiliser un DSN à des fins de test. Sous Windows, vous pouvez utiliser le gestionnaire de pilotes ODBC. Sous Linux, vous pouvez utiliser l’outil de ligne de commande isql inclus avec Tableau Server dans le dossier customer-bin.

Tableau vous recommande de ne pas utiliser d’autres plug-ins pour le test, car ils risquent de ne pas fonctionner dans un environnement serveur. Soit ils utilisent un profil AWS fixe, soit ils nécessitent un accès direct à un navigateur.

Vous trouverez ci-dessous un exemple d’utilisation du gestionnaire de pilotes ODBC sous Windows.

Merci de vos commentaires !Avis correctement envoyé. Merci