External Login - API
Med external login kan du autentisera användare i en befintlig användardatabas via ett API-anrop. Du implementerar API:et; FoxIDs anropar det med användarnamn och lösenord, och API:et validerar kombinationen och returnerar framgång eller fel. Använd en External login autentiseringsmetod när du vill använda en befintlig user store som autentiseringskälla i FoxIDs. Efter lyckad login kan du skapa external users och valfritt visa en dialog för att samla in t.ex. namn eller e-post.
Med tiden kan du migrera användare till FoxIDs och fasa ut den externa API:n och user store.
För en översikt över användarkoncept (internal users, external users och external user stores) se users overview.
External login stöder två user identifier (username) typer:
- Email - användarens e-post
- Text - ett fritext-användarnamn
Om du väljer text-typen valideras formatet inte i FoxIDs (blandade format är tillåtna inklusive e-post). Home realm discovery (HRD) baserat på domän är endast tillgängligt med email-typen.
Default external login UI med ett textbaserat användarnamn:

UI:n kan anpassas.
Implementera API
Du måste implementera ett enkelt API som FoxIDs anropar för varje autentiseringsrequest (se sample).
API:et har en base URL; funktionalitet är grupperad i mappar. För närvarande stöds endast authentication-mappen (validera användarnamn/lösenord).
Mappar för password change och user creation kan läggas till senare.
Om base URL är https://somewhere.org/mystore, är authentication endpoint: https://somewhere.org/mystore/authentication
FoxIDs Cloud anropar ditt API från IP
57.128.60.142. IP(s) kan ändras eller utökas.
Request
Säkrad med HTTP Basic auth: användarnamn external_login, lösenord = konfigurerat secret.
Anropet är HTTP POST med en JSON body.
Du kan konfigurera ytterligare parametrar; de inkluderas i JSON payload.
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
Vid framgång ska API:et returnera HTTP code 200 och valfritt en lista med claims för den autentiserade användaren.
Till exempel användarens sub (unik ID / användarnamn), namn, e-post och kanske en roll:
{
"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åste returnera HTTP code 401 (Unauthorized) och en error (krävs) om Basic auth avvisas. Lägg valfritt till en felbeskrivning i ErrorMessage.
{
"error": "invalid_api_id_secret",
"ErrorMessage": "Invalid API ID or secret"
}
API:et måste returnera HTTP code 400, 401 eller 403 och en error (krävs) om kombinationen av användarnamn och lösenord avvisas. Lägg valfritt till en felbeskrivning i ErrorMessage.
{
"error": "invalid_username_password",
"ErrorMessage": "Invalid username or password."
}
Om andra fel uppstår ska API:et returnera HTTP code 500 eller annan lämplig felkod.
Det rekommenderas att lägga till ett tekniskt felmeddelande ErrorMessage för diagnostik (loggas bara; visas aldrig för slutanvändaren).
API Sample
Sample ExternalLoginApiSample visar hur du implementerar API:et i ASP.NET Core.
Postman collection external-login-api.postman_collection.json för att anropa och testa ditt API med Postman.
Configure
Konfigurera en extern API login autentiseringsmetod i FoxIDs Control Client.
- Navigera till fliken Authentication
- Klicka New authentication
- Välj Show advanced
- Välj External API Login
- Lägg till Name
- Välj Username type (t.ex. Text)
- Lägg till base API URL utan
authentication-mappen i API URL - Lägg till API secret

- Klicka Create
Valfritt klicka Show advanced uppe till höger i konfigurationssektionen för att anpassa login UI:n.