Autentiseringsveiledning
Forespørsler til alle Bluebeam API-endepunkter må autentiseres. Apper kobler seg til Bluebeam ved hjelp av OAuth 2.0. Denne veiledningen viser deg hvordan du får en access_token for å autentisere på vegne av en bruker i appen din.
Før du starter autentiseringsprosessen, må du sørge for å gjøre følgende:
-
Registrer appen din
-
Oppgi en omdirigerings-URI
-
Lagre klient-ID-en og hemmeligheten din
Hvis du ikke har gjort det ovennevnte, kan du gå til siden Kom i gang på Bluebeam Developer Portal for å finne ut mer.
Det finnes regionspesifikke basis-URL-er som gjelder for alle endepunkter:
For eksempel ville https://api.bluebeam.com/publicapi/v1/sessions i USA være https://api.bluebeamstudio.com.au/publicapi/v1/sessions i Australia.
Autorisasjonskodeflyt
Bruk autorisasjonskodeautentisering bare når appen din kan holde på en hemmelighet (for eksempel hvis appen kjører på en webserver du kontrollerer). Sørg for å behandle client_secret slik du ville behandlet et passord.
Det første trinnet er å be om brukerautorisasjon for appen din. Du omdirigerer brukeren til autorisasjonsendepunktet der de blir bedt om å logge inn med Studio-legitimasjonen sin og gi tillatelse til appen din. For å gjøre dette, send en GET -forespørsel til autorisasjonsendepunktet med følgende parametere.
Autorisasjonsendepunkt
https://api.bluebeam.com/oauth2/authorize
Forespørselsparametere
Parametere må sendes i en spørrestreng.
|
Navn |
Beskrivelse |
|---|---|
|
|
Må settes til |
|
|
Klient-ID mottatt under appregistreringsprosessen (se Mine apper) |
|
|
Omdirigerings-URI spesifisert under appregistreringsprosessen (se Mine apper) |
|
|
Gjelder kun for Studio-endepunkter. Se tabellen nedenfor for en liste over Studio-endepunktområder (separert med mellomrom). |
|
|
Tilfeldig streng generert av appen din. Studio vil returnere denne tilstanden i et tilbakekall til |
Omfang for Studio-endepunkter
|
Omfangsnavn |
Beskrivelse |
|---|---|
|
|
Skrivebeskyttet tilgang til en brukers Studio-prosjekter og Studio-økter for rapportering |
|
|
Full tilgang til brukereide Studio-prosjekter og Studio-økter |
|
|
Få tilgang til automatiserte jobber i Studio-prosjekter |
|
|
Be om dette omfanget for å motta en refresh_token |
Oppdater tokener
Sørg for å be om omfanget «offline_access» i forespørselen din for å motta en refresh_token tilbake. Se mer om refresh_tokens i trinn 4 nedenfor.
Når du velger omfang, bør du vurdere hvilke dataelementer appen din trenger tilgang til. For å minimere sikkerhetsrisikoen, vennligst be om minimumsomfanget som er nødvendig.
Eksempelforespørsel
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
Brukeropplevelse
Brukere blir sendt til Bluebeam-innloggingssiden.
Etter innlogging kan brukeren velge Tillat tilgang for å gi appen din tilgang til dataene sine.
Hvis brukeren gir tilgang til appen din ved å velge Tillat tilgang, vil du motta et tilbakekall til URL-en som er spesifisert av redirect_uri i den opprinnelige forespørselen. Hvis tilbakeringingen lykkes, vil den inkludere en code som du må bytte mot en access_token. Sørg for å bekrefte at state i svaret samsvarer med staten du sendte inn i den opprinnelige forespørselen. Hvis det har oppstått en feil, vil du motta omdirigeringen med error .
Responsparametere
Parametre mottas som en del av spørrestrengen.
|
Navn |
Beskrivelse |
|---|---|
|
|
Midlertidig autorisasjonskode som må byttes mot en |
|
|
Tilfeldig streng generert av appen din. Bluebeam vil returnere denne tilstanden i et tilbakekall til |
|
|
Dette feltet inneholder en feilkode hvis autorisasjonsforespørselen mislykkes. Se Vanlige HTML-svarkoder for autorisasjons- og autentiseringsfeil. |
Eksempelsvar
https://www.myserver.com/?code=acf3cabd-08c1-44db-88a9-4f785ec7c6ec&state=myteststate
Sørg for at autorisasjonskoden ikke er synlig for brukeren som en del av omdirigeringsprosessen.
Autorisasjonskoden er kun gyldig i 5 minutter. Se Utløpsdato for token for en liste over kode- og tokenvarigheter.
Nå som du har mottatt code, er neste trinn å bytte den mot en access_token fra Bluebeam. For å gjøre dette, send en POST forespørsel til token-endepunktet med parameterne nedenfor.
Token-endepunkt
https://api.bluebeam.com/oauth2/token
Forespørselsparametere
Parametre må være formkodet.
|
Navn |
Beskrivelse |
|---|---|
|
|
Må settes til |
|
|
Autorisasjonskode returnert i forrige trinn |
|
|
Klient-ID mottatt under appregistreringsprosessen (se Mine apper) |
|
|
Klienthemmelighet mottatt under appregistreringsprosessen (se Mine apper) |
|
|
Omdirigerings-URI spesifisert under appregistreringsprosessen (se Mine apper) |
|
|
Inkluder mellomromsseparerte omfang |
cURL-eksempel
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
Eksempelsvar
{
"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"
}
Responsparametere
|
Navn |
Beskrivelse |
|---|---|
|
|
Dette vil alltid være «Bærer» |
|
|
Tid, i sekunder, til tokenet utløper |
|
|
Bærertoken som brukes til å sende forespørsler på vegne av brukeren |
|
|
Kan byttes mot et nytt access_token og refresh_token uten at brukeren må logge på igjen |
|
|
Mellomromsseparert liste over forespurte omfang |
Når du har mottatt en access_token, kan du bruke den til å få tilgang til API-et. For å bruke en access_token, inkluder den i Authorization-headeren:
Authorization: Bearer {a valid access_token}
Når du sender autorisasjonshodet, må du sørge for at «B» i «Bearer» er skrevet med stor forbokstav. Hvis «Bearer» ikke er skrevet med stor forbokstav, vil du få en feilmelding.
Tilgangstokener
En access_token er selve strengen som lar deg sende forespørsler på vegne av brukeren. Alle forespørsler til Bluebeam API-et må inneholde et gyldig access_token.
Hver access_token er gyldig i 60 minutter. Etter at en access_token utløper, kan en ny access_token utstedes uten at brukeren må logge inn på nytt ved å utveksle en gyldig refresh_token.
Oppdater tokener
Formålet med oppdateringstokener
Oppdateringstokener er en praktisk og sikker måte å sende autentiserte forespørsler til Bluebeam API uten at brukerne må logge på for hver forespørsel.
Oppdateringstokener byttes alltid mot 1) en access_token som varer i 1 time og 2) en ny refresh_token som forblir gyldig så lenge den brukes minst én gang hver 7. dag.
Teoretisk sett, når en bruker manuelt gir tilgang i trinn 1, kan du kontinuerlig utveksle gyldige oppdateringstokener med tilgangstokener, slik at brukeren aldri trenger å autorisere manuelt igjen, forutsatt at du utveksler oppdateringstokener minst én gang hver 7. dag.
For å få ditt første refresh_token anbefaler vi at du ber om offline_access omfanget i trinn 1, slik at du også mottar et refresh_token.
Bytt ut refresh_token din mot en ny access_token innen 3600 sekunder etter at du har mottatt den siste access_token. Når du bytter en refresh_token mot en access_token, får du utstedt en ny refresh_token .
I motsetning til access_token, som utløper etter 1 time, forblir en refresh_token gyldig på ubestemt tid, så lenge den brukes minst én gang hver 7. dag. En refresh_token blir ugyldig hvis den ikke brukes innen 7 dager.
Oppbevar refresh_token kryptert og på et sikkert sted. Hvis en refresh_token går tapt eller er utløpt, må du be brukerne om å autorisere på nytt fra begynnelsen av OAuth-flyten.
For å bytte ut en refresh_token med en ny access_token og refresh_token, send en POST forespørsel til token-endepunktet:
Token-endepunkt
https://api.bluebeam.com/oauth2/token
Inkluder i overskriften en base64-kodet streng av "{your client_id}:{your client_scret}" – merk at kolon må være til stede uten mellomrom. Se eksemplet nedenfor.
Forespørselsparametere
Parametre må være formkodet.
|
Navn |
Beskrivelse |
|---|---|
|
|
Må settes til |
|
|
Må settes til verdien som returneres under autorisasjonskallet |
cURL-eksempel
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
Behandle refresh_token som et passord. Den bør lagres kryptert og på et sikkert sted.
Tilbakekalling av oppdateringstokener
Oppdateringstokener kan tilbakekalles. Når en refresh_token tilbakekalles, må brukerne autorisere på nytt etter at den gjeldende access_token utløper.
Tokenutløp
-
Autorisasjonskoder utløper etter 5 minutter.
-
Tilgangstokener utløper etter 60 minutter.
-
Oppdateringstokener utløper hvis de ikke brukes minst én gang hver 7. dag.
Autorisasjons- og autentiseringsfeil
Gi oss beskjed om hva slags feil du får, så kan vi hjelpe deg med å feilsøke.
Vanlige HTML-svarkoder
|
HTTP-kode |
Melding |
Definisjon |
|---|---|---|
|
200 |
Ok |
Forespørselen lyktes. |
|
201 |
Opprettet |
Forespørselen ble vellykket og resulterte i opprettelse av nye ressurser. |
|
204 |
Intet innhold |
Serveren oppfylte forespørselen og trenger ikke å returnere en entitetskropp. |
|
400 |
Ugyldig forespørsel |
Forespørselen kunne ikke forstås på grunn av feil syntaks. |
|
401 |
Uautorisert |
Forespørselen krever brukergodkjenning. Hvis du mottok dette etter at du sendte et access_token, kan du prøve å få et nytt access_token. Hvis du fortsatt mottar en 401-melding, sjekk omfanget. Hvis du fortsetter å motta en 401-melding, kan du kontakte kundestøtte på integrations@bluebeam.com. |
|
403 |
Forbudt |
Serveren forsto forespørselen, men nekter å oppfylle den. |
|
404 |
Ikke funnet |
Serveren fant ingenting som samsvarer med Request-URI-en. |
|
409 |
Konflikt |
Forespørselen kunne ikke fullføres på grunn av en konflikt med ressursens gjeldende tilstand. |
Se også:
Ressurser
Revu 21
Developer Portal
Developer Portal