External Login - API
Med external login kan du autentisere brukere i en eksisterende brukerdatabase gjennom et API-kall. Du implementerer API-et; FoxIDs kaller det med brukernavn og passord, og API-et validerer kombinasjonen og returnerer suksess eller feil. Bruk en External login autentiseringsmetode når du vil bruke en eksisterende brukerstore som autentiseringskilde i FoxIDs. Etter vellykket login kan du opprette external users og valgfritt vise en dialog for å hente f.eks. navn eller e-post.
Over tid kan du migrere brukere til FoxIDs og fase ut den eksterne API-en og brukerstore.
For en oversikt over brukerbegreper (internal users, external users og external user stores) se users overview.
External login støtter to user identifier (username) typer:
- Email - brukerens e-post
- Text - et fritt tekstbrukernavn
Hvis du velger text-typen, valideres formatet ikke i FoxIDs (blandede formater er tillatt inkludert e-post). Home realm discovery (HRD) basert på domene er kun tilgjengelig med email-typen.
Default external login UI med et tekstbasert brukernavn:

UI-en kan tilpasses.
Implementer API
Du må implementere et enkelt API som FoxIDs kaller for hver autentiseringsrequest (se sample).
API-et har en base URL; funksjonaliteten er gruppert i mapper. For tiden støttes kun authentication-mappen (valider brukernavn/passord).
Mapper for password change og user creation kan legges til senere.
Hvis base URL er https://somewhere.org/mystore, er authentication endpoint: https://somewhere.org/mystore/authentication
FoxIDs Cloud kaller API-et ditt fra IP
57.128.60.142. IP(s) kan endres eller utvides.
Request
Sikret med HTTP Basic auth: brukernavn external_login, passord = konfigurert secret.
Kallet er HTTP POST med en JSON body.
Du kan konfigurere ekstra parametere; de inkluderes i JSON payloaden.
Email type request:
{
"usernameType": 100,
"username": "user1@somewhere.org",
"password": "testpass1"
}
Text username type request:
{
"usernameType": 200,
"username": "user1",
"password": "testpass1"
}
Username type koder:
- email = 100
- text = 200
Response
Success
Ved suksess skal API-et returnere HTTP code 200 og valgfritt en liste med claims for den autentiserte brukeren.
For eksempel brukerens sub (unik ID / brukernavn), navn, e-post og kanskje en rolle:
{
"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" }
]
}
Error
API-et må returnere HTTP code 401 (Unauthorized) og en error (påkrevd) hvis Basic auth avvises. Legg valgfritt til en feilbeskrivelse i ErrorMessage.
{
"error": "invalid_api_id_secret",
"ErrorMessage": "Invalid API ID or secret"
}
API-et må returnere HTTP code 400, 401 eller 403 og en error (påkrevd) hvis kombinasjonen av brukernavn og passord avvises. Legg valgfritt til en feilbeskrivelse i ErrorMessage.
{
"error": "invalid_username_password",
"ErrorMessage": "Invalid username or password."
}
Hvis andre feil oppstår, skal API-et returnere HTTP code 500 eller en annen passende feilkode.
Det anbefales å legge til en teknisk feilmelding ErrorMessage for diagnostikk (den logges bare; vises aldri til sluttbrukeren).
API Sample
Sample ExternalLoginApiSample viser hvordan du implementerer API-et i ASP.NET Core.
Postman collection external-login-api.postman_collection.json for å kalle og teste API-et ditt med Postman.
Configure
Konfigurer en ekstern API login autentiseringsmetode i FoxIDs Control Client.
- Naviger til fanen Authentication
- Klikk New authentication
- Velg Show advanced
- Velg External API Login
- Legg til Name
- Velg Username type (f.eks. Text)
- Legg til base API URL uten
authentication-mappen i API URL - Legg til API secret

- Klikk Create
Valgfritt klikk Show advanced øverst til høyre i konfigurasjonsseksjonen for å tilpasse login UI-en.