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:
External login UI

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.

  1. Vai alla scheda Authentication
  2. Fai clic su New authentication
  3. Seleziona Show advanced
  4. Seleziona External API Login
  5. Aggiungi il Name
  6. Seleziona il Username type (ad esempio Text)
  7. Aggiungi l'URL base dell'API senza la cartella authentication in API URL
  8. Aggiungi API secret Configure an external login authentication method
  9. Fai clic su Create

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

La tua privacy

La tua privacy

Usiamo i cookie per migliorare la tua esperienza sui nostri siti. Fai clic sul pulsante 'Accetta tutti i cookie' per acconsentire all'uso dei cookie. Per rifiutare i cookie non essenziali, fai clic su 'Solo cookie necessari'.

Visita la nostra pagina di Informativa sulla privacy per saperne di più