Gestion du consentement de l’utilisateur pour OAuth¶
Cette rubrique explique comment gérer les autorisations déléguées pour OAuth, c’est-à-dire que le consentement de l’utilisateur est donné à un ou plusieurs clients associés aux intégrations Snowflake pour un rôle spécifié.
Dans ce chapitre :
Ajout d’autorisations déléguées¶
L’ajout d’une autorisation déléguée à un utilisateur autorise au préalable l’autorisation d’initier une session à l’aide d’un rôle spécifié pour une intégration particulière. Sans l’autorisation déléguée, l’utilisateur doit autoriser le consentement pour le rôle après l’authentification. Notez qu’une autorisation déléguée ne contourne que l’étape d’autorisation pour un rôle donné ; un utilisateur doit toujours s’authentifier pour demander un code d’autorisation.
La possibilité d’ajouter des autorisations déléguées est limitée aux clients personnalisés. Pour les clients publics (c’est-à-dire Tableau Server ou Desktop), Snowflake affiche toujours la boîte de dialogue de confirmation pour un rôle donné.
Ajoutez le consentement de l’utilisateur pour un rôle utilisant ALTER USER avec les mots clés ADD DELEGATED AUTHORIZATION :
ALTER USER <username> ADD DELEGATED AUTHORIZATION
OF ROLE <role_name>
TO SECURITY INTEGRATION <integration_name>;
Où :
username
Spécifie l’utilisateur pour qui vous ajoutez le consentement.
role_name
Spécifie le rôle associé au jeton d’accès.
integration_name
Spécifie l’intégration associée aux jetons d’accès pour un client spécifique.
Note
Seuls les administrateurs de sécurité (c’est-à-dire les utilisateurs ayant le rôle SECURITYADMIN) ou ayant un rôle supérieur peuvent exécuter cette commande SQL.
Par exemple, ajoutez le consentement de l’utilisateur pour le rôle CUSTOM1 à l’utilisateur JANE.SMITH pour l’intégration MYINT :
ALTER USER jane.smith ADD DELEGATED AUTHORIZATION
OF ROLE custom1
TO SECURITY INTEGRATION myint;
Affichage d’autorisations déléguées¶
Répertoriez les autorisations déléguées actives pour lesquelles vous avez des privilèges d’accès, en utilisant SHOW DELEGATED AUTHORIZATIONS :
SHOW DELEGATED AUTHORIZATIONS;
+-------------------------------+-----------+-----------+-------------------+--------------------+
| created_on | user_name | role_name | integration_name | integration_status |
+-------------------------------+-----------+-----------+-------------------+--------------------+
| 2018-11-27 07:43:10.914 -0800 | JSMITH | PUBLIC | MY_OAUTH_INT | ENABLED |
+-------------------------------+-----------+-----------+-------------------+--------------------+
Répertoriez les autorisations déléguées actives pour un utilisateur spécifié. Les utilisateurs peuvent répertorier leurs propres autorisations déléguées ; sinon, cette variante de commande nécessite le privilège OWNERSHIP sur l’utilisateur.
SHOW DELEGATED AUTHORIZATIONS
BY USER <username>;
Répertoriez les autorisations déléguées actives pour une intégration spécifiée. Cette variante de commande nécessite le privilège OWNERSHIP sur l’intégration (c’est-à-dire le rôle ACCOUNTADMIN) :
SHOW DELEGATED AUTHORIZATIONS
TO SECURITY INTEGRATION <integration_name>;
Révocation d’autorisations déléguées¶
Un utilisateur peut révoquer le consentement d’une intégration spécifiée. Cela a pour effet de révoquer tout jeton d’accès associé à l’intégration.
Pour révoquer le consentement de l’utilisateur pour une intégration donnée, exécutez la commande ALTER USER … REMOVE DELEGATED AUTHORIZATIONS.
Note
Seuls les administrateurs de sécurité (c’est-à-dire les utilisateurs ayant le rôle SECURITYADMIN) ou ayant un rôle supérieur peuvent exécuter cette commande SQL.
ALTER USER <username>
REMOVE DELEGATED AUTHORIZATIONS
FROM SECURITY INTEGRATION <integration_name>
Pour révoquer le consentement de l’utilisateur associé à un rôle spécifique, incluez le paramètre OF ROLE role_name
dans l’instruction :
ALTER USER <username>
REMOVE DELEGATED AUTHORIZATION OF ROLE <role_name>
FROM SECURITY INTEGRATION <integration_name>
Où :
username
Spécifie l’utilisateur pour qui vous révoquez le consentement.
role_name
Spécifie le rôle associé au jeton d’accès.
integration_name
Spécifie l’intégration associée aux jetons d’accès pour un client spécifique.
Par exemple, supprimez le consentement de l’utilisateur pour le rôle CUSTOM1 de l’utilisateur JANE.SMITH pour l’intégration MYINT :
ALTER USER jane.smith
REMOVE DELEGATED AUTHORIZATION OF ROLE custom1
FROM SECURITY INTEGRATION myint;