Configuración de la aplicación

Para poder implementar la autorización, debe registrar la aplicación en OAuth2 creando una integración de aplicaciones desde Workfront.

Para obtener instrucciones sobre cómo crear la aplicación OAuth2, consulte Crear una aplicación web de una sola página de OAuth2 mediante PKCE en Crear aplicaciones OAuth2 para integraciones de Workfront

NOTA
Puede tener hasta un total de diez aplicaciones OAuth2 a la vez.

Crear la clave de revisión para el intercambio de código

De forma similar al flujo estándar del Código de autorización, la aplicación se inicia redireccionando el explorador del usuario al extremo /authorize del servidor de autorización. Sin embargo, en este caso también tiene que pasar un reto de código.

El primer paso es generar un verificador de códigos y un desafío.

Verificador de códigosCadena URL segura aleatoria con una longitud mínima de 43 caracteres
Desafío de códigoHash SHA-256 cifrado en URL de Base64 del verificador de códigos

Debe agregar código en la aplicación cliente para crear el verificador de códigos y el reto de códigos.

El código del generador PKCE crea un resultado similar al siguiente:

INFORMACIÓN
Ejemplo:
{
  "code\_verifier":"N28zVMsKU6ptUjHaYWg3T1NFTDQqcW1R4BU5NXywapNac4hhfkxjwfhZQat",
  "code\_challenge":"wzgjYF9qEiWep-CwqgrTE78-2ghjwCtRO3vj23o4W\_fw"
}

Su aplicación guarda code_verifier para más adelante y envía code_challenge junto con la solicitud de autorización a la dirección URL /authorize del servidor de autorización.

Solicitar un código de autorización

Si utiliza el servidor de autorización personalizado predeterminado, la dirección URL de la solicitud sería similar a la siguiente:

INFORMACIÓN
Ejemplo:
/authorize?client\_id=<clientID>&response\_type=code&redirect\_uri=<redirectURL>
&code\_challenge\_method=S256&code\_challenge=wzgjYF9qEiWep-CwqgrTE78-2ghjwCtRO3vj23o4W\_fw"

Tenga en cuenta los parámetros que se pasan:

  • client_id coincide con el ID de cliente de la aplicación OAuth2 que creó en al configurar la aplicación.

    Para obtener instrucciones, consulte Creación de una aplicación web de una sola página de OAuth2 mediante PKCE en Creación de aplicaciones de OAuth2 para integraciones de Workfront.

  • response_type es code, porque la aplicación usa el tipo de concesión Código de autorización.

  • redirect_uri es la ubicación de devolución de llamada a la que se dirige el agente de usuario junto con code. Debe coincidir con una de las direcciones URL de redireccionamiento que especificó al crear la aplicación OAuth2.

  • code_challenge_method es el método hash utilizado para generar el desafío, que siempre es S256 para las aplicaciones Oauth2 de Workfront que utilizan PKCE.

  • code_challenge es el desafío de código utilizado para PKCE.

Intercambio del código por tokens

Para intercambiar el código de autorización por un token de acceso, páselo al extremo /token del servidor de autorización junto con code_verifier.

INFORMACIÓN
Ejemplo:
/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
IMPORTANTE
A diferencia del flujo normal de código de autorización, esta llamada no requiere el encabezado Autorización con el ID de cliente y el secreto. Por este motivo, esta versión del flujo del código de autorización es adecuada para aplicaciones nativas como aplicaciones móviles o aplicaciones de una sola página que no tienen servidor.

Tenga en cuenta los parámetros que se pasan:

  • grant_type es authorization_code, porque la aplicación usa el tipo de concesión Código de autorización.

  • redirect_uri debe coincidir con el URI que se usó para obtener el código de autorización.

  • code es el código de autorización que recibió del extremo /authorize.

  • code_verifier es el verificador de código PKCE que su aplicación generó en Crear la clave de revisión para el intercambio de código.

  • client_id identifica a su cliente y debe coincidir con el valor preregistrado en OAuth2.

Si el código sigue siendo válido y el verificador de códigos coincide, la aplicación recibe un token de acceso.

INFORMACIÓN
Ejemplo:
{
    "access\_token": "eyJhd\[...\]Yozv",
    "expires\_in": 3600,
    "token\_type": "Bearer"
}