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

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.

  1. Naviger til fanen Authentication
  2. Klikk New authentication
  3. Velg Show advanced
  4. Velg External API Login
  5. Legg til Name
  6. Velg Username type (f.eks. Text)
  7. Legg til base API URL uten authentication-mappen i API URL
  8. Legg til API secret Configure an external login authentication method
  9. Klikk Create

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

Ditt personvern

Vi bruker cookies for å gjøre opplevelsen av nettstedene våre bedre. Klikk på 'Godta alle cookies' for å samtykke til bruk av cookies. For å reservere deg mot ikke-nødvendige cookies, klikk på 'Kun nødvendige cookies'.

Besøk vår personvernerklæring for mer