External Login - API
External Login - API e obsoleto e verra progressivamente eliminato. Usa Directory Connector per nuove integrazioni con directory esterne e pianifica di spostare le integrazioni esistenti di External Login API a Directory Connector quando possibile.
Con external login puoi autenticare gli utenti in un database utenti esistente tramite una chiamata API. Implementi tu l'API; FoxIDs la chiama con username e password, e l'API valida la combinazione e restituisce successo o fallimento.
Usa un metodo di autenticazione External login quando vuoi sfruttare un archivio utenti esistente come fonte di autenticazione in FoxIDs.
Dopo un login riuscito puoi creare utenti esterni e facoltativamente mostrare una finestra di dialogo per raccogliere, ad esempio, nome o email.
Se vuoi che gli utenti rimangano utenti interni nell'ambiente FoxIDs mentre l'autenticazione della password e il ciclo di vita della password vengono delegati a una directory esterna, usa invece Directory Connector.
Le integrazioni esistenti di External Login API dovrebbero essere spostate a Directory Connector quando possibile. Nel tempo puoi migrare gli utenti in FoxIDs ed eliminare gradualmente l'API esterna e l'archivio utenti esterno.
Per una panoramica dei concetti utente (utenti interni, utenti esterni e archivi utenti esterni) consulta la panoramica utenti.
External login supporta due tipi di identificatore utente (username):
- Email - l'email dell'utente
- Text - uno username di testo libero
Se scegli il tipo text, il formato non viene validato in FoxIDs (sono consentiti formati misti, incluso l'uso di email).
L'home realm discovery (HRD) basato sul dominio e disponibile solo con il tipo email.
UI predefinita di external login con username testuale:

La UI puo essere personalizzata.
Implementare API
Devi implementare una semplice API che FoxIDs chiama per ogni richiesta di autenticazione (vedi il sample).
L'API ha un URL base; la funzionalita e raggruppata in cartelle. Attualmente e supportata solo la cartella authentication (validare username/password).
Cartelle per cambio password e creazione utente potrebbero essere aggiunte in seguito.
Se l'URL base e https://somewhere.org/mystore, l'endpoint di autenticazione e: https://somewhere.org/mystore/authentication
FoxIDs Cloud chiama la tua API dall'IP
57.128.60.142.
Gli IP possono cambiare o essere ampliati.
Richiesta
Protetta con HTTP Basic auth: username external_login, password = secret configurato.
La chiamata e HTTP POST con un body JSON.
Puoi configurare parametri aggiuntivi; verranno inclusi nel payload JSON.
Richiesta con tipo email:
{
"usernameType": 100,
"username": "user1@somewhere.org",
"password": "testpass1"
}
Richiesta con username di tipo text:
{
"usernameType": 200,
"username": "user1",
"password": "testpass1"
}
Codici del tipo username:
- email = 100
- text = 200
Risposta
Successo
In caso di successo l'API dovrebbe restituire codice HTTP 200 e facoltativamente un elenco di claims per l'utente autenticato.
Ad esempio, il sub dell'utente (ID univoco / username), nome, email e magari un ruolo:
{
"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" }
]
}
Errore
L'API deve restituire codice HTTP 401 (Unauthorized) e un error (obbligatorio) se il Basic auth viene rifiutato. Facoltativamente, aggiungi una descrizione dell'errore in ErrorMessage.
{
"error": "invalid_api_id_secret",
"ErrorMessage": "Invalid API ID or secret"
}
L'API deve restituire codice HTTP 400, 401 o 403 e un error (obbligatorio) se la combinazione username e password viene rifiutata. Facoltativamente, aggiungi una descrizione dell'errore in ErrorMessage.
{
"error": "invalid_username_password",
"ErrorMessage": "Invalid username or password."
}
Se si verificano altri errori, l'API dovrebbe restituire codice HTTP 500 o un altro codice di errore appropriato.
Si raccomanda di aggiungere un messaggio tecnico di errore in ErrorMessage per la diagnostica (viene solo registrato nei log; non mostrato all'utente finale).
Sample API
Il sample ExternalLoginApiSample mostra come implementare l'API in ASP.NET Core.
Postman collection external-login-api.postman_collection.json per chiamare e testare la tua API con Postman.
Configurare
Configura un metodo di autenticazione login tramite API esterna in FoxIDs Control Client.
External API Login dovrebbe essere usato solo per integrazioni esistenti. Usa Directory Connector per nuove integrazioni con autenticazione password e ciclo di vita password su directory esterne, e considera di spostare le integrazioni esistenti di External API Login a Directory Connector.
- Vai alla scheda Authentication
- Fai clic su New authentication
- Seleziona Show advanced
- Seleziona External API Login
- Aggiungi il Name
- Seleziona il Username type (ad esempio Text)
- Aggiungi l'URL base dell'API senza la cartella
authenticationin API URL - Aggiungi API secret

- Fai clic su Create
Facoltativamente fai clic su Show advanced in alto a destra nella sezione di configurazione per personalizzare la UI di login.