Directory Connector
Directory Connector lar FoxIDs bruke et eksternt katalog som autoritativ kilde for interne brukeres passord og utvalgte brukerdata.
Brukerne eksisterer fortsatt som interne brukere i FoxIDs-miljøet. Under passordautentisering og operasjoner i passordets livssyklus kaller FoxIDs Directory Connector API-et i stedet for bare å validere passordet mot den interne FoxIDs-brukeren.
Fordi FoxIDs beholder en intern brukerpost, kan FoxIDs' multi-factor authentication (MFA)-håndtering legges til for brukere fra det eksterne repositoriet. Connectoren kan returnere MFA-relaterte brukerinnstillinger, for eksempel requireMultiFactor og deaktiverte two-factor-metoder, og FoxIDs bruker disse innstillingene på den interne brukeren mens det eksterne repositoriet fortsatt er autoritativt for passord og utvalgte brukerdata.
For Active Directory inkluderer FoxIDs en IIS-distribuerbar Directory Connector for Active Directory-komponent.
Bruk Directory Connector når:
- du vil at brukere skal logge inn med den vanlige login-autentiseringsmetoden.
- du vil aktivere brukere fra en eksisterende katalog for OpenID Connect- og SAML 2.0-applikasjoner gjennom FoxIDs.
- det eksterne kataloget er autoritativt for passordvalidering og passordendringer.
- du vil at FoxIDs skal beholde en intern brukerpost med identifikatorer, egenskaper, claims, multi-factor authentication (MFA)-innstillinger, tilgangstildelinger og eventuelt en lokal kopi av passordet.
- du vil ha en vei til senere å bytte til interne brukere og passordvalidering i FoxIDs uten å tvinge alle brukere gjennom en passordtilbakestilling.
Det finnes én Directory Connector per miljø. Når den er aktivert, gjelder den på miljønivå.
Slik fungerer det
FoxIDs synkroniserer ved behov når en bruker oppgir en identifikator ved innlogging eller gjenoppretting. FoxIDs kaller synchronise-user før kontoen kontrolleres, oppretter om nødvendig en FoxIDs bruker og oppdaterer identifikatorer, egenskaper og claims som katalogen eier.
Synkronisering inngår når Directory Connector aktiveres. FoxIDs synkroniserer ved starten av innlogging, gjenoppretting og kontokontroll av eksisterende økter, samt når et refresh token brukes for en katalogbundet konto. Fortsettelser med bekreftelseskoder, MFA og Extended UI bruker den valgte kontoen og vanlige FoxIDs kontroller. Mislykket synkronisering stopper flyten.
Svaret må inneholde en stabil, unik directoryUserId. Bruk katalogens permanente konto-ID fremfor e-post, telefonnummer eller brukernavn. FoxIDs bruker bindingen til å finne samme konto når identifikatorer endres. Registrerte autentiseringsapper og tilgangstildelinger i FoxIDs beholdes.
Når brukeren oppgir en identifikator, sender FoxIDs bare denne e-postadressen, dette telefonnummeret eller dette brukernavnet. Ved gjenbruk av økter og forespørsler med refresh tokens laster FoxIDs den tilknyttede brukeren og synkroniserer med katalog-ID-en lagret på brukeren. Passordoperasjoner bruker også katalog-ID-en på den innlastede brukeren. Den lagres ikke separat i innloggingssekvensen.
Connectoren returnerer alle gjeldende brukerdata. FoxIDs erstatter katalogens identifikatorer, egenskaper og claims, inkludert deaktiveringsstatus, krav om passordbytte og innstillinger for første passordoppsett. De samme konto-, gjenopprettings- og MFA-kontrollene som for interne brukere brukes. Interne brukere uten katalogbinding synkroniseres eller tilknyttes ikke automatisk.
Et synkroniseringssvar med disableAccount: true deaktiverer FoxIDs brukeren og tilbakekaller aktive økter og refresh-token grants. Returnerer connectoren feilkoden user_deleted ved synkronisering med brukerens katalog-ID, sletter FoxIDs den interne brukeren og tilbakekaller aktive økter og refresh tokens. Hvis et oppslag med bare en identifikator ikke finner en konto, kontrollerer FoxIDs eventuell eksisterende katalogbinding før flyten fortsetter, slik at utdaterte lokale kontodata ikke tillater innlogging eller gjenoppretting. Feilkoden user_not_exists alene sletter ikke en konto.
Forespørsler med refresh tokens kontrollerer både den opprinnelige kontoen og en impersonert lokal konto når de er katalogbundet. Hvis synkroniseringen finner en deaktivert eller slettet konto, tilbakekaller FoxIDs aktive økter og refresh-token grants og avviser den aktuelle tokenfornyelsen. Vanlig kontroll av aktive økter validerer økttilstanden i FoxIDs; den kontakter ikke katalogen selv. En applikasjon som validerer et utstedt access token lokalt, følger tokenets utløp fremfor tilbakekallingen av økten i FoxIDs.
Endringer blir tilgjengelige ved neste kontokontroll ved behov. Det finnes ingen bakgrunnssynkronisering.
Directory Connector kan brukes som en permanent integrasjon, med brukere og passord administrert i den eksterne katalogen, eller til gradvis migrering av brukere til FoxIDs. Ved migrering holdes connectoren aktivert mens brukere opprettes. Aktiver lokal passordkopi for å lagre passord etter vellykket autentisering, endring eller tilbakestilling gjennom FoxIDs.
Når migreringen er fullført, deaktiveres Directory Connector, og brukere og passord administreres direkte i FoxIDs. Opprett først brukere som ennå ikke finnes, og sørg for passordoppsett eller gjenoppretting for brukere uten en gjeldende lokal passordkopi. Kopien gjenspeiler siste vellykkede passordautentisering, endring eller tilbakestilling gjennom FoxIDs; senere passordendringer bare i den eksterne katalogen er ikke med.
Beskyttelse av oppslag
Når en bruker oppgir e-post, telefonnummer eller brukernavn i grensesnittet for innlogging eller gjenoppretting, teller katalogoppslaget mot en felles grense for alle identifikatorer i den aktuelle innloggingssekvensen. Grensen bruker miljøets innstillinger for Failed login attempt limit, tellerens levetid og observasjonsperioden. Både vellykkede oppslag og mislykkede connectorkall teller; vellykket passordautentisering nullstiller ikke telleren. Når grensen nås, må observasjonsperioden avventes eller en ny innloggingssekvens startes. Synkronisering ved gjenbruk av økter og refresh-token-forespørsler bruker ikke denne telleren. Beskyttelsen av passord og bekreftelseskoder bruker fortsatt sine eksisterende separate tellere.
Innloggingsidentifikatorer og katalogbinding
Brukere kan logge inn med gjeldende e-post, telefonnummer eller brukernavn etter identifikatortypene som er aktivert på autentiseringsmetoden for innlogging. Før passordautentisering må den oppgitte identifikatoren samsvare med en gjeldende identifikator fra connectoren. FoxIDs fjerner omkringliggende blanktegn. E-post og brukernavn sammenlignes uten å skille mellom store og små bokstaver. Telefonnumre bruker påkrevd internasjonalt format.
Innlogging etter endring av identifikatorer
Når brukere oppgir en identifikator, synkroniserer FoxIDs e-post, telefonnummer og brukernavn fra katalogen. Den stabile katalog-ID-en knytter dem til samme FoxIDs konto selv om én eller alle identifikatorer endres. Registrerte autentiseringsapper og tilgangstildelinger beholdes, og eksisterende tilgangsbegrensninger og MFA-krav gjelder fortsatt.
| Situasjon | Hva skjer under synkronisering? |
|---|---|
| Brukeren logger inn med uendret brukernavn, mens e-post eller telefonnummer er endret i katalogen. | FoxIDs oppdaterer samme konto med gjeldende identifikatorer fra connectoren. |
| Brukeren logger inn med en ny identifikator som FoxIDs ennå ikke kjenner. | Returnerer katalogen den nye identifikatoren og samme stabile katalog-ID, fortsetter brukeren med sin eksisterende FoxIDs konto. Dette fungerer også når alle identifikatorer er endret. |
| Brukeren logger inn med en gammel identifikator som connectoren ikke lenger returnerer. | Innlogging avvises med vanlig innloggingsfeil, selv om brukeren fortsatt kjenner passordet. Brukeren må oppgi en gjeldende identifikator av en aktivert type. |
| Connectoren slutter å returnere e-post, telefonnummer eller brukernavn. | Identifikatoren fjernes fra FoxIDs kontoen under synkronisering. Connectoren må returnere minst én gjeldende identifikator. |
En bruker med e-post endret fra old@example.org til new@example.org kan for eksempel logge inn med new@example.org før FoxIDs kjenner adressen. Connectoren må returnere new@example.org og brukerens uendrede katalog-ID. Brukeren beholder samme konto og registrerte autentiseringsapper. Alternativt kan et uendret brukernavn brukes hvis innlogging med brukernavn er aktivert.
Connectoren må returnere alle gjeldende identifikatorer som FoxIDs skal beholde. Utelatte eller tomme verdier behandles som fjernede identifikatorer, og tidligere verdier beholdes ikke som innloggingsaliaser. Bare identifikatortyper aktivert på autentiseringsmetoden for innlogging kan brukes til innlogging.
Kontokonflikter
Hver katalogbruker må ha en stabil, unik katalog-ID, og identifikatorene må ikke tilhøre en annen FoxIDs konto. FoxIDs slår først opp angitt identifikator i katalogen og bruker returnert katalog-ID for å finne eller opprette den lokale kontoen. Hvis lagring av identifikatorene kommer i konflikt med en annen konto, stoppes flyten. En administrator må rette katalog- eller kontokonfigurasjonen; kontoer slås ikke sammen eller omfordeles automatisk.
En eksisterende intern bruker uten katalogbinding kan ikke logge inn gjennom Directory Connector. Aktivering knytter ikke automatisk en eksisterende konto til en katalogbruker bare fordi e-post, telefonnummer eller brukernavn samsvarer.
Lokal passordkopi
Det eksterne kataloget er autoritativt så lenge Directory Connector er aktivert. FoxIDs faller ikke tilbake til den lokale passordhashen hvis Directory Connector API-et er midlertidig utilgjengelig.
Som standard lagrer FoxIDs en lokal kopi av passordet på den interne brukeren etter en vellykket passordvalidering eller operasjon i passordets livssyklus via connectoren. Dette kan deaktiveres i miljøinnstillingene.
Den lokale passordkopien brukes ikke mens Directory Connector er aktivert. Den finnes for å støtte en senere overgang til interne brukere og passordvalidering i FoxIDs uten å tvinge alle brukere til å tilbakestille passordet.
Passordlivssyklus
Brukeroppretting og handlinger i passordets livssyklus delegeres til API-et for Directory Connector:
- Passordautentisering kaller endepunktet
authentication. - Brukeroppretting ved innlogging kaller endepunktet
create-user. - Endring av brukerpassord kaller endepunktet
change-password. - Flyter for å sette passord og tilbakestille passord kaller endepunktet
set-password.
Passordendepunkter mottar stabil directoryUserId fra den innlastede brukeren. Katalogen kontrollerer gjeldende kontotilstand og påloggingsopplysninger under operasjonen. Autentisering, passordendring og tilbakestilling returnerer suksess eller feil. Brukeroppretting returnerer kontoens katalog-ID, som FoxIDs bruker til separat synkronisering.
Passordoperasjoner bruker katalog-ID-en på den innlastede FoxIDs brukeren. Connectoren kontrollerer kontotilstand og påloggingsopplysningene eller tilbakestillingsautorisasjonen operasjonen krever, utfører handlingen og returnerer suksess eller feil. Brukeridentifikatorer, attributter og claims returneres bare ved synkronisering.
Etter vellykket passordendring eller tilbakestilling lagrer FoxIDs gjeldende endringstidspunkt og fjerner krav om å endre eller angi passord. En lokal passordkopi lagres også hvis dette er konfigurert. Den aktive sekvensen fortsetter med vanlig konto-, gjenopprettings- og MFA-håndtering i FoxIDs.
Hvis en handling mislykkes eller FoxIDs ikke kan lagre kjente passordendringer, stoppes flyten. En passordendring som katalogen allerede har godtatt, rulles ikke tilbake, og FoxIDs gjentar ikke automatisk handlingen etter tidsavbrudd eller mislykket svar. Neste synkronisering oppdaterer den lokale kontoen.
Når Enable password policy er aktivert, verifiserer FoxIDs gjeldende katalogpassord før kontrollene av det nye passordet. Dette kan kreve et ekstra autentiseringskall før change-password.
FoxIDs oppdaterer ikke sin interne passordhistorikk når Directory Connector brukes, fordi FoxIDs ikke nødvendigvis kjenner til alle passordendringer i det eksterne kataloget.
Passordoppsett og gjenoppretting
Ved første innlogging kan en katalogbruker angi passord med en bekreftelseskode via e-post eller SMS, enten fordi passordet er glemt eller fordi et nytt må velges.
For å bruke Forgot your password? oppgis en gjeldende katalogidentifikator av en type aktivert på autentiseringsmetoden for innlogging. FoxIDs synkroniserer og oppretter kontoen før bekreftelseskoden sendes. Gjenoppretting via e-post eller SMS må være aktivert, og brukeren må ha tilgang til gjeldende gjenopprettingskontakt fra katalogen.
Etter at brukeren har verifisert koden og sendt inn nytt passord, kaller FoxIDs set-password med stabil katalog-ID. Returner setPasswordEmail eller setPasswordSms med tilhørende kontaktidentifikator for å kreve passordoppsett gjennom denne flyten. FoxIDs bruker sin vanlige flyt for passordoppsett.
Bekreftelseskoder er bundet til kontoen de ble utstedt for. Kontoer administrert gjennom en katalogconnector bruker samme kodeverifisering som andre interne brukere. FoxIDs beholder vanlig feilhåndtering ved gjenoppretting uten å vise connectordiagnostikk.
Passordpolicy og feilmeldinger
Det eksterne kataloget håndhever passordpolicyen. FoxIDs bruker miljøets passordpolicy når det viser feilmeldinger om passordpolicy som returneres fra connectoren.
Konfigurer miljøets passordpolicy slik at den samsvarer med passordpolicyen i det eksterne kataloget. Hvis de ikke samsvarer, kan brukerne se passordveiledning som ikke gjenspeiler de faktiske kravene i det eksterne kataloget.
Hvis det eksterne kataloget for eksempel avviser et passord fordi det er for kort, bruker FoxIDs miljøets minimumslengde for passord når feilmeldingen vises.
Implementer API
Du implementerer et Directory Connector API og konfigurerer FoxIDs med basis-URL og secret.
API-et har en basis-URL og fem endepunkter:
synchronise-userslår opp en bruker og returnerer gjeldende kontotilstand, identifikatorer og claims.authenticationvaliderer brukerens nåværende passord.create-useroppretter en bruker i den eksterne katalogen og returnerer brukerens permanente katalog-ID.change-passwordvaliderer det nåværende passordet og endrer det til et nytt passord.set-passwordsetter et nytt passord uten å validere det nåværende passordet.
Hvis basis-URL-en er https://somewhere.org/directory, er endepunktene:
https://somewhere.org/directory/synchronise-userhttps://somewhere.org/directory/authenticationhttps://somewhere.org/directory/create-userhttps://somewhere.org/directory/change-passwordhttps://somewhere.org/directory/set-password
FoxIDs Cloud kaller API-et ditt fra IP
57.128.60.142. IP(s) kan endres eller utvides.
Sikkerhet
Forespørsler sikres med HTTP Basic authentication:
- Brukernavn:
directory_connector - Passord: det konfigurerte API-secretet
Kallet er HTTP POST med en JSON-body.
FoxIDs sender valgt språk i forespørselshodet Accept-Language, for eksempel Accept-Language: da-DK. Ved innlogging følger dette språket valgt med ui_locales eller i nettleseren, med engelsk som reservespråk i FoxIDs. API-et kan bruke hodet til å oversette brukermeldinger og må velge eget reservespråk hvis ønsket språk ikke støttes. Hodet sendes til alle fem endepunkter.
Synkroniseringsforespørsel
Endepunktet synchronise-user mottar enten en brukeridentifikator eller kjent katalog-ID. Første oppslag ved innlogging eller gjenoppretting bruker oppgitt identifikator. FoxIDs bruker lagret directoryUserId for kontroll av eksisterende økter og refresh-token-forespørsler, og returnert katalog-ID etter create-user.
Et første oppslag med e-post:
{
"email": "user1@somewhere.org"
}
En etterfølgende kontokontroll:
{
"directoryUserId": "a1b2c3d4"
}
Bruk directoryUserId som autoritativ oppslagsnøkkel når den finnes. Ellers slås nøyaktig én av email, phone eller username opp. Returner HTTP 200 med fullstendige brukerdata, også for deaktiverte kontoer. Returner feilkoden user_deleted når kjent ID ikke finnes og user_not_exists når et oppslag bare med identifikator ikke finner en konto. Godta aldri en oppgitt identifikator som bevis på eierskap til kontoen.
FoxIDs velger forespørselens identifikator ut fra aktiverte innloggingsidentifikatorer. Hvis bare brukernavn er aktivert, sendes inndata i e-postformat som username. Omkringliggende blanktegn fjernes. Inndata må samsvare med en gjeldende identifikator av en aktivert type i svaret; det antatte forespørselsfeltet begrenser ikke hvilket svarfelt som kan samsvare.
Se Feilsvar for feil.
Svar ved suksess
Endepunktet synchronise-user returnerer HTTP 200 med fullstendige gjeldende brukerdata. Hvis forespørselen inneholder katalog-ID, må svaret inneholde samme ID. FoxIDs verifiserer dette før data lagres. HTTP 204 eller ufullstendige brukerdata avvises.
{
"directoryUserId": "a1b2c3d4",
"email": "user1@somewhere.org",
"phone": "+4511223344",
"username": "user1",
"confirmAccount": true,
"disableAccount": false,
"changePassword": false,
"setPasswordEmail": false,
"setPasswordSms": false,
"disableSetPasswordEmail": false,
"disableSetPasswordSms": false,
"passwordLastChanged": 1760000000,
"emailVerified": true,
"phoneVerified": true,
"disableTwoFactorApp": false,
"disableTwoFactorSms": false,
"disableTwoFactorEmail": false,
"requireMultiFactor": false,
"claims": [
{ "type": "name", "value": "User One" },
{ "type": "role", "value": "employee" }
]
}
FoxIDs bruker responsen til å opprette eller oppdatere den interne brukeren i miljøet.
Felt:
directoryUserIder påkrevd. Den må være stabil og unik i det eksterne kataloget og lagres på den interne FoxIDs-brukeren.email,phoneogusernameer valgfrie hver for seg, men minst én må være til stede. FoxIDs lagrer de returnerte verdiene som den interne brukerens identifikatorer. Returnerte brukeridentifikatorverdier må entydig identifisere én bruker i det eksterne kataloget som connectoren bruker.phonemå inneholde landskode i internasjonalt format, for eksempel+4511223344.confirmAccountstyrer om FoxIDs skal kjøre en bekreftelsesflyt for å bekrefte den interne brukeren.disableAccountstyrer kontoens direkte deaktiveringsstatus. Overgang til deaktivert tilbakekaller brukerens FoxIDs økter og refresh-token grants.changePasswordkrever passordendring etter vellykket verifisering av påloggingsopplysninger.setPasswordEmailogsetPasswordSmskrever passordoppsett gjennom tilhørende bekreftelseskodeflyt. Kontaktidentifikatoren må finnes, og gjenopprettingsmetoden må være aktivert.disableSetPasswordEmailogdisableSetPasswordSmsdeaktiverer tilhørende gjenopprettingsmetoder.passwordLastChangeder et valgfritt, ikke-negativt Unix-tidsstempel i sekunder. Når det angis ved synkronisering, oppdateres passordalderen i FoxIDs. Utelates det, beholdes eksisterende tidsstempel. Vellykket passordendring eller tilbakestilling lagrer gjeldende tid i FoxIDs; senere synkronisering kan angi katalogens autoritative tidsstempel.emailVerifiedstyrer om den interne brukerens e-post merkes som verifisert.phoneVerifiedstyrer om den interne brukerens telefonnummer merkes som verifisert.disableTwoFactorAppdeaktiverer to-faktorautentisering med authenticator-app for den interne brukeren.disableTwoFactorSmsdeaktiverer SMS-basert to-faktorautentisering for den interne brukeren.disableTwoFactorEmaildeaktiverer e-postbasert to-faktorautentisering for den interne brukeren.requireMultiFactorstyrer om den interne brukeren må bruke multi-faktorautentisering.claimser valgfri. FoxIDs lagrer de returnerte claims på den interne brukeren.
Claims støtter en valgfri valueType: String, Boolean, Number, JsonObject eller JsonArray. Feltet value forblir tekst; utelat valueType for String. FoxIDs bevarer den valgte typen og logger en advarsel før en ugyldig verdi faller tilbake til tekst. Se typer for claimverdier for eksempler og tallgrenser. Den samme representasjonen brukes for claims som sendes i forespørsler om brukeropprettelse og returneres i synkroniseringssvar.
FoxIDs ignorerer claims der type eller value mangler, er null, er tom eller bare inneholder blanktegn. Når trace-logging av meldinger er aktivert, viser svarets trace de mottatte claims før de filtreres. Lange trace-meldinger avkortes.
Beskyttede claims, som sid og auth_time, fjernes også fra synkroniseringssvar.
Authentication-forespørsel
Endepunktet authentication mottar påkrevd stabil katalog-ID og gjeldende passord.
{
"directoryUserId": "a1b2c3d4",
"password": "testpass1"
}
Kontroller gjeldende kontotilstand i katalogen og passordet før suksess returneres. Verifiser passordet før kontospesifikk veiledning om passordpolicy returneres.
Se Feilsvar for feil.
Svar ved suksess
Ved suksess returneres HTTP 204 uten svarinnhold.
Forespørsel om brukeroppretting
Endepunktet create-user mottar nøyaktig én brukeridentifikator, et påkrevd passord, valgte create-user-egenskaper og claims samlet inn under FoxIDs create-user-flyten.
{
"email": "user1@somewhere.org",
"password": "testpass1",
"confirmAccount": true,
"requireMultiFactor": false,
"claims": [
{ "type": "given_name", "value": "User" },
{ "type": "family_name", "value": "One" }
]
}
Felt:
- Nøyaktig én av
email,phoneellerusernamesendes. passworder påkrevd. Opprett bruker uten passord støttes ikke med Directory Connector fordi Directory Connector API-et autentiserer brukere med passord.confirmAccountogrequireMultiFactorer de ønskede innstillingene for brukeropprettelse i FoxIDs.claimsinneholder claims som ikke er identifikatorer, og som samles inn når brukeren opprettes i FoxIDs.
Se Feilsvar for feil.
Svar ved suksess
Ved suksess returneres HTTP 200 med den opprettede kontoens permanente katalog-ID:
{
"directoryUserId": "a1b2c3d4"
}
FoxIDs kaller deretter synchronise-user med denne ID-en for å hente hele kontoen og opprette den interne FoxIDs brukeren.
Change-password-forespørsel
Endepunktet change-password mottar påkrevd katalog-ID, gjeldende passord og nytt passord. Verifiser gjeldende passord før kontospesifikk policyveiledning returneres.
{
"directoryUserId": "a1b2c3d4",
"currentPassword": "oldpass1",
"newPassword": "newpass1"
}
Se Feilsvar for feil.
Svar ved suksess
Ved suksess returneres HTTP 204 uten svarinnhold. Passordendringen må oppfylle katalogens passordkrav.
Set-password-forespørsel
Endepunktet set-password mottar påkrevd katalog-ID og nytt passord. FoxIDs kaller det etter autorisasjon av tilbakestilling eller oppsett, inkludert kodeverifisering ved gjenoppretting. Connectoren må kontrollere gjeldende kontotilstand på nytt før passordet endres.
{
"directoryUserId": "a1b2c3d4",
"password": "newpass1"
}
Se Feilsvar for feil.
Svar ved suksess
Ved suksess returneres HTTP 204 uten svarinnhold. Tilbakestillingen eller oppsettet må oppfylle katalogens passordkrav.
Feilrespons
Alle endepunkter bruker samme JSON-feilformat. Returner en feilkode som endepunktet støtter i error, og diagnostiske detaljer i errorMessage. Eksempelvis et avvist passord fra authentication:
{
"error": "invalid_password",
"errorMessage": "Invalid password."
}
Bruk disse HTTP-statuskodene:
- 401 med feilkoden
invalid_api_id_secretnår HTTP Basic-autentisering avvises. - 400, 401 eller 403 for andre støttede feilkoder i endepunkttabellen nedenfor.
- 500 ved teknisk feil i connectoren.
Feltet errorMessage er diagnostisk tekst for loggene i FoxIDs og vises ikke til sluttbrukeren. Oppgi årsaken til feilen, men ta aldri med passord, API-hemmeligheter eller private nøkler.
Bare endepunktet authentication kan returnere feilkoden login_rejected, etter verifisering av brukerens identifikator og passord. Det kan inneholde valgfri uiErrorMessage, som FoxIDs viser som ren tekst i innloggingsskjemaet. API-et leverer meldingen på språket valgt via Accept-Language:
{
"error": "login_rejected",
"errorMessage": "Credentials verified; login rejected by directory policy.",
"uiErrorMessage": "You cannot log in here. Contact support."
}
Hvis uiErrorMessage utelates, er null, tom eller bare inneholder blanktegn, viser FoxIDs samme oversatte generelle innloggingsmelding som for invalid_password og operation_rejected. For andre støttede feilkoder ignorerer FoxIDs uiErrorMessage og velger brukermeldingen fra egne oversatte tekster. Diagnostisk errorMessage brukes aldri som reserve for brukermeldinger. Se Autentiseringsfeil og personvern for verifiseringskrav.
Feil fra authentication, change-password og set-password returnerer ikke brukerdata, endrer ikke intern konto og tilbakekaller ikke eksisterende økter og refresh tokens. Synkronisering anvender katalogens kontoendringer. Avviste autentiserings- og passordendringsforsøk teller fortsatt mot eksisterende grense for mislykkede innlogginger.
Støttede feilkoder per endepunkt:
| Feilkode | synchronise-user |
authentication |
create-user |
change-password |
set-password |
Betydning |
|---|---|---|---|---|---|---|
invalid_api_id_secret |
Ja | Ja | Ja | Ja | Ja | API-brukernavnet eller hemmeligheten for HTTP Basic authentication er ugyldig. |
user_exists |
Nei | Nei | Ja | Nei | Nei | En bruker med den oppgitte identifikatoren finnes allerede i den eksterne katalogen. |
user_not_exists |
Uten katalog-ID | Nei | Nei | Nei | Nei | Ingen katalogbruker samsvarte med oppslaget bare på identifikator. |
invalid_password |
Nei | Ja | Nei | Nei | Nei | Katalogen avviste passordet i en autentiseringsforespørsel. |
login_rejected |
Nei | Ja | Nei | Nei | Nei | Påloggingen ble avvist etter at brukeridentifikatoren og passordet ble verifisert. En valgfri uiErrorMessage vises i påloggingsskjemaet. |
invalid_current_password |
Nei | Nei | Nei | Ja | Nei | Katalogen avviste det gjeldende passordet i en forespørsel om passordendring. |
create_user_not_supported |
Nei | Nei | Ja | Nei | Nei | Connectoren støtter ikke opprettelse av brukere i den eksterne katalogen. |
operation_rejected |
Nei | Ja | Nei | Ja | Ja | Operasjonen kan ikke fullføres, for eksempel fordi kontoen er utilgjengelig. FoxIDs logger errorMessage, ignorerer uiErrorMessage og viser en generell oversatt feil uten å endre kontotilstanden. |
user_deleted |
Med katalog-ID | Nei | Nei | Nei | Nei | En kjent katalog-ID finnes ikke lenger. FoxIDs tilbakekaller tilgang og sletter brukeren under synkronisering. |
password_not_accepted |
Nei | Ja | Ja | Ja | Ja | Passordet som valideres, brukes ved brukeropprettelse, endres eller settes, ble avvist av en passordregel i katalogen som ikke tilsvarer en mer spesifikk kode. |
password_min_length |
Nei | Ja | Ja | Ja | Ja | Passordet som valideres, brukes ved brukeropprettelse, endres eller settes, er kortere enn katalogens minimumslengde for passord. |
password_max_length |
Nei | Ja | Ja | Ja | Ja | Passordet som valideres, brukes ved brukeropprettelse, endres eller settes, er lengre enn katalogens maksimumslengde for passord. |
password_banned_characters |
Nei | Ja | Ja | Ja | Ja | Passordet som valideres, brukes ved brukeropprettelse, endres eller settes, inneholder ett eller flere tegn eller ord som katalogen avviser. |
password_complexity |
Nei | Ja | Ja | Ja | Ja | Eldre feil for tegnkompleksitet som FoxIDs tolker som password_character_variation. Bruk en av de to spesifikke tegnfeilkodene for nye integrasjoner. |
password_character_repeat |
Nei | Ja | Ja | Ja | Ja | Passordet som valideres, brukes ved brukeropprettelse, endres eller settes, inneholder for mange gjentakelser av tegn. |
password_character_variation |
Nei | Ja | Ja | Ja | Ja | Passordet som valideres, brukes ved brukeropprettelse, endres eller settes, inneholder ikke tilstrekkelig tegnvariasjon. |
password_email_text_complexity |
Nei | Ja | Ja | Ja | Ja | Passordet som valideres, brukes ved brukeropprettelse, endres eller settes, inneholder brukerens e-postadresse eller en del av den. |
password_phone_text_complexity |
Nei | Ja | Ja | Ja | Ja | Passordet som valideres, brukes ved brukeropprettelse, endres eller settes, inneholder brukerens telefonnummer eller en del av det. |
password_username_text_complexity |
Nei | Ja | Ja | Ja | Ja | Passordet som valideres, brukes ved brukeropprettelse, endres eller settes, inneholder brukerens brukernavn eller en del av det. |
password_url_text_complexity |
Nei | Ja | Ja | Ja | Ja | Passordet som valideres, brukes ved brukeropprettelse, endres eller settes, inneholder tekst relatert til URL-en til FoxIDs. |
password_risk |
Nei | Ja | Ja | Ja | Ja | Passordet som valideres, brukes ved brukeropprettelse, endres eller settes, er kjent for å være risikabelt, kompromittert eller på annen måte usikkert. |
password_history |
Nei | Nei | Nei | Ja | Ja | Det nye passordet ble avvist fordi det har vært brukt tidligere. |
password_expired |
Nei | Ja | Nei | Nei | Nei | Det oppgitte passordet er verifisert, men utløpt; brukeren må endre det før autentiseringen kan fortsette. |
new_password_equals_current |
Nei | Nei | Nei | Ja | Nei | Det nye passordet er det samme som det gjeldende. set-password kan ikke returnere denne feilen fordi endepunktet ikke mottar det gjeldende passordet. |
Når FoxIDs må kontrollere egen passordpolicy før en passordendring, kalles først authentication for å verifisere gjeldende passord. Returnerer connectoren password_expired fra denne autentiseringen, kan endringen fortsette. Endepunktet change-password må godta et verifisert utløpt gjeldende passord og bare returnere feil støttet for endringsoperasjonen.
Ved feil knyttet til passordpolicy bruker FoxIDs miljøets passordpolicy til å vise den brukerrettede feilmeldingen. Se Passordpolicy og feilmeldinger.
Returner bare feilkoder som støttes av endepunktet og oppgitt directoryUserId, som angitt ovenfor. Ustøttet kode, ugyldig svar eller uventet HTTP-status er en integrasjonsfeil og fører til den generelle feilsiden. Se Feilsøking av nettleserfeil for diagnostikk med identifikatorene på feilsiden.
Autentiseringsfeil og brukernes personvern
En uautentisert klient skal ikke kunne avgjøre om et brukernavn eller en e-postadresse finnes, ut fra en påloggingsfeil. Ved passordautentisering håndterer FoxIDs de støttede feilene slik:
| Connectorfeil | Resultat for brukeren |
|---|---|
invalid_password, operation_rejected eller en utilgjengelig konto funnet ved synkronisering |
Den samme generelle påloggingsmeldingen, for eksempel Feil e-post eller passord., oversatt til det aktive språket og tilpasset de aktiverte påloggingsidentifikatorene. |
login_rejected |
Den oppgitte uiErrorMessage, eller den samme generelle påloggingsmeldingen hvis den mangler eller er blank, på samme sted i påloggingsskjemaet. |
password_not_accepted |
Siden for passordendring med generell veiledning om passordpolicy. |
password_expired eller en annen spesifikk passordpolicyfeil |
Siden for passordendring med den tilsvarende lokaliserte veiledningen om passordpolicy. |
Connectoren må kontrollere det oppgitte gjeldende passordet før den returnerer en passordpolicyfeil fra authentication. Ellers kan en annen side eller melding gjøre det mulig for en angriper å oppdage brukere og bekrefte identifikatorene deres ved å gjette brukernavn eller e-postadresser. For change-password må det gjeldende passordet kontrolleres før kontospesifikk veiledning om det nye passordet returneres. Generelle formatkontroller må ikke avsløre om en konto finnes.
Hvis en bruker av en eller annen grunn ikke får logge inn gjennom flyten, må oppgitt identifikator og passord først valideres. Returner en avvisning basert på begrensningen først når begge er verifisert, slik at begrensningen ikke avslører om en gjettet identifikator tilhører en virkelig bruker. Returner login_rejected fra authentication, angi diagnostisk årsak i errorMessage og eventuelt trygg brukerveiledning i uiErrorMessage. Kan opplysningene ikke verifiseres, returneres vanlig autentiseringsfeil uten å avsløre begrensningen.
FoxIDs stoler på at connectoren verifiserer påloggingsopplysninger før login_rejected returneres; et vellykket kontooppslag eller kjennskap til directoryUserId er ikke tilstrekkelig. Før verifisering skal instruksjoner eller knapper for alternative innloggingsmetoder vises uavhengig av om oppgitt identifikator samsvarer med en konto.
Bare synchronise-user rapporterer kontotilstand: Returner fullstendige brukerdata med disableAccount: true for deaktivert konto, eller feilkoden user_deleted når kjent katalog-ID ikke lenger finnes. Passordendepunkter returnerer operation_rejected hvis kontoen er utilgjengelig. I motsetning til login_rejected krever denne feilen ikke verifisert passord fordi den aldri gir nettleseren kontospesifikk veiledning.
Håndter feil konsekvent for kjente og ukjente identifikatorer, inkludert observerbare svartider og beskyttelse mot gjentatte forsøk. En generell melding alene hindrer ikke oppdagelse av brukere hvis en annen omdirigering, status eller svartid avslører resultatet. Følg OWASPs veiledning om autentiseringsfeil når connectoren implementeres.
API-eksempel
Eksemplet DirectoryConnectorApiSample viser hvordan du implementerer Directory Connector API-et i ASP.NET Core.
Implementasjoner og testklienter må følge kontraktene ovenfor: HTTP 200 med fullstendige brukerdata for synchronise-user, HTTP 200 med opprettet katalog-ID for create-user, og HTTP 204 uten innhold for vellykkede passordoperasjoner.
Active Directory-komponent
FoxIDs inkluderer en IIS-installerbar Directory Connector for Active Directory. Komponenten implementerer Directory Connector API-et for ett AD/LDAP-domene og kan synkronisere kontoer, validere, endre og angi passord samt returnere konfigurerte AD-attributter og nestede AD-gruppemedlemskap som claims.
Konfigurer
Konfigurer Directory Connector i miljøinnstillingene i FoxIDs Control Client.
- Velg fanen Innstillinger.
- Velg fanen Miljø.
- Finn seksjonen Directory Connector.
- Aktiver Directory Connector.
- Legg til basis-API-URL-en uten endepunktmappen i API URL.
- Legg til API secret.
- Bestem om en lokal kopi av passordet skal lagres.
- Konfigurer miljøets passordpolicy slik at den samsvarer med passordpolicyen i det eksterne kataloget.
- Klikk Update.
