Configurer Amazon Redshift IAM Identity Center OAuth

À compter de Tableau 2023.3.2 pour une installation sur site (Tableau Desktop, Tableau Server et Tableau Prep) et fin mars 2024 pour Tableau Cloud, vous pouvez utiliser OAuth 2.0/OIDC pour fédérer l’identité depuis un fournisseur d’identité externe vers Amazon Redshift. Tableau Bridge peut être utilisé comme solution de contournement sur Tableau Cloud jusqu’à ce que cette fonctionnalité soit disponible. Pour plus d’informations sur Bridge, consultez Utiliser Tableau Bridge pour garder les données à jour.

Remarque : cette fonctionnalité n’est pas disponible pour OSX en raison des limitations du pilote.

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.

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 fichiers de configuration OAuth sur des ordinateurs de bureau et des sites Tableau Server ou Tableau Cloud.

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

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 le pilote Redshift ODBC à partir de la version 2.0.1.0, qui peut être téléchargé 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

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.

La meilleure façon de diagnostiquer ces erreurs est de supprimer Tableau de l’image. Vous devez d’abord obtenir un jeton d’accès (valeur par défaut pour IAM IDC) ou un jeton d’accès (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. Vous trouverez ci-dessous un exemple d’utilisation du gestionnaire de pilotes ODBC sous Windows. Sous Mac, vous pouvez utiliser l’interface utilisateur du gestionnaire de pilotes iODBC. Sous Linux, vous pouvez utiliser l’outil de ligne de commande isql inclus avec Tableau Server dans le dossier customer-bin.

Merci de vos commentaires !Avis correctement envoyé. Merci