Configurer et utiliser les applications OAuth2 personnalisées de votre organisation à l’aide du flux de code d’autorisation
Pour intégrer Workfront et permettre à votre application client de communiquer avec Workfront au nom de l’utilisateur ou de l’utilisatrice, vous devez procéder comme suit :
- Créer une application OAuth2
- Configurer l’application tierce
- Lien vers la page d’autorisation pour vos utilisateurs et utilisatrices
- Configurer le flux de code d’autorisation : les utilisateurs et utilisatrices se connectent à l’instance Workfront et consentent à ce que l’application cliente se connecte à Workfront en leur nom. Vous obtenez ainsi un code d’autorisation que vous échangerez contre des jetons d’accès et des jetons d’actualisation.
- Configurer le flux de jetons d’actualisation : dans ce flux, vous utilisez le jeton d’actualisation pour obtenir un nouveau jeton d’accès lorsque l’ancien a expiré.
Créer une application OAuth2
Pour obtenir des instructions sur la création de l’application OAuth2, voir Créer une application OAuth2 à l’aide des informations d’identification de l’utilisateur ou de l’utilisatrice (flux de code d’autorisation) dans Créer des applications OAuth2 pour les intégrations Workfront.
Lien vers la page d’autorisation pour vos utilisateurs et utilisatrices
Vos utilisateurs et utilisatrices doivent se connecter pour autoriser cette intégration dans leur propre compte. La page à autoriser a un format spécifique, décrit ici. Utilisez ces informations pour déterminer l’adresse de la page d’autorisation de l’application et fournissez à vos utilisateurs et utilisatrices cette adresse ou un lien vers celle-ci.
-
URL complète du domaine de votre organisation. Exemple :
code language-none https://myorganization.my.workfront.com
-
client_id
: ID client généré lors de la création de l’application OAuth2 dans Workfront. -
redirect_uri
: cette URL doit être identique à l’URL de redirection que vous avez saisie dans Workfront lors de la création de l’application OAuth2. Vos utilisateurs et utilisatrices seront dirigés vers cette page après avoir autorisé l’application pour leur compte. -
response_type
: la valeur doit êtrecode
.
L’URL de la page d’autorisation est donc la suivante :
https://<URL of your organization's domain>/integrations/oauth2/authorize?client_id=<Your ClientID>&redirect_uri=<Your redirect URL>&response_type=code
Configurer l’application tierce
L’application tierce peut avoir besoin d’être configurée. Le tableau suivant contient des informations sur les champs qui peuvent être nécessaires lors de la configuration de l’application tierce.
Configurer un flux de code d’autorisation
Pour connecter vos utilisateurs et utilisatrices avec OAuth2, suivez le processus suivant :
-
Lorsque l’utilisateur ou l’utilisatrice ouvre la page d’autorisation, celle-ci redirige la personne vers la page de connexion de Workfront afin qu’elle puisse se connecter à Workfront. Si l’utilisateur ou l’utilisatrice a une configuration SSO, la page de connexion du fournisseur d’identité s’ouvre.
Si la personne est déjà connectée sur Workfront sur ce même navigateur, ou si la personne se connecte avec succès à Workfront, elle est redirigée vers l’écran de consentement :
-
Si l’utilisateur ou l’utilisatrice autorise l’accès, la page est redirigée vers l’
redirect_url
. La redirection doit inclure les paramètres de requête suivants :
-
code
: code d’autorisation requis pour obtenir le jeton d’accès/d’actualisation. -
domain
: domaine de votre organisation. Exemple : dansmyorganization.my.workfront.com
, le domaine estmyorganization
. -
lane
: volet de votre requête. Exemple : dansmyorganization.preview.workfront.com
, le volet estpreview
.note important IMPORTANT Le code
n’est valable que pendant 2 minutes. Vous devez donc obtenir les jetons d’actualisation et d’accès dans ce délai.
-
Lorsque vous disposez d’un code, vous pouvez demander des jetons d’accès et d’actualisation en envoyant le code ainsi que les informations d’identification de l’application cliente au point d’entrée
/integrations/oauth2/api/v1/token
.L’URL complète de la demande de jeton est la suivante :
code language-none https://<URL of your organization's domain></span>/integrations/oauth2/api/v1/token
Exemples : exemple d’appel CURL à un point d’entrée de jeton :
Exemple 1
code language-none curl --location --request POST '**<workfront host>**/integrations/oauth2/api/v1/token' \ --header 'Authorization: Basic **<base64(client_id:client_secret)>**' \ --header 'Content-Type: application/json' \ --data-raw '{ "code": "**<code>**", "grant_type": "**authorization_code**", "redirect_uri": "**<redirect_url>**" }'
Exemple 2
code language-none curl --location --request POST '**<workfront host>**/integrations/oauth2/api/v1/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=**authorization_code**' \ --data-urlencode 'redirect_uri=**<redirect_url>**' \ --data-urlencode 'code=**<code>**' \ --data-urlencode 'client_id=**<client_id>**' \ --data-urlencode 'client_secret=**<client_secret>**'
note important IMPORTANT Le secret client a été généré lors de l’enregistrement de l’application dans Workfront. Vous devez le conserver dans un endroit sûr, car il est impossible de le récupérer en cas de perte. Lorsque tous les paramètres transmis sont corrects, le point d’entrée du jeton renvoie la payload suivante :
code language-none { "token_type": "sessionID", "access_token": "string", // the value of sessionID "refresh_token": "string", "expires_in": 0, "wid": "string" }
Le jeton d’accès est le même que celui de
sessionID
, et il expire de la même manière qu’unsessionID
normal.note important IMPORTANT Conservez le jeton d’actualisation dans un endroit sûr. Vous en aurez besoin pour obtenir un nouveau jeton d’actualisation lorsque l’ancien aura expiré. Workfront ne stocke pas votre jeton d’actualisation. -
Maintenant que vous avez un jeton d’accès, vous pouvez faire des appels API à Workfront.
code language-none curl --request GET 'https://<workfront host>/attask/api/v14.0/proj/search \ --header 'sessionID: <access_token>'
Configurer l’actualisation du jeton d'accès
Pour actualiser le jeton d’accès, nous devons à nouveau effectuer un appel « POST » vers le point d’entrée du jeton. Cette fois-ci, nous envoyons des données de formulaire différentes comme suit :
curl --location --request POST '<workfront host>/integrations/oauth2/api/v1/token' \
--header 'Authorization: Basic <base64(client_id:client_secret)>' \
--header 'Content-Type: application/json' \
--data-raw '{
"grant_type": "refresh_token",
"refresh_token": "<refresh_token>"
}'
###### OR
curl --location --request POST '<workfront host>/integrations/oauth2/api/v1/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=refresh_token' \
--data-urlencode 'redirect_uri=<redirect_url>' \
--data-urlencode 'refresh_token=<refresh_token>' \
--data-urlencode 'client_id=<client_id>' \
--data-urlencode 'client_secret=<client_secret>'
Cela renvoie le résultat suivant :
{
"token_type": "sessionID",
"access_token": "string", // the value of sessionID
"refresh_token": "string",
"expires_in": 0,
"wid": "string"
}
Encore une fois, le jeton d’accès est le sessionID
qui peut être utilisé pour effectuer une requête API à Workfront.