Verificatiehandleiding
Verzoeken bij alle Bluebeam API-eindpunten moeten worden geauthenticeerd. Apps maken verbinding met Bluebeam via OAuth 2.0. In deze handleiding leest u hoe u een access_token kunt verkrijgen waarmee u namens een gebruiker kunt authenticeren in uw app.
Voordat u met het authenticatieproces begint, moet u het volgende doen:
-
Registreer uw app
-
Geef een omleidings-URI op
-
Bewaar uw client-ID en geheim
Als u bovenstaande nog niet hebt gedaan, ga dan naar de pagina Aan de slag in de Bluebeam Developer Portal voor meer informatie.
Er zijn regiospecifieke basis-URL's die Toepassen op alle eindpunten:
- VS: https://api.bluebeam.com
- DU: https://api.bluebeamstudio.de
- AU: https://api.bluebeamstudio.com.au
- UK: https://api.bluebeamstudio.co.uk
- SE: https://api.bluebeamstudio.se
Bijvoorbeeld: https://api.bluebeam.com/publicapi/v1/sessions in de VS zou https://api.bluebeamstudio.com.au/publicapi/v1/sessions in Australië zijn.
Autorisatiecodestroom
Gebruik verificatie met autorisatiecode alleen als uw app een geheim mag bewaren (bijvoorbeeld als de app draait op een webserver die u beheert). Zorg ervoor dat u de client_secret behandelt zoals u een wachtwoord behandelt.
De eerste stap is het aanvragen van gebruikersautorisatie voor uw app. U stuurt de gebruiker door naar het autorisatie-eindpunt, waar hij of zij wordt gevraagd zich aan te melden met zijn of haar Studio-inloggegevens en toestemming te verlenen voor uw app. Om dit te doen, dient u een GET -aanvraag in bij het Autorisatie-eindpunt met de volgende parameters.
Autorisatie-eindpunt
https://api.bluebeam.com/oauth2/authorize
Aanvraagparameters
Parameters moeten worden doorgegeven in een queryreeks.
|
Naam |
Beschrijving |
|---|---|
|
|
Moet worden ingesteld op |
|
|
Client-ID ontvangen tijdens het app-registratieproces (zie Mijn apps) |
|
|
Omleidings-URI opgegeven tijdens het app-registratieproces (zie Mijn apps) |
|
|
Alleen van toepassing op Studio-eindpunten. Zie de onderstaande tabel voor een lijst met Studio-eindpuntbereiken (gescheiden door spaties). |
|
|
Willekeurige string gegenereerd door uw app. Studio retourneert deze status in een callback naar uw |
Scopes voor Studio-eindpunten
|
Scopenaam |
Beschrijving |
|---|---|
|
|
Alleen-lezen toegang tot de Studio-projecten en Studio-sessies van een gebruiker voor rapportage |
|
|
Volledige toegang tot door de gebruiker beheerde Studio-projecten en Studio-sessies |
|
|
Toegang tot geautomatiseerde taken in Studio-projecten |
|
|
Vraag deze scope om een refresh_token te ontvangen |
Tokens vernieuwen
Zorg ervoor dat u de scope 'offline_access' in uw verzoek opgeeft om een refresh_token terug te ontvangen. Meer over refresh_tokens vindt u in stap 4 hieronder.
Houd bij het kiezen van scopes rekening met de gegevens waartoe uw app toegang moet hebben. Om het Beveiligingrisico tot een minimum te beperken, vraagt u om de minimaal noodzakelijke omvang.
Voorbeeldverzoek
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
Gebruikerservaring
Gebruikers worden doorgestuurd naar de Bluebeam-inlogpagina.
Nadat de gebruiker is ingelogd, kan hij of zij 'Toegang toestaan' selecteren om uw app toegang te geven tot zijn of haar gegevens.
Als de gebruiker toegang verleent tot uw app door Toegang toestaan te selecteren, ontvangt u een callback naar de URL die is opgegeven door redirect_uri in uw oorspronkelijke aanvraag. Als de callback succesvol is, bevat deze een code die u moet inwisselen voor een access_token. Controleer of de state in het antwoord overeenkomt met de staat die u in het oorspronkelijke verzoek hebt opgegeven. Als er een fout is opgetreden, ontvangt u de omleiding met error .
Responsparameters
Parameters worden ontvangen als onderdeel van de queryreeks.
|
Naam |
Beschrijving |
|---|---|
|
|
Tijdelijke autorisatiecode die moet worden ingewisseld voor een |
|
|
Willekeurige string gegenereerd door uw app. Bluebeam retourneert deze status in een callback naar uw |
|
|
Dit veld bevat een foutcode als het autorisatieverzoek mislukt. Zie Algemene HTML-antwoordcodes voor autorisatie- en authenticatiefouten. |
Voorbeeldantwoord
https://www.myserver.com/?code=acf3cabd-08c1-44db-88a9-4f785ec7c6ec&state=myteststate
Zorg ervoor dat de autorisatiecode niet zichtbaar is voor de gebruiker als onderdeel van het omleidingsproces.
De autorisatiecode is slechts 5 minuten geldig. Zie Tokenvervaldatum voor een lijst met code- en tokenduur.
Nu u de code hebt ontvangen, is de volgende stap om deze in te wisselen voor een access_token van Bluebeam. Om dit te doen, dient u een POST aanvraag in bij het Token-eindpunt met de onderstaande parameters.
Token-eindpunt
https://api.bluebeam.com/oauth2/token
Aanvraagparameters
Parameters moeten formuliergecodeerd zijn.
|
Naam |
Beschrijving |
|---|---|
|
|
Moet worden ingesteld op |
|
|
Autorisatiecode geretourneerd in de vorige stap |
|
|
Client-ID ontvangen tijdens het app-registratieproces (zie Mijn apps) |
|
|
Clientgeheim ontvangen tijdens het registratieproces van de app (zie Mijn apps) |
|
|
Omleidings-URI opgegeven tijdens het app-registratieproces (zie Mijn apps) |
|
|
Inclusief door spaties gescheiden scopes |
cURL-voorbeeld
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
Voorbeeldantwoord
{
"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"
}
Responsparameters
|
Naam |
Beschrijving |
|---|---|
|
|
Dit zal altijd "Drager" zijn |
|
|
Tijd, in seconden, totdat het token verloopt |
|
|
Dragertoken dat wordt gebruikt om namens de gebruiker verzoeken te doen |
|
|
Kan worden ingewisseld voor een nieuw access_token en refresh_token zonder dat de gebruiker zich opnieuw hoeft aan te melden |
|
|
Door spaties gescheiden lijst met aangevraagde scopes |
Nadat u een access_token hebt ontvangen, kunt u deze gebruiken om toegang te krijgen tot de API. Om een access_token te gebruiken, neemt u deze op in de Authorization-header:
Authorization: Bearer {a valid access_token}
Zorg ervoor dat de "B" in "Bearer" een hoofdletter is wanneer u de autorisatieheader verzendt. Als "Bearer" niet met een hoofdletter wordt geschreven, krijgt u een foutmelding.
Toegangstokens
Een access_token is de daadwerkelijke tekenreeks waarmee u namens de gebruiker verzoeken kunt doen. Elk verzoek aan de Bluebeam API moet een geldige access_token bevatten.
Elk access_token is 60 minuten geldig. Nadat een access_token verloopt, kan een nieuw access_token worden uitgegeven zonder dat de gebruiker zich opnieuw hoeft aan te melden door een geldig refresh_token uit te wisselen.
Tokens vernieuwen
Het doel van vernieuwingstokens
Vernieuwingstokens zijn een handige en veilige manier om geverifieerde verzoeken aan de Bluebeam API te doen, zonder dat gebruikers zich voor elk verzoek hoeven aan te melden. {
Vernieuwingstokens worden altijd ingewisseld voor 1) een toegangstoken die 1 uur geldig is en 2) een nieuw vernieuwstoken dat geldig blijft zolang het minimaal één keer per 7 dagen wordt gebruikt.
In theorie kunt u, zodra een gebruiker in stap 1 handmatig toegang verleent, geldige vernieuwingstokens blijven uitwisselen voor toegangstokens. De gebruiker hoeft dan nooit meer handmatig toestemming te geven, op voorwaarde dat u vernieuwingstokens minimaal één keer per zeven dagen uitwisselt.
Om uw eerste refresh_token te krijgen, raden wij u aan om in stap 1 de offline_access scope aan te vragen, zodat u ook een refresh_token ontvangt.
Ruil uw refresh_token binnen 3600 seconden na het verkrijgen van de laatste access_token om voor een nieuwe access_token. Wanneer u een refresh_token inwisselt voor een access_token, wordt er een nieuw refresh_token aan u uitgegeven.
In tegenstelling tot de access_token, die na 1 uur verloopt, blijft een refresh_token onbeperkt geldig, op voorwaarde dat deze minimaal één keer per 7 dagen wordt gebruikt. Een refresh_token wordt ongeldig als deze niet binnen 7 dagen wordt gebruikt.
Bewaar de refresh_token gecodeerd en op een veilige plaats. Als een refresh_token verloren gaat of is verlopen, moet u gebruikers vanaf het begin van de OAuth-stroom opnieuw vragen om autorisatie.
Om een refresh_token te ruilen voor een nieuw access_token en refresh_token, dient u een POST verzoek in bij het token-eindpunt:
Token-eindpunt
https://api.bluebeam.com/oauth2/token
Neem in de header een base64-gecodeerde tekenreeks op met de tekst "{your client_id}:{your client_scret}". Opmerking: de dubbele punt mag niet worden gebruikt, er mogen geen Ruimtes in staan. Zie onderstaand voorbeeld.
Aanvraagparameters
Parameters moeten formuliergecodeerd zijn.
|
Naam |
Beschrijving |
|---|---|
|
|
Moet worden ingesteld op |
|
|
Moet worden ingesteld op de waarde die wordt geretourneerd tijdens de autorisatieaanroep |
cURL-voorbeeld
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
Behandel de refresh_token als een wachtwoord. Deze moeten versleuteld en op een veilige plaats worden opgeslagen.
Vernieuwingstokens intrekken
Vernieuwingstokens kunnen worden ingetrokken. Wanneer een refresh_token wordt ingetrokken, moeten gebruikers opnieuw autoriseren nadat de huidige access_token verloopt.
Token-vervaldatum
-
Autorisatiecodes verlopen na 5 minuten.
-
Toegangstokens verlopen na 60 minuten.
-
Vernieuwingstokens verlopen als ze niet minimaal één keer per 7 dagen worden gebruikt.
Autorisatie- en authenticatiefouten
Laat ons weten welke fouten u ondervindt, dan helpen wij u bij het oplossen ervan.
Veelvoorkomende HTML-responscodes
|
HTTP-code |
Bericht |
Definitie |
|---|---|---|
|
200 |
OK |
Het verzoek is gelukt. |
|
201 |
Aangemaakt |
Het verzoek werd goedgekeurd en resulteerde in de creatie van nieuwe bronnen. |
|
204 |
Geen inhoud |
De server heeft het verzoek uitgevoerd en hoeft geen entity-body te retourneren. |
|
400 |
Fout verzoek |
Het verzoek kon niet worden begrepen vanwege een onjuiste syntaxis. |
|
401 |
Ongeautoriseerd |
Voor het verzoek is gebruikersauthenticatie vereist. Als u dit ontvangt nadat u een toegangstoken hebt doorgegeven, probeer dan een nieuwe toegangstoken te verkrijgen. Als u nog steeds een 401 krijgt, controleer dan de reikwijdte. Als u nog steeds een 401-melding krijgt, neem dan contact op met de ondersteuning via integrations@bluebeam.com. |
|
403 |
Verboden |
De server heeft het verzoek begrepen, maar weigert het uit te voeren. |
|
404 |
Niet gevonden |
De server heeft geen resultaten gevonden die overeenkomen met de Request-URI. |
|
409 |
Conflict |
Het verzoek kon niet worden voltooid vanwege een conflict met de huidige status van de resource. |
Zie ook:
Hulpbronnen
Revu 21
Developer Portal
Developer Portal
