Configurer votre application
Avant de pouvoir implémenter l’autorisation, vous devez enregistrer votre application dans OAuth2 en créant une intégration d’application à partir de Workfront.
Pour obtenir des instructions sur la création de l’application OAuth2, voir la section Créer une application web OAuth2 d’une seule page à l’aide de PKCE dans Créer des applications OAuth2 pour les intégrations Workfront.
Créer la clé d’épreuve pour l’échange de code
Tout comme le flux de code d’autorisation standard, votre application commence par rediriger le navigateur de l’utilisateur ou l’utilisatrice vers le point d’entrée /authorize
du serveur d’autorisation. Cependant, dans ce cas, vous devez également transmettre un code_challenge.
Votre première étape consiste à générer un code_verifier et un code_challenge.
Vous devez ajouter du code dans l’application de votre client pour créer le code_verifier et le code_challenge.
Le code de générateur PKCE crée une sortie similaire à ce qui suit :
{
"code\_verifier":"N28zVMsKU6ptUjHaYWg3T1NFTDQqcW1R4BU5NXywapNac4hhfkxjwfhZQat",
"code\_challenge":"wzgjYF9qEiWep-CwqgrTE78-2ghjwCtRO3vj23o4W\_fw"
}
votre application enregistre le code_verifier
pour plus tard, et envoie le code_challenge
avec la demande d’autorisation à l’URL /authorize
de votre serveur d’autorisation.
Demander un code d’autorisation
Si vous utilisez le serveur d’autorisation personnalisé par défaut, l’URL de votre demande est similaire à ce qui suit :
/authorize?client\_id=<clientID>&response\_type=code&redirect\_uri=<redirectURL>
&code\_challenge\_method=S256&code\_challenge=wzgjYF9qEiWep-CwqgrTE78-2ghjwCtRO3vj23o4W\_fw"
Notez les paramètres qui sont transmis :
-
client_id
correspond à l’identifiant du client de l’application OAuth2 que vous avez créée lors de la configuration de l’application.Pour obtenir des instructions, voir la section Créer une application web OAuth2 d’une seule page à l’aide de PKCE dans Créer des applications OAuth2 pour les intégrations Workfront.
-
Le
response_type
estcode
, car l’application utilise le type d’octroi Code d’autorisation. -
redirect_uri
est l’emplacement de rappel vers lequel l’agent de l’utilisateur ou l’utilisatrice est dirigé en même temps que lecode
. Il doit correspondre à l’un des URI de redirection que vous avez spécifiés lors de la création de votre application OAuth2. -
code_challenge_method
est la méthode de hachage utilisée pour générer le code_challenge, qui est toujoursS256
pour les applications Workfront Oauth2 qui utilisent PKCE. -
code_challenge
est le code_challenge utilisé pour PKCE.
Échanger le code contre des jetons
Pour échanger le code d’autorisation contre un jeton d’accès, transmettez-le au point d’entrée /token
de votre serveur d’autorisation, accompagné du code_verifier
.
/token \\
--header 'accept: application/json' \\
--header 'cache-control: no-cache' \\
--header 'content-type: application/x-www-form-urlencoded' \\
--data 'grant\_type=authorization\_code&client\_id=<clientID>&redirect\_uri=<redirectURL>&code=<code>&code\_verifier=N28zVMsKU6ptUjHaYWg3T1NFTDQqcW1R4BU5NXywapNac4hhfkxjwfhZQat
Notez les paramètres qui sont transmis :
-
Le
grant_type
estauthorization_code
, car l’application utilise le type d’octroi Code d’autorisation. -
redirect_uri
doit correspondre à l’URI utilisé pour obtenir le code d’autorisation. -
code
est le code d’autorisation que vous avez reçu du point d’entrée /authorize. -
code_verifier
est le code_verifier PKCE que votre application a généré dans Créer la clé de vérification pour l’échange de code. -
client_id
identifie le client et doit correspondre à la valeur préenregistrée dans OAuth2.
Si le code est toujours valide et que le code_verifier correspond, votre application reçoit un jeton d’accès.
{
"access\_token": "eyJhd\[...\]Yozv",
"expires\_in": 3600,
"token\_type": "Bearer"
}