Guía de autenticación
Las solicitudes a todos los puntos finales de la API de Bluebeam deben estar autenticadas. Las aplicaciones se conectan a Bluebeam mediante OAuth 2.0. Esta guía le muestra cómo obtener un access_token para autenticarse, en nombre de un usuario, en su aplicación.
Antes de iniciar el proceso de autenticación, asegúrese de hacer lo siguiente:
-
Registra tu aplicación
-
Proporcionar una URI de redireccionamiento
-
Guarde su ID de cliente y secreto
Si aún no ha realizado lo anterior, visite la Página Comenzar en el Bluebeam Developer Portal para obtener más información.
Hay URL base específicas de cada región que se aplican a todos los puntos finales:
- EE. UU.: https://api.bluebeam.com
- DE: https://api.bluebeamstudio.de
- AU: https://api.bluebeamstudio.com.au
- UK: https://api.bluebeamstudio.co.uk
- SE: https://api.bluebeamstudio.se
Por ejemplo, https://api.bluebeam.com/publicapi/v1/sessions en EE. UU. sería https://api.bluebeamstudio.com.au/publicapi/v1/sessions en AU.
Flujo del código de autorización
Utilice la autenticación con código de autorización solo cuando su aplicación pueda guardar un secreto (por ejemplo, si la aplicación se ejecuta en un servidor web que usted controla). Asegúrese de tratar el client_secret como trataría una contraseña.
El primer paso es solicitar la autorización del usuario de tu App. Redirigirá al usuario al punto final de Autorización donde se le solicitará que inicie sesión con sus credenciales de Studio y otorgue permiso a su aplicación. Para ello, realice una solicitud GET al punto final de autorización con los siguientes parámetros.
Punto final de autorización
https://api.bluebeam.com/oauth2/authorize
Parámetros de solicitud
Los parámetros deben pasarse en una cadena de consulta.
|
Nombre |
Descripción |
|---|---|
|
|
Debe configurarse en |
|
|
ID de cliente recibido durante el proceso de registro de la aplicación (ver Mis aplicaciones) |
|
|
URI de redirección especificado durante el proceso de registro de la aplicación (ver Mis aplicaciones) |
|
|
Solo aplicable a puntos finales de Studio. Consulte la tabla a continuación para obtener una lista de los alcances de los puntos finales de Studio (separados por espacios). |
|
|
Cadena aleatoria generada por su aplicación. Studio devolverá este estado en una devolución de llamada a su |
Ámbitos para los puntos finales de Studio
|
Nombre del alcance |
Descripción |
|---|---|
|
|
Acceso de solo lectura a los proyectos de Studio y sesiones de Studio de un usuario para generar informes |
|
|
Acceso completo a los Proyectos de Studio y Sesiones de Studio propiedad del usuario |
|
|
Acceda a trabajos automatizados en proyectos de Studio |
|
|
Solicitar este ámbito para recibir un refresh_token |
Tokens de actualización
Asegúrese de solicitar el alcance 'offline_access' en su solicitud para recibir un refresh_token. Consulte más información sobre refresh_tokens en el paso 4, a continuación.
Al elegir los alcances, tenga en cuenta a qué datos necesita acceder su aplicación. Para minimizar el riesgo de seguridad, solicite los alcances mínimos necesarios.
Ejemplo de solicitud
GET https://api.bluebeam.com/oauth2/authorize?response_type=code&client_id=b5f9fc7c-60dd-469f-a21e-3f4a7ceb874b&redirect_uri=http://myserver.com&scope=full_prime offline_access jobs&state=myteststate
Experiencia del usuario
Los usuarios serán dirigidos a la página de inicio de sesión de Bluebeam.
Después de iniciar sesión, el usuario puede seleccionar Permitir acceso para otorgarle a su aplicación acceso a sus datos.
Si el usuario concede acceso a su aplicación seleccionando Permitir acceso, recibirá una devolución de llamada a la URL especificada por redirect_uri en su solicitud original. Si la devolución de llamada es exitosa, incluirá un code de autorización que deberá intercambiar por un access_token. Asegúrese de validar que el state en la respuesta coincida con el estado que envió en la solicitud original. Si se ha producido un error, recibirás la redirección con el parámetro error .
Parámetros de respuesta
Los parámetros se reciben como parte de la cadena de consulta.
|
Nombre |
Descripción |
|---|---|
|
|
Código de autorización temporal que debe intercambiarse por un |
|
|
Cadena aleatoria generada por su aplicación. Bluebeam devolverá este estado en una devolución de llamada a su |
|
|
Este campo contiene un código de error si falla la solicitud de autorización. Consulte Códigos de respuesta HTML comunes para errores de autorización y autenticación. |
Ejemplo de respuesta
https://www.myserver.com/?code=acf3cabd-08c1-44db-88a9-4f785ec7c6ec&state=myteststate
Asegúrese de que el código de autorización no sea visible para el usuario como parte del proceso de redirección.
El código de autorización solo es válido por 5 minutos. Consulte Vencimiento del token para obtener una lista de duraciones de códigos y tokens.
Ahora que has recibido el code de autorización, el siguiente paso es cambiarlo por un access_token de Bluebeam. Para hacer esto, realice una solicitud POST al punto final del token con los parámetros a continuación.
Punto final de token
https://api.bluebeam.com/oauth2/token
Parámetros de solicitud
Los parámetros deben estar codificados en formato.
|
Nombre |
Descripción |
|---|---|
|
|
Debe establecerse en |
|
|
Código de autorización devuelto en el paso anterior |
|
|
ID de cliente recibido durante el proceso de registro de la aplicación (ver Mis aplicaciones) |
|
|
Secreto del cliente recibido durante el proceso de registro de la aplicación (ver Mis aplicaciones) |
|
|
URI de redirección especificado durante el proceso de registro de la aplicación (ver Mis aplicaciones) |
|
|
Incluir ámbitos separados por espacios |
Ejemplo de cURL
curl [https://api.bluebeam.com/oauth2/token](https://api.bluebeam.com/oauth2/token) \
-d grant_type=authorization_code \
-d code={code returned from previous step} \
-d redirect_uri={your redirect_uri} \
-d client_id={your client_id} \
-d client_secret={your client_secret} \
-d scope= offline_access {your requested scopes} \
-X POST
Ejemplo de respuesta
{
"token_type":"Bearer",
"expires_in":3600,
"access_token":"eyJraWQiOiIybEczWnV2Q1pHRDFQX0FYclk4U0YyVVdmU2x3WHFpNWxZcUFzaHc4M05rIiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULjJ0Ml9nQWtxc2RvcDFWcWR1ajdLVUZwbXdNT1ZvU1VxcmZWVm5TOUZuMU0iLCJpc3MiOiJodHRwczovL3NpZ25pbi5ibHVlYmVhbS5jb20vb2F1dGgyL2F1c2JlcGh2azBlYkk3T09UNHg3IiwiYXVkIjoiYXBpOi8vYmItYWNtIiwiaWF0IjoxNzA4OTcwMzM2LCJleHAiOjE3MDg5NzM5MzYsImNpZCI6IjBvYWc2aGFjYWhnRUtqM0loNHg3IiwidWlkIjoiMDB1YngyeThtMDlwelVKRms0eDciLCJzY3AiOlsiZnVsbF9wcmltZSJdLCJhdXRoX3RpbWUiOjE3MDg5NzAzMTcsInN1YiI6InRvcnlhZGFtc0BwbS5tZSIsImJiaWQiOiJkNzE3MGZmYy03ZjlmLTQxZjYtOTY2ZS0xOTg1NTJlNzQwOTAifQ.S8m-cIfq8m19GtJ67skC8WM4bMWvJbAAr74A7g3HrUmH66M1_MN4MaDWjgcYjNFOI1zWsiZ5qm1HODLYY92lgUfzGuiYnkvpiJEKBtIUzLec2E2uEGE5HuW6FbyiX_SdGnSKeHlTr_FfiWGcpTYF816rI6q72kFm2J_3pKA-z_6REkNhI7qouRDRIHqT88tOE9KcjrF8_HsRAuixYAOlcGoVq3rvupvNVVaekoLyGiGWovXdJ-Wrx-1pKo0r7px2_Y8ew9OWEgYCX0u8pQvvPB6HAfF8dNCGTz_jFw9MbItu70rIniDoycILZKNxOcdKTLsCK7AC5doBcg9dV0OrHQ",
"scope":"full_user offline_access",
"refresh_token":"f5Mj16b7eVXwlY3Axc7TH2oEG_FPV1BrY05ht0uin6B"
}
Parámetros de respuesta
|
Nombre |
Descripción |
|---|---|
|
|
Este siempre será "Bearer" |
|
|
Tiempo, en segundos, hasta que el token expire |
|
|
Token portador utilizado para realizar solicitudes en nombre del usuario |
|
|
Se puede canjear por un nuevo access_token y refresh_token sin necesidad de que el usuario vuelva a iniciar sesión |
|
|
Lista separada por espacios de los ámbitos solicitados |
Una vez que haya recibido un access_token, puede usarlo para acceder a la API. Para utilizar un access_token, inclúyalo en el encabezado de autorización:
Authorization: Bearer {a valid access_token}
Al enviar el encabezado de autorización, asegúrese de que la "B" en "Bearer" esté en mayúscula. Si "Portador" no está en mayúscula, recibirá un error.
Tokens de acceso
Un access_token es la cadena real que le permite realizar solicitudes en nombre del usuario. Cada solicitud a la API de Bluebeam debe incluir un access_token válido.
Cada access_token es válido por 60 minutos. Una vez que expira un access_token , se puede emitir un nuevo access_token sin necesidad de que el usuario inicie sesión nuevamente intercambiando un refresh_token válido.
Tokens de actualización
El propósito de los tokens de actualización
Los tokens de actualización son una forma conveniente y segura de realizar solicitudes autenticadas a la API de Bluebeam sin requerir que los usuarios inicien sesión para cada solicitud.
Los tokens de actualización siempre se intercambian por 1) un token de acceso que dura 1 hora y 2) un nuevo token de actualización que seguirá siendo válido siempre que se utilice al menos una vez cada 7 días.
En teoría, una vez que un usuario otorga acceso manualmente en el Paso 1, puede intercambiar continuamente tokens de actualización válidos por tokens de acceso para que el usuario nunca tenga que autorizarlo manualmente nuevamente, siempre que intercambie tokens de actualización al menos una vez cada 7 días.
Para obtener su primer refresh_token, le recomendamos solicitar el ámbito offline_access en el Paso 1, de modo que también reciba un refresh_token.
Cambie su refresh_token por un nuevo access_token dentro de los 3600 segundos de obtener el último access_token. Cuando intercambias un refresh_token por un access_token, se te emite un nuevo refresh_token .
A diferencia del access_token, que expira después de 1 hora, un refresh_token permanece válido indefinidamente, siempre que se utilice al menos una vez cada 7 días. Un refresh_token dejará de ser válido si no se utiliza en un plazo de 7 días.
Guarde el refresh_token cifrado y en un lugar seguro. Si se pierde o caduca un refresh_token , deberá solicitar a los usuarios que lo autoricen nuevamente desde el comienzo del flujo OAuth.
Para intercambiar un refresh_token por un nuevo access_token y refresh_token, realice una solicitud POST al punto final del Token:
Punto final de token
https://api.bluebeam.com/oauth2/token
En el encabezado, incluya una cadena codificada en base64 de "{your client_id}:{your client_scret}"; Nota que los dos puntos deben estar presentes sin Espacios. Vea el ejemplo a continuación.
Parámetros de solicitud
Los parámetros deben estar codificados en formato.
|
Nombre |
Descripción |
|---|---|
|
|
Debe configurarse en |
|
|
Debe establecerse en el valor devuelto durante la llamada de autorización |
Ejemplo de cURL
curl [https://api.bluebeam.com/oauth2/token](https://api.bluebeam.com/oauth2/token) \
-H Content-Type: application/x-www-form-urlencoded \
-H Authorization: Basic {base64 encoded string of client_id:client_secret} \
-d grant_type=refresh_token \
-d refresh_token={your refresh_token} \
-X POST
Trate el refresh_token como una contraseña. Debe almacenarse en estado cifrado y en un lugar seguro.
Revocación de tokens de actualización
Los tokens de actualización se pueden revocar. Cuando se revoca un refresh_token, los usuarios deberán volver a autorizarse después de que expire el access_token actual.
Caducidad del token
-
Los códigos de autorización caducan después de 5 minutos.
-
Los tokens de acceso expiran después de 60 minutos.
-
Los tokens de actualización caducan si no se utilizan al menos una vez cada 7 días.
Errores de autorización y autenticación
Háganos saber qué tipo de errores recibe y podremos Ayuda a solucionarlos.
Códigos de respuesta HTML comunes
|
Código HTTP |
Mensaje |
Definición |
|---|---|---|
|
200 |
Aceptar |
La solicitud fue exitosa. |
|
201 |
Creado |
La solicitud tuvo éxito y resultó en la creación de nuevos recursos. |
|
204 |
Sin contenido |
El servidor cumplió con la solicitud y no necesita devolver un cuerpo de entidad. |
|
400 |
Solicitud incorrecta |
No se pudo entender la solicitud debido a una sintaxis incorrecta. |
|
401 |
No autorizado |
La solicitud requiere autenticación del usuario. Si recibió esto después de pasar un access_token, intente obtener un nuevo access_token. Si aún recibes un 401, revisa los alcances. Si continúa recibiendo un 401, comuníquese con el soporte en integrations@bluebeam.com. |
|
403 |
Prohibido |
El servidor entendió la solicitud, pero se niega a cumplirla. |
|
404 |
No encontrado |
El servidor no ha encontrado nada que coincida con la URI de la solicitud. |
|
409 |
Conflicto |
La solicitud no se pudo completar debido a un conflicto con el estado actual del recurso. |
Ver también:
Recursos
Revu 21
Developer Portal
Developer Portal
