Konfiguracja autoryzacji dla Webhooks jest potrzebna, aby zapewnić bezpieczeństwo oraz potwierdzić autentyczność żądań wysyłanych na serwer.
Webhooks umożliwiają aplikacjom internetowym automatyczne otrzymywanie powiadomień od innych aplikacji internetowych, gdy występują określone zdarzenia. Jednakże oznacza to również, że osoby nieuprawnione mogą próbować wykorzystać Webhooks do wysyłania niepożądanych żądań, które mogą zaszkodzić lub zakłócić działanie serwera.
Konfiguracja autoryzacji dla Webhooks pozwala serwerowi sprawdzić, czy żądania pochodzą z zaufanego źródła, które ma prawo je wysyłać. Osiąga się to poprzez zastosowanie różnych metod uwierzytelniania i autoryzacji.
Istnieje kilka rodzajów autoryzacji dla Webhooks, które zapewniają bezpieczeństwo oraz ochronę przed niepożądanymi żądaniami.
Omówmy te, które dostępne są w naszym systemie.
Basic Authentication
Jest to metoda uwierzytelniania, która wykorzystuje login i hasło do autoryzacji żądań. Aplikacja internetowa powinna przesyłać login i hasło w nagłówku żądania, który następnie jest weryfikowany na serwerze.
Aby ją aktywować, w sekcji Webhooks podczas tworzenia żądania wystarczy wybrać typ Autoryzacji.
OAuth 2.0
Jest to standardowy protokół autoryzacji, który umożliwia użytkownikom przyznanie dostępu do swoich zasobów na stronach internetowych lub w aplikacjach zewnętrznych bez podawania im swoich danych logowania. OAuth wykorzystuje tokeny dostępu do wymiany informacji pomiędzy aplikacjami internetowymi.
Aby aktywować ten typ autoryzacji, analogicznie w sekcji Webhooks podczas tworzenia żądania należy wybrać odpowiedni typ Autoryzacji
oraz uzupełnić następujące pola:
Nazwa tokena – dowolna nazwa tokena.
Callback URL – adres URL, na który serwis wysyła odpowiedź po zakończeniu procedury autoryzacji. Służy on do przekazania tokena dostępu oraz innych parametrów niezbędnych do dalszej pracy z API.
Podany przez Państwa Callback URL musi dokładnie odpowiadać adresowi wskazanemu podczas rejestracji aplikacji.
Auth URL – adres URL, na który użytkownik jest kierowany w celu rozpoczęcia procedury autoryzacji w aplikacji lub na stronie. Na tej stronie użytkownik może wprowadzić swoje dane logowania i potwierdzić zgodę na dostęp do danych w serwisie dostawcy.
Access token URL – adres URL wykorzystywany podczas uwierzytelniania w celu uzyskania tokena dostępu do API. Gdy aplikacja żąda dostępu do chronionych zasobów, przekazuje swój identyfikator i klucz tajny do serwera uwierzytelniającego, który zwraca token dostępu pod wskazany Access token URL. Token ten ma ograniczony czas ważności i służy do autoryzacji żądań do API serwisu dostawcy.
Client ID (identyfikator klienta) – unikalny identyfikator przypisany aplikacji podczas rejestracji w serwisie dostawcy. Używany jest do identyfikacji aplikacji podczas żądania dostępu do API oraz uzyskiwania tokena dostępu.
Client Secret (tajny klucz klienta) – tajny klucz przypisany aplikacji podczas rejestracji w serwisie dostawcy w celu korzystania z jego API. Wykorzystywany jest w połączeniu z Client ID do uwierzytelnienia aplikacji i uzyskania tokena dostępu.
Scope – parametr wykorzystywany przy uwierzytelnianiu, określający, do jakich zasobów API aplikacja może uzyskać dostęp. Wskazywany jest podczas żądania dostępu do chronionych zasobów i definiuje poziom uprawnień aplikacji. Na przykład scope może wskazywać dostęp wyłącznie do określonych typów danych albo dostęp tylko do odczytu, bez możliwości zapisu.
W jaki sposób przekazać klucze dostępu – przy żądaniu o uzyskanie access_token serwis, w którym Państwo przechodzą autoryzację, może wymagać przekazania client_secret jako parametru w treści żądania lub w postaci nagłówka Basic. Klucz pobierany jest przez Ringostat z Państwa systemu zewnętrznego.
Przykład gotowego wypełnionego bloku z danymi autoryzacyjnymi: