Zewnętrzne logowanie - API
Dzięki zewnętrznemu logowaniu możesz uwierzytelniać użytkowników w istniejącej bazie danych użytkowników przez wywołanie API. Implementujesz API; FoxIDs wywołuje je z nazwą użytkownika i hasłem, a API weryfikuje kombinację i zwraca sukces lub porażkę.
Użyj metody uwierzytelniania External login, gdy chcesz wykorzystać istniejący magazyn użytkowników jako źródło uwierzytelniania w FoxIDs.
Po pomyślnym logowaniu możesz tworzyć użytkowników zewnętrznych i opcjonalnie wyświetlić dialog do zebrania np. imienia lub adresu e-mail.
Z czasem możesz migrować użytkowników do FoxIDs i wycofać zewnętrzne API oraz magazyn użytkowników.
Przegląd pojęć użytkowników (użytkownicy wewnętrzni, użytkownicy zewnętrzni i zewnętrzne magazyny użytkowników) znajdziesz w przeglądzie użytkowników.
Zewnętrzne logowanie obsługuje dwa typy identyfikatorów użytkownika (username):
- Email - adres e-mail użytkownika
- Text - dowolna nazwa użytkownika w formie tekstowej
Jeśli wybierzesz typ tekstowy, format nie jest walidowany w FoxIDs (dozwolone są formaty mieszane, w tym adresy e-mail).
Home realm discovery (HRD) oparte na domenie jest dostępne tylko dla typu e-mail.
Domyślny interfejs zewnętrznego logowania z nazwą użytkownika typu tekstowego:

Interfejs można dostosować.
Implementuj API
Musisz zaimplementować proste API, które FoxIDs wywołuje dla każdego żądania uwierzytelnienia (zobacz przykład).
API ma bazowy URL; funkcjonalność jest pogrupowana w foldery. Obecnie obsługiwany jest tylko folder authentication (walidacja nazwy użytkownika i hasła).
Foldery do zmiany hasła i tworzenia użytkowników mogą zostać dodane później.
Jeśli bazowy URL to https://somewhere.org/mystore, punkt końcowy uwierzytelniania to: https://somewhere.org/mystore/authentication
FoxIDs Cloud wywołuje Twoje API z adresu IP
57.128.60.142.
Adresy IP mogą się zmieniać lub zostać rozszerzone.
Żądanie
Zabezpieczone HTTP Basic auth: nazwa użytkownika external_login, hasło = skonfigurowany sekret.
Wywołanie jest HTTP POST z treścią JSON.
Możesz skonfigurować dodatkowe parametry; są one dołączane do ładunku JSON.
Żądanie dla typu e-mail:
{
"usernameType": 100,
"username": "user1@somewhere.org",
"password": "testpass1"
}
Żądanie dla typu tekstowego:
{
"usernameType": 200,
"username": "user1",
"password": "testpass1"
}
Kody typu nazwy użytkownika:
- email = 100
- text = 200
Odpowiedź
Sukces
W przypadku sukcesu API powinno zwrócić kod HTTP 200 i opcjonalnie listę claims dla uwierzytelnionego użytkownika.
Na przykład sub użytkownika (unikalny ID / nazwa użytkownika), imię, e-mail i np. rola:
{
"claims": [
{ "type": "sub", "value": "somewhere/user2" },
{ "type": "given_name", "value": "Joe" },
{ "type": "family_name", "value": "Smith" },
{ "type": "email", "value": "user2@somewhere.org" },
{ "type": "role", "value": "some_access" }
]
}
Błąd
API musi zwrócić kod HTTP 401 (Unauthorized) oraz error (wymagany), jeśli Basic auth zostanie odrzucone. Opcjonalnie dodaj opis błędu w ErrorMessage.
{
"error": "invalid_api_id_secret",
"ErrorMessage": "Invalid API ID or secret"
}
API musi zwrócić kod HTTP 400, 401 lub 403 oraz error (wymagany), jeśli kombinacja nazwy użytkownika i hasła zostanie odrzucona. Opcjonalnie dodaj opis błędu w ErrorMessage.
{
"error": "invalid_username_password",
"ErrorMessage": "Invalid username or password."
}
Jeśli wystąpią inne błędy, API powinno zwrócić kod HTTP 500 lub inny odpowiedni kod błędu.
Zaleca się dodanie technicznego komunikatu błędu w ErrorMessage do diagnostyki (jest tylko logowany; nigdy nie jest pokazywany użytkownikowi końcowemu).
Przykład API
Przykład ExternalLoginApiSample pokazuje, jak zaimplementować API w ASP.NET Core.
Kolekcja Postman external-login-api.postman_collection.json do wywoływania i testowania API w Postman.
Konfiguracja
Skonfiguruj metodę uwierzytelniania zewnętrznego logowania API w FoxIDs Control Client.
- Przejdź do karty Authentication
- Kliknij New authentication
- Wybierz Show advanced
- Wybierz External API Login
- Dodaj Name
- Wybierz Username type (np. Text)
- Dodaj bazowy URL API bez folderu
authenticationw API URL - Dodaj API secret

- Kliknij Create
Opcjonalnie kliknij Show advanced w prawym górnym rogu sekcji konfiguracji, aby dostosować interfejs logowania.