Rejestracja aplikacji OAuth 2.0
Rejestracja aplikacji OAuth 2.0 w FoxIDs reprezentuje chroniony zasób API albo aplikację backendową korzystającą z uwierzytelniania między maszynami. Zarejestruj API, aby udostępnić zakresy, a Backend Application, aby uzyskiwać tokeny dostępu przy użyciu Client Credentials Grant.
Najważniejsze możliwości obejmują wielu odbiorców API w jednym tokenie dostępu, dostęp do API ograniczony zakresami, uwierzytelnianie klienta sekretami lub certyfikatami, transformację oświadczeń i wymianę tokenów.
Konfiguracja
W FoxIDs Control:
- Wybierz środowisko, w którym ma zostać zarejestrowane API lub aplikacja backendowa.
- Otwórz Applications i kliknij Add application.
- Włącz Show all options.
- Wybierz API lub Backend Application.
- Skonfiguruj aplikację i kliknij Create.

Po utworzeniu kliknij Change application, aby przejrzeć lub zmienić pełne ustawienia aplikacji. Włączaj Show advanced tylko wtedy, gdy wymagane ustawienie jest zaawansowane.
API OAuth 2.0
Wybierz API, aby zarejestrować chronione API backendowe jako zasób OAuth 2.0. Rejestracja API definiuje nazwę zasobu, zakresy i odbiorcę używanego w tokenach dostępu.
Poniższy przykład rejestruje API Customers:
- Wpisz
Customersjako Name. - Wpisz
customers-apijako Resource name. - Dodaj zakresy
readiwrite. - Kliknij Create.

Pełne wartości zakresów to customers-api:read i customers-api:write. Klient żąda jednej lub obu wartości w punkcie końcowym tokenów, a uzyskany token dostępu zawiera customers-api jako odbiorcę.
API musi zweryfikować wystawcę tokenu dostępu, odbiorcę, czas ważności i wymagany zakres. Dostęp aplikacji wywołującej jest przyznawany osobno przez dodanie zasobu API i zakresów, o które może ona żądać.
Aplikacja backendowa i Client Credentials Grant
Wybierz Backend Application dla usługi, demona, zaplanowanego zadania lub procesu działającego w tle. FoxIDs tworzy ją jako klienta poufnego, który bez udziału użytkownika żąda tokenu dostępu przy użyciu Client Credentials Grant.
Poniższy przykład tworzy usługę wywołującą:
- Wpisz
Backend servicejako Name. - Wpisz
backend-servicejako Client ID albo pozwól FoxIDs wygenerować tę wartość. - Skopiuj wygenerowany Client secret przed opuszczeniem wyniku tworzenia. Pełny wygenerowany sekret jest widoczny tylko podczas tworzenia.
- Kliknij Create.

Przyznawanie dostępu do API
Po utworzeniu aplikacji backendowej kliknij Change application i skonfiguruj Resource and scopes na karcie OAuth 2.0 Client:
- Pozostaw opcję Default resource 'backend-service' for the application itself niezaznaczoną, ponieważ ten klient nie działa jako własne API.
- Kliknij Add Resource and scopes.
- Wpisz
customers-apijako Resource. - Dodaj zakresy
readiwrite. - Kliknij Update.

Aplikacja backendowa może teraz żądać customers-api:read, customers-api:write lub obu zakresów. Zakresy żądane przez klienta są sprawdzane względem zakresów udostępnionych przez rejestrację API.
Tokeny dostępu mogą zawierać wielu odbiorców, a tym samym przyznawać dostęp do wielu API zarejestrowanych w FoxIDs jako zasoby OAuth 2.0. Dodaj do aplikacji backendowej każdy wymagany zasób i dozwolone dla niego zakresy.
Uwierzytelnianie klienta
Domyślną metodą uwierzytelniania klienta w punkcie końcowym tokenów jest client secret post. Aby ją zmienić, kliknij Change application, włącz Show advanced i wybierz:
client secret basic, aby wysyłać identyfikator klienta i sekret za pomocą uwierzytelniania HTTP Basic.client secret post, aby wysyłać identyfikator klienta i sekret w treści żądania tokenu.private key JWT, aby uwierzytelniać się podpisanym potwierdzeniem klienta.

Można skonfigurować maksymalnie 10 sekretów i 4 certyfikaty klienta, aby umożliwić rotację poświadczeń. Przechowuj sekrety i klucze prywatne bezpiecznie i nie zapisuj ich w kodzie źródłowym ani w logach.
Poniższe żądanie używa domyślnej metody client secret post, aby uzyskać token dostępu do API Customers:
POST https://foxids.com/tenant-x/environment-y/backend-service(*)/oauth/token HTTP/1.1
Host: foxids.com
Content-Type: application/x-www-form-urlencoded
client_id=backend-service
&client_secret=<client-secret>
&grant_type=client_credentials
&scope=customers-api%3Aread
Odpowiedź tokenowa zawiera token dostępu dla odbiorcy customers-api z zakresem customers-api:read.
Uwierzytelnianie certyfikatem
Wybierz private key JWT i prześlij certyfikat klienta po utworzeniu aplikacji backendowej. Klient przechowuje odpowiadający mu klucz prywatny i podpisuje krótkotrwałe potwierdzenie klienta dla każdego żądania tokenu.
Przed zastąpieniem wygasającego certyfikatu zarejestruj nakładające się certyfikaty, aby klient mógł przeprowadzić rotację kluczy bez przerywania żądań tokenów.
Sekrety klienta
FoxIDs haszuje sekrety klienta przy użyciu skonfigurowanego algorytmu haszowania haseł. Wygenerowanego sekretu nie można odzyskać po utworzeniu. W przypadku sekretów dłuższych niż 20 znaków FoxIDs zachowuje pierwsze trzy znaki jako informację identyfikacyjną i wyświetla je z wielokropkiem, na przykład 6j9....
Dodaj sekret zastępczy przed usunięciem poprzedniego, aby przeprowadzić rotację poświadczeń bez przestoju.
Oświadczenia wydawane klientowi lub API można zmieniać za pomocą transformacji oświadczeń i zadań oświadczeń.
Resource Owner Password Credentials Grant
FoxIDs nie obsługuje Resource Owner Password Credentials Grant, ponieważ wymaga on od aplikacji obsługi hasła użytkownika i nie nadaje się do bezpiecznego, nowoczesnego uwierzytelniania.