L'API Cloud InterAction+™ utilise OAuth 2.0 comme cadre d'autorisation, permettant aux applications clientes tierces d'accéder en toute sécurité aux données utilisateur d'un locataire, sans que les utilisateurs aient à partager leurs mots de passe. L'autorisation est gérée par le serveur d'autorisation InterAction+™, qui émet des jetons d'accès et de rafraîchissement sécurisés accordant un accès contrôlé à l'API Cloud InterAction+™.
Flux d'autorisation OAuth 2.0
Notre implémentation prend en charge le flux de code d'autorisation OAuth 2.0, garantissant une authentification et une autorisation sécurisées pour les interactions système à système. Ce flux garantit que seuls les clients tiers authentifiés et autorisés peuvent interagir en toute sécurité avec l'API Cloud InterAction+™ tout en maintenant un contrôle strict sur les autorisations d'accès.
Participants clés
- Administrateur du locataire InterAction+™ : Initie le processus d'autorisation pour accorder à un client tiers l'accès à l'API Cloud InterAction+™. Un administrateur doit donner son consentement pour l'accès aux données InterAction+™, garantissant que l'accès à l'API n'est accordé qu'aux clients tiers autorisés. De plus, l'administrateur doit désigner un utilisateur unique pour les transactions API. Il est recommandé de créer et de choisir un utilisateur système dédié sans données personnelles à cette fin.
- Client tiers : Demande un jeton d'accès au serveur d'autorisation InterAction+™ pour interagir avec l'API Cloud InterAction+™ au nom du locataire. L'accès est accordé uniquement pour les portées demandées dans le cadre de la configuration du client tiers.
- Fournisseur d'identité (IdP) du locataire : Authentifie l'administrateur du locataire InterAction+™ avant de délivrer un code d'autorisation.
- Serveur d'autorisation InterAction+™ : Émet des jetons d'accès et de rafraîchissement après une autorisation réussie.
Étapes d'autorisation
Les étapes décrites décomposent chaque demande individuelle faite au serveur d'autorisation InterAction+™ lors du flux de code d'autorisation OAuth 2.0. Bien que ces détails fournissent une compréhension plus approfondie du processus, de nombreux outils (par exemple, Postman) et cadres gèrent ces demandes automatiquement. Dans de tels cas, les utilisateurs n'ont qu'à configurer l'URL d'autorisation, l'URL du jeton d'accès et l'URL du jeton de rafraîchissement pour activer l'authentification et l'échange de jetons.
-
Administrateur du locataire InterAction+™ autorise un client tiers :
Pour accorder à un client tiers l'accès à l'API Cloud InterAction+™, l'administrateur
du locataire InterAction+™ doit initier le processus de configuration dans
l'interface du client tiers. Lors de l'initiation, le client tiers envoie
une demande au point de terminaison d'autorisation, incitant l'administrateur
du locataire InterAction+™ à effectuer les étapes suivantes avant d'obtenir
un code d'autorisation :
-
Authentification avec le fournisseur d'identité (IdP) : L'administrateur du locataire InterAction+™ doit se connecter en utilisant les identifiants IdP de son organisation pour vérifier son identité. Cette étape garantit une authentification sécurisée avant de donner l'accès.
-
Accorder le consentement pour l'accès du client tiers :
Après l'authentification, l'administrateur du locataire InterAction+™
examinera et approuvera la demande du client tiers pour accéder aux
données du locataire InterAction+™.
-
Désigner un utilisateur API : L'administrateur du
locataire InterAction+™ doit désigner un utilisateur responsable
de la gestion des transactions API Cloud InterAction+™ au sein du
locataire. L'administrateur du locataire InterAction+™ doit désigner
un utilisateur responsable de la gestion des transactions API Cloud
InterAction+™ au sein du locataire.
-
Point de terminaison :
GET {InterAction+™ Tenant Authority URL}/connect/authorizeParamètre
Description
response_type=code Demande un code d'autorisation. client_id L'identifiant unique du client tiers. redirect_uri L'URL de retour OAuth où le code d'autorisation sera envoyé (enregistré lors de l'intégration du client). scope Les permissions demandées (par exemple, openid offline_access public.contact.read). state Une valeur aléatoire pour prévenir les attaques CSRF. -
scope : Les portées définissent le niveau d'accès
accordé au Client Tiers. Le jeton d'accès à l'API Cloud InterAction+™
émis par le Serveur d'Autorisation InterAction+™ englobe les portées
demandées par le Client Tiers dans les limites de sa configuration.
Portée
Description
openid Active le support OpenID Connect, permettant la vérification d'identité. offline_access Permet de demander un jeton de rafraîchissement, afin que le client tiers puisse obtenir un nouveau jeton d'accès sans nécessiter d'interaction utilisateur. public.activity.read Lire les activités public.activity.modify Modifier les activités public.contact.read Lire les contacts et les informations associées public.contact.modify Modifier les contacts et les informations associées public.list.read Lire les listes public.list.modify Modifier les listes et les informations associées -
Exemple de demande d'autorisation :
{InterAction+™ Tenant Authority URL}/connect/authorize?response_type=code&client_id=third-party-client-id&redirect_uri=https://thirdpartyapp.com/oauth/callback&scope=openid offline_access public.contact.read&state=xyz123
-
-
Échanger le code d'autorisation contre des jetons d'accès et de rafraîchissement : Une
fois le code d'autorisation obtenu, le client tiers doit l'échanger contre
un jeton d'accès et un jeton de rafraîchissement en faisant une requête au
point de terminaison des jetons.
-
Point de terminaison du jeton :
POST {InterAction+™ Tenant Authority URL}/connect/tokenParamètre
Description
grant_type=authorization_code Spécifie le type de subvention Code d'Autorisation. code Le code d'autorisation reçu à l'étape précédente. redirect_uri L'URL de retour OAuth où les jetons seront envoyés (enregistrée lors de l'intégration du client). client_id L'identifiant du client tiers. client_secret Le secret du client tiers. -
Exemple de requête d'échange de jeton :
POST {InterAction+™ URL de l'autorité du locataire}/connect/tokenContent-Type: application/x-www-form-urlencodedgrant_type=authorization_code&client_id=third-party-client-
id&client_secret=third-party-client-
secret&code=AUTHORIZATION_CODE_FROM_STEP_1&redirect_uri=https://third-
party-app.com/oauth/callback -
Exemple de réponse de jeton :
{
"id_token": "eyJhbGciOiJIUzI1NiIsInR...",
"access_token": "eyJhbGciOiJIUzI1NiIsInR...",
"expires_in": 3600,
"refresh_token": "def5020072b36c9b...",
"token_type": "Bearer",
"scope": "openid public.activity.read …”
}Jeton
Description
id_token JWT qui contient les informations d'authentification de l'utilisateur. access_token Jeton JWT utilisé pour accéder à l'API Cloud InterAction+™. expires_in Durée d'expiration du jeton d'accès (en secondes). refresh_token Jeton de rafraîchissement utilisé pour demander un nouveau jeton d'accès sans interaction utilisateur. token_type Toujours Bearer, utilisé dans les en-têtes d'autorisation. portée
Le niveau d'accès accordé au client tiers.
-
Point de terminaison du jeton :
-
Effectuer des requêtes API avec le jeton d'accès : Une fois
le jeton d'accès obtenu, le client tiers l'inclut dans l'en-tête Authorization
des requêtes API. Ce mécanisme garantit que seuls les utilisateurs authentifiés
avec un jeton d'accès JWT valide peuvent accéder à l'API Cloud InterAction+™.
-
Exemple de requête API :
POST {URL de l'API Cloud InterAction+™ }Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR...Corps : requête GraphQL
-
Exemple de requête API :
-
Actualisation du jeton d'accès : Étant donné que les jetons
d'accès ont une durée de vie plus courte, le jeton de rafraîchissement permet
au client tiers d'obtenir un nouveau jeton d'accès sans nécessiter d'interaction
de l'utilisateur.
-
Point de terminaison du jeton :
POST {InterAction+™ Tenant Authority URL}/connect/tokenParamètre
Description
grant_type=refresh_token Spécifie le type de permission pour récupérer le jeton de rafraîchissement. refresh_token Le jeton de rafraîchissement reçu à l'étape précédente. client_id L'identifiant du client tiers. client_secret Le secret du client tiers.
-
Point de terminaison du jeton :
-
-
Exemple de requête :
POST {InterAction+™ Tenant Authority URL}/connect/tokenContent-Type: application/x-www-form-urlencodedgrant_type=refresh_token&client_id=third-party-client-id&client_secret=third-party-client-secret&refresh_token=REFRESH_TOKEN -
Exemple de réponse de jeton d'actualisation :
{
"id_token": "nouveau_id_token_ici",
"access_token": "nouveau_access_token_ici",
"expires_in": 3600,
"refresh_token": "nouveau_refresh_token_ici",
"token_type": "Bearer"
"scope": "openid public.activity.read …”
}Jeton
Description
id_token JWT qui contient les informations d'authentification de l'utilisateur. access_token Jeton JWT utilisé pour accéder à l'API Cloud InterAction+™. expires_in Durée d'expiration du jeton d'accès (en secondes). refresh_token Jeton de rafraîchissement utilisé pour demander un nouveau jeton d'accès sans interaction utilisateur. token_type Toujours Bearer, utilisé dans les en-têtes d'autorisation. scope Le niveau d'accès accordé au client tiers.
-
Cycle de vie des jetons
- Expiration du jeton d'accès : Le jeton d'accès est valide pendant une heure.
- Expiration du jeton de rafraîchissement : Le jeton de rafraîchissement est valide pendant 30 jours. Si le jeton de rafraîchissement expire, l'administrateur du locataire InterAction+™ doit réinitier le processus d'autorisation pour obtenir de nouveaux jetons.
- Révocation des jetons : L'administrateur du locataire InterAction+™ peut révoquer les jetons d'accès pour un client tiers à tout moment, mettant immédiatement fin à l'accès API depuis l'administration du locataire dans le CIM. Consultez le Centre de réponses Client Insights pour les utilisateurs Hybrid ou SaaS pour en savoir plus.
Utilisation du jeton de rafraîchissement
Notre configuration implémente des jetons de rafraîchissement à usage unique pour soutenir une gestion sécurisée des jetons.
- Lorsqu'un client tiers utilise un jeton de rafraîchissement pour obtenir un nouveau jeton d'accès, une nouvelle paire de jetons d'accès et de rafraîchissement est émise.
- Le jeton de rafraîchissement précédemment utilisé est immédiatement révoqué et ne peut plus être utilisé.
Si un client tiers soumet un jeton de rafraîchissement qui a déjà été utilisé ou qui a été remplacé par un jeton plus récent, la demande échouera avec une erreur car le jeton n'est plus valide ou présent dans notre magasin de jetons.
Bonnes pratiques
- Après chaque rafraîchissement réussi, remplacez votre jeton de rafraîchissement stocké par le nouveau et utilisez uniquement le jeton le plus récent pour les futures demandes de rafraîchissement.
- N'essayez pas de réutiliser ou de revenir à des jetons de rafraîchissement précédents.
- Évitez d'envoyer plusieurs demandes de rafraîchissement en parallèle, car la première demande fera tourner le jeton et les suivantes utilisant l'ancien jeton échoueront.