Przewodnik po uwierzytelnianiu
Żądania do wszystkich punktów końcowych API Bluebeam muszą być uwierzytelnione. Aplikacje łączą się z Bluebeam za pomocą OAuth 2.0. Ten przewodnik pokazuje, jak uzyskać token dostępu w celu uwierzytelnienia w imieniu użytkownika w Twojej aplikacji.
Przed rozpoczęciem procesu uwierzytelniania, upewnij się, że wykonasz następujące czynności:
-
Zarejestruj aplikację
-
Przekaż identyfikator URI przekierowania
-
Zapisz swój identyfikator klienta i klucz tajny
Jeśli tego jeszcze nie zrobiłeś, odwiedź stronę Rozpocznij w Bluebeam Developer Portal, aby dowiedzieć się więcej.
Istnieją podstawowe adresy URL specyficzne dla regionu, które mają zastosowanie do wszystkich punktów końcowych:
-
Wielka Brytania: https://api.bluebeamstudio.co.uk
Na przykład, https://api.bluebeam.com/publicapi/v1/sessions w USA byłby https://api.bluebeamstudio.com.au/publicapi/v1/sessions w Australii.
Przepływ kodu autoryzacji
Używaj uwierzytelniania kodem autoryzacji tylko wtedy, gdy Twoja aplikacja może przechowywać dane w tajemnicy (na przykład, jeśli aplikacja działa na kontrolowanym przez Ciebie serwerze WWW). Upewnij się, że traktujesz client_secret tak jak traktowałbyś hasło.
Pierwszym krokiem jest zażądanie autoryzacji użytkownika dla Twojej aplikacji. Przekierujesz użytkownika do punktu końcowego autoryzacji, gdzie zostanie poproszony o zalogowanie się za pomocą danych uwierzytelniających Studio i przyznanie uprawnień Twojej Aplikacji. Aby to zrobić, wyślij żądanie GET do punktu końcowego autoryzacji z następującymi parametrami.
Punkt końcowy autoryzacji
https://api.bluebeam.com/oauth2/authorize
Parametry żądania
Parametry muszą być przekazane w ciągu zapytania.
|
Nazwa |
Opis |
|---|---|
|
|
Musi być ustawione na |
|
|
Identyfikator klienta otrzymany podczas procesu rejestracji aplikacji (zobacz Moje aplikacje) |
|
|
Identyfikator URI przekierowania określony podczas procesu rejestracji aplikacji (zobacz Moje aplikacje) |
|
|
Dotyczy tylko punktów końcowych Studio. Poniższa tabela zawiera listę zakresów punktów końcowych Studio (rozdzielonych spacjami). |
|
|
Losowy ciąg wygenerowany przez Twoją aplikację. Studio zwróci ten stan w wywołaniu zwrotnym do Twojego |
Zakresy punktów końcowych Studio
|
Nazwa zakresu |
Opis |
|---|---|
|
|
Dostęp tylko do odczytu do projektów Studio i sesji Studio użytkownika na potrzeby raportowania |
|
|
Pełny dostęp do należących do użytkownika Projektów Studio i Sesji Studio |
|
|
Uzyskaj dostęp do automatycznych zadań w projektach Studio |
|
|
Poproś o ten zakres, aby otrzymać refresh_token |
Odśwież tokeny
Upewnij się, że zażądasz zakresu „offline_access” w swoim żądaniu, aby otrzymać zwrotnie refresh_token. Więcej o refresh_tokens znajdziesz w Kroku 4, poniżej.
Przy wyborze zakresów weź pod uwagę, do jakich danych potrzebuje dostępu Twoja aplikacja. Aby zminimalizować ryzyko zabezpieczeń, prosimy o zażądanie niezbędnych minimalnych zakresów.
Przykładowe żądanie
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
Środowisko użytkownika
Użytkownicy zostaną przekierowani do strony logowania Bluebeam.
Po zalogowaniu użytkownik może wybrać Zezwól na dostęp, aby udzielić Twojej aplikacji dostępu do swoich danych.
Jeśli użytkownik udzieli dostępu do Twojej aplikacji, wybierając Zezwól na dostęp, otrzymasz wywołanie zwrotne na adres URL określony przez redirect_uri w Twoim oryginalnym żądaniu. Jeśli wywołanie zwrotne zakończy się pomyślnie, będzie ono zawierać kod autoryzacji, który należy wymienić na token dostępu. Upewnij się, że stan w odpowiedzi odpowiada stanowi, który przesłano w pierwotnym żądaniu. Jeśli wystąpił błąd, otrzymasz przekierowanie z parametrem error.
Parametry odpowiedzi
Parametry są odbierane jako część ciągu zapytania.
|
Nazwa |
Opis |
|---|---|
|
|
Tymczasowy kod autoryzacji, który musi zostać wymieniony na |
|
|
Losowy ciąg wygenerowany przez Twoją aplikację. Bluebeam zwróci ten stan w wywołaniu zwrotnym do Twojego |
|
|
To pole zawiera kod błędu, jeżeli żądanie autoryzacji nie powiedzie się. Zobacz Typowe kody odpowiedzi HTML dla błędów autoryzacji i uwierzytelniania. |
Przykładowa odpowiedź
https://www.myserver.com/?code=acf3cabd-08c1-44db-88a9-4f785ec7c6ec&state=myteststate
Upewnij się, że kod autoryzacji nie jest widoczny dla użytkownika w ramach procesu przekierowania.
Kod autoryzacji jest ważny tylko przez 5 minut. Zobacz Wygaśnięcie tokenu, aby zapoznać się z listą czasów trwania kodu i tokenu.
Teraz, gdy masz już kod autoryzacji, następnym krokiem jest wymiana go na token dostępu z Bluebeam. Aby to zrobić, wykonaj żądanie POST do Punktu końcowego tokenu z poniższymi parametrami.
Punkt końcowy tokenu
https://api.bluebeam.com/oauth2/token
Parametry żądania
Parametry muszą być zakodowane jako formularz.
|
Nazwa |
Opis |
|---|---|
|
|
Musi być ustawione na |
|
|
Kod autoryzacji zwrócony w poprzednim kroku |
|
|
Identyfikator klienta otrzymany podczas procesu rejestracji aplikacji (zobacz Moje aplikacje) |
|
|
Klucz tajny klienta otrzymany podczas procesu rejestracji aplikacji (zobacz Moje aplikacje) |
|
|
Identyfikator URI przekierowania określony podczas procesu rejestracji aplikacji (zobacz Moje aplikacje) |
|
|
Uwzględnij zakresy rozdzielone spacjami |
przykład 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
Przykładowa odpowiedź
{
"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"
}
Parametry odpowiedzi
|
Nazwa |
Opis |
|---|---|
|
|
To zawsze będzie „Bearer” |
|
|
Czas (w sekundach) do wygaśnięcia tokenu |
|
|
Token okaziciela używany do składania żądań w imieniu użytkownika |
|
|
Może zostać wymieniony na nowy access_token i refresh_token bez konieczności ponownego zalogowania się przez użytkownika. |
|
|
Lista żądanych zakresów rozdzielona spacjami |
Po otrzymaniu access_token, możesz go użyć, aby uzyskać dostęp do interfejsu API. Aby użyć tokena `access_token`, dołącz go w nagłówku autoryzacji:
Authorization: Bearer {a valid access_token}
Podczas wysyłania nagłówka autoryzacji upewnij się, że „B” w „Bearer” jest pisane wielką literą. Jeśli „Bearer” nie będzie pisane wielką literą, otrzymasz błąd.
Tokeny dostępu
Ciąg access_token to rzeczywisty ciąg, który umożliwia przedstawianie żądań w imieniu użytkownika. Każde żądanie do Bluebeam API musi zawierać prawidłowy access_token.
Każdy access_token jest ważny przez 60 minut. Po wygaśnięciu access_token nowy access_token może zostać wydany bez konieczności ponownego logowania się użytkownika, wymieniając ważny refresh_token.
Odśwież tokeny
Cel tokenów odświeżania
Tokeny odświeżania to wygodny i bezpieczny sposób na uwierzytelnione żądania do interfejsu API Bluebeam, bez konieczności logowania się użytkowników przy każdym żądaniu.
Tokeny odświeżania są zawsze wymieniane na: 1) access_token, który jest ważny przez 1 godzinę oraz 2) nowy refresh_token, który pozostanie ważny tak długo, jak będzie używany co najmniej raz na 7 dni.
Teoretycznie, gdy użytkownik ręcznie udzieli dostępu w Kroku 1, można stale wymieniać prawidłowe tokeny odświeżania na tokeny dostępu, tak aby użytkownik nigdy więcej nie musiał ręcznie autoryzować, pod warunkiem, że wymieniasz tokeny odświeżania przynajmniej raz na 7 dni.
Aby uzyskać swój pierwszy refresh_token, zalecamy zażądanie zakresu offline_access w kroku 1, dzięki czemu otrzymasz również refresh_token.
Wymień swój refresh_token na nowy access_token w ciągu 3600 sekund od uzyskania ostatniego access_token. Podczas wymiany refresh_token na access_token, zostanie Ci wydany nowy refresh_token.
W przeciwieństwie do tokenu access_token, który wygasa po 1 godzinie, token refresh_token pozostaje ważny bezterminowo, pod warunkiem, że jest używany co najmniej raz na 7 dni. `refresh_token` stanie się niepoprawny, jeśli nie zostanie użyty w ciągu 7 dni.
Przechowuj refresh_token zaszyfrowany i w bezpiecznym miejscu. Jeśli `refresh_token` zostanie utracony lub wygaśnie, należy poprosić użytkowników o ponowną autoryzację od początku przepływu OAuth.
Aby wymienić refresh_token na nowy access_token i refresh_token, wyślij żądanie POST do punktu końcowego tokenu:
Punkt końcowy tokenu
https://api.bluebeam.com/oauth2/token
W nagłówku należy umieścić ciąg zakodowany w base64 o treści "{your client_id}:{your client_scret}" – notatka, że dwukropek musi być obecny bez spacji. Zobacz przykład poniżej.
Parametry żądania
Parametry muszą być zakodowane jako formularz.
|
Nazwa |
Opis |
|---|---|
|
|
Musi mieć ustawioną wartość |
|
|
Musi być ustawiona na wartość zwróconą podczas wywołania autoryzacji |
przykład 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
Traktuj refresh_token jak hasło. Powinien być przechowywany w zaszyfrowanym stanie i w bezpiecznym miejscu.
Odwoływanie tokenów odświeżania
Tokeny odświeżania mogą zostać odwołane. Gdy token odświeżania zostanie unieważniony, użytkownicy będą musieli ponownie autoryzować się po wygaśnięciu bieżącego tokenu dostępu.
Wygaśnięcie tokenu
-
Kody autoryzacji wygasają po 5 minutach.
-
Tokeny dostępu wygasają po 60 minutach.
-
Tokeny odświeżania wygasają, jeżeli nie są używane przynajmniej raz na 7 dni.
Błędy autoryzacji i uwierzytelniania
Poinformuj nas, jakie rodzaje błędów otrzymujesz, a my pomożemy Ci rozwiązać problem.
Typowe kody odpowiedzi HTML
|
Kod HTTP |
Komunikat |
Definicja |
|---|---|---|
|
200 |
OK |
Prośba powiodła się. |
|
201 |
Utworzono |
Żądanie powiodło się i spowodowało utworzenie nowych zasobów. |
|
204 |
Brak zawartości |
Serwer spełnił żądanie i nie musi zwracać treści encji. |
|
400 |
Złe żądanie |
Nie udało się zrozumieć żądania z powodu nieprawidłowej składni. |
|
401 |
Nieautoryzowane |
Żądanie wymaga uwierzytelnienia użytkownika. Jeśli otrzymałeś to po przekazaniu tokena dostępu, spróbuj uzyskać nowy token dostępu. Jeśli nadal otrzymujesz 401, sprawdź zakresy. Jeśli nadal otrzymujesz błąd 401, skontaktuj się z pomocą techniczną pod adresem integrations@bluebeam.com. |
|
403 |
Zabronione |
Serwer zrozumiał żądanie, ale odmawia jego spełnienia. |
|
404 |
Nie znaleziono |
Serwer nie znalazł niczego pasującego do Request-URI. |
|
409 |
Konflikt |
Nie można przetworzyć żądania z powodu konfliktu z bieżącym stanem zasobu. |
Zobacz także:
Zasoby
Revu 21
Developer Portal
Developer Portal