Directory Connector

Met Directory Connector kan FoxIDs een externe directory gebruiken als gezaghebbende bron voor wachtwoorden van interne gebruikers en geselecteerde gebruikersgegevens.

De gebruikers bestaan nog steeds als interne gebruikers in de FoxIDs-omgeving. Tijdens wachtwoordauthenticatie en bewerkingen in de wachtwoordlevenscyclus roept FoxIDs de Directory Connector API aan in plaats van het wachtwoord alleen te valideren tegen de interne FoxIDs-gebruiker.

Omdat FoxIDs een intern gebruikersrecord bewaart, kan FoxIDs multi-factor-authenticatie (MFA)-afhandeling worden toegevoegd aan gebruikers uit de externe repository. De connector kan MFA-gerelateerde gebruikersinstellingen retourneren, zoals requireMultiFactor en uitgeschakelde two-factor-methoden, en FoxIDs past deze instellingen toe op de interne gebruiker terwijl de externe repository gezaghebbend blijft voor wachtwoorden en geselecteerde gebruikersgegevens.

Voor Active Directory bevat FoxIDs een op IIS deploybare Directory Connector voor Active Directory-component.

Gebruik Directory Connector wanneer:

  • gebruikers zich moeten aanmelden met de normale login-authenticatiemethode.
  • u gebruikers uit een bestaande directory wilt inschakelen voor OpenID Connect- en SAML 2.0-applicaties via FoxIDs.
  • uw externe directory gezaghebbend is voor wachtwoordvalidatie en wachtwoordwijzigingen.
  • u wilt dat FoxIDs een intern gebruikersrecord bewaart met identifiers, eigenschappen, claims, multi-factor-authenticatie (MFA)-instellingen, toegangstoewijzingen en optioneel een lokale kopie van het wachtwoord.
  • u later wilt kunnen overstappen naar interne gebruikers en wachtwoordvalidatie in FoxIDs zonder alle gebruikers door een wachtwoordreset te dwingen.

Er is één Directory Connector per omgeving. Wanneer deze is ingeschakeld, geldt deze op omgevingsniveau.

Hoe het werkt

Wanneer een gebruiker zich aanmeldt met gebruikersnaam en wachtwoord, roept FoxIDs de Directory Connector API aan.

Bij succesvolle validatie maakt FoxIDs de interne gebruiker in de omgeving aan of werkt deze bij op basis van de API-respons. De respons moet een stabiele directoryUserId bevatten, die op de interne gebruiker wordt opgeslagen en wordt gebruikt om de FoxIDs-gebruiker te koppelen aan de gebruiker in de externe directory.

De directoryUserId is geen gebruikersidentifier die bij de eindgebruiker bekend is. Het is een aparte stabiele externe directory-ID. Gebruik e-mail, telefoon of gebruikersnaam niet als directoryUserId, omdat deze waarden kunnen veranderen. De waarde moet stabiel en uniek zijn in de externe directory.

Als FoxIDs de directoryUserId van de interne gebruiker al kent, wordt deze in de Directory Connector-aanvraag meegestuurd samen met precies één van de gebruikersidentifiers: e-mail, telefoon of gebruikersnaam. Hierdoor kan de externe directory de gebruiker identificeren, zelfs als een identifier is gewijzigd.

Als de Directory Connector API de gebruiker succesvol valideert, werkt FoxIDs de interne gebruiker bij met de identifiers, geselecteerde eigenschappen en claims die door de API zijn geretourneerd.

Als de connector meldt dat de gebruiker is uitgeschakeld of verwijderd, zal FoxIDs de interne gebruiker in de omgeving uitschakelen of verwijderen.

Lokale wachtwoordkopie

De externe directory is gezaghebbend zolang Directory Connector is ingeschakeld. FoxIDs valt niet terug op de lokale wachtwoordhash als de Directory Connector API tijdelijk niet beschikbaar is.

Standaard slaat FoxIDs een lokale kopie van het wachtwoord op bij de interne gebruiker na een succesvolle wachtwoordvalidatie via de connector of na een bewerking in de wachtwoordlevenscyclus. Dit kan worden uitgeschakeld in de omgevingsinstellingen.

De lokale wachtwoordkopie wordt niet gebruikt zolang Directory Connector is ingeschakeld. Deze bestaat om later een overstap naar interne gebruikers en wachtwoordvalidatie in FoxIDs mogelijk te maken zonder alle gebruikers te dwingen hun wachtwoord te resetten.

Wachtwoordlevenscyclus

Bewerkingen in de wachtwoordlevenscyclus worden gedelegeerd aan de Directory Connector API:

  • Wachtwoordauthenticatie roept het authentication-endpoint aan.
  • Login create-user flow calls the create-user endpoint.
  • Het wijzigen van het gebruikerswachtwoord roept het change-password-endpoint aan.
  • De stromen voor wachtwoord instellen en wachtwoord resetten roepen het set-password-endpoint aan.

FoxIDs roept normaal alleen endpoints voor de wachtwoordlevenscyclus aan wanneer de interne gebruiker bekend is en een directoryUserId heeft. De uitzondering is change-password tijdens de eerste aanmelding, wanneer de externe directory password_expired heeft teruggegeven voordat FoxIDs de interne gebruiker heeft aangemaakt. In dat geval verzendt FoxIDs de login-identifier en het huidige wachtwoord zonder directoryUserId; na een geslaagde wachtwoordwijziging gebruikt FoxIDs de succesvolle respons om de interne gebruiker aan te maken en de geretourneerde directoryUserId op te slaan.

FoxIDs werkt zijn interne wachtwoordgeschiedenis niet bij wanneer Directory Connector wordt gebruikt, omdat FoxIDs niet noodzakelijk alle wachtwoordwijzigingen in de externe directory kent.

Wachtwoordbeleid en foutmeldingen

De externe directory handhaaft het wachtwoordbeleid. FoxIDs gebruikt het wachtwoordbeleid van de omgeving wanneer het foutmeldingen over wachtwoordbeleid weergeeft die door de connector zijn geretourneerd.

Configureer het wachtwoordbeleid van de omgeving zodat dit overeenkomt met het wachtwoordbeleid van de externe directory. Als ze niet overeenkomen, kunnen gebruikers wachtwoordhints zien die niet overeenkomen met de werkelijke vereisten van de externe directory.

Als de externe directory bijvoorbeeld een wachtwoord afwijst omdat het te kort is, gebruikt FoxIDs de minimale wachtwoordlengte van de omgeving bij het weergeven van de foutmelding.

API implementeren

U implementeert een Directory Connector API en configureert FoxIDs met de basis-URL en het secret.

The API has a base URL and four endpoints:

  • authentication valideert het huidige wachtwoord van een gebruiker.
  • create-user creates a new user in the external directory and returns the created user.
  • change-password valideert het huidige wachtwoord en wijzigt het naar een nieuw wachtwoord.
  • set-password stelt een nieuw wachtwoord in zonder het huidige wachtwoord te valideren.

Als de basis-URL https://somewhere.org/directory is, zijn de endpoints:

  • https://somewhere.org/directory/authentication
  • https://somewhere.org/directory/create-user
  • https://somewhere.org/directory/change-password
  • https://somewhere.org/directory/set-password

FoxIDs Cloud roept uw API aan vanaf IP 57.128.60.142. IP-adressen kunnen wijzigen of worden uitgebreid.

Beveiliging

Aanvragen worden beveiligd met HTTP Basic authentication:

  • Gebruikersnaam: directory_connector
  • Wachtwoord: het geconfigureerde API-secret

De call is een HTTP POST met een JSON-body.

FoxIDs stuurt de geselecteerde taal in de HTTP-requestheader Accept-Language, bijvoorbeeld Accept-Language: da-DK. In een aanmeldflow volgt deze de taal die via ui_locales of de browser is geselecteerd, met Engels als terugvaltaal in FoxIDs. De API kan deze header gebruiken om berichten voor de gebruiker te lokaliseren en moet een eigen terugvaltaal kiezen als de gevraagde taal niet wordt ondersteund. Deze header wordt naar alle vier de endpoints gestuurd.

Authentication-aanvraag

Het authentication-endpoint ontvangt het wachtwoord van de gebruiker en precies één gebruikersidentifier. FoxIDs verzendt directoryUserId als de interne gebruiker bestaat en de waarde bekend is.

{
  "directoryUserId": "a1b2c3d4",
  "email": "user1@somewhere.org",
  "password": "testpass1"
}

Velden:

  • directoryUserId is optioneel. FoxIDs verzendt deze wanneer de interne gebruiker bestaat en de waarde bekend is.
  • Precies één van email, phone of username wordt verzonden.
  • password is verplicht.

FoxIDs selecteert de identifier op basis van de login-invoer van de gebruiker en de ingeschakelde identifierinstellingen. Als bijvoorbeeld alleen gebruikersnaam is ingeschakeld en de gebruiker user1@somewhere.org invoert, verzendt FoxIDs die waarde als username. FoxIDs verwijdert omringende witruimte voordat de gebruikersnaam naar de connector wordt verzonden.

Create-user request

Het endpoint create-user ontvangt precies één gebruikersidentifier, een verplicht wachtwoord, geselecteerde create-user-eigenschappen en claims die tijdens de FoxIDs create-user-flow zijn verzameld.

{
  "email": "user1@somewhere.org",
  "password": "testpass1",
  "confirmAccount": true,
  "requireMultiFactor": false,
  "claims": [
    { "type": "given_name", "value": "User" },
    { "type": "family_name", "value": "One" }
  ]
}

Velden:

  • Er wordt precies één van email, phone of username verstuurd.
  • password is verplicht. Gebruiker aanmaken zonder wachtwoord wordt niet ondersteund met Directory Connector, omdat de Directory Connector API gebruikers met een wachtwoord authenticeert.
  • confirmAccount en requireMultiFactor zijn de gevraagde instellingen voor het aanmaken van de gebruiker in FoxIDs.
  • claims bevat de claims die geen identifiers zijn en die tijdens het aanmaken van de gebruiker in FoxIDs worden verzameld.

Retourneer bij succes een normale succesrespons. FoxIDs slaat de geretourneerde directoryUserId op bij de interne gebruiker die wordt aangemaakt nadat de gebruiker in de externe directory is aangemaakt.

Change-password-aanvraag

Het change-password-endpoint ontvangt precies één gebruikersidentifier, het huidige wachtwoord en het nieuwe wachtwoord. FoxIDs verzendt directoryUserId wanneer de interne gebruiker bestaat en de waarde bekend is.

{
  "directoryUserId": "a1b2c3d4",
  "email": "user1@somewhere.org",
  "currentPassword": "oldpass1",
  "newPassword": "newpass1"
}

Velden:

  • directoryUserId is optioneel. FoxIDs verzendt deze wanneer de interne gebruiker bestaat en de waarde bekend is. Deze kan worden weggelaten tijdens de eerste aanmelding als de externe directory een wachtwoordwijziging vereist voordat FoxIDs de interne gebruiker heeft aangemaakt.
  • Precies één van email, phone of username wordt verzonden.
  • currentPassword en newPassword zijn verplicht.

Set-password-aanvraag

Het set-password-endpoint ontvangt de stabiele directorykoppeling van de gebruiker, precies één gebruikersidentifier en een nieuw wachtwoord.

{
  "directoryUserId": "a1b2c3d4",
  "email": "user1@somewhere.org",
  "password": "newpass1"
}

Velden:

  • directoryUserId wordt verzonden en moet worden gebruikt als de stabiele directorykoppeling.
  • Precies één van email, phone of username wordt verzonden. FoxIDs selecteert de eerste beschikbare interne gebruikersidentifier in deze volgorde: e-mail, telefoon, gebruikersnaam.
  • password is verplicht.

Succesrespons

Bij succes moet de API HTTP-statuscode 200 en een gebruikersrespons retourneren.

{
  "directoryUserId": "a1b2c3d4",
  "email": "user1@somewhere.org",
  "phone": "+4511223344",
  "username": "user1",
  "confirmAccount": true,
  "emailVerified": true,
  "phoneVerified": true,
  "disableTwoFactorApp": false,
  "disableTwoFactorSms": false,
  "disableTwoFactorEmail": false,
  "requireMultiFactor": false,
  "claims": [
    { "type": "name", "value": "User One" },
    { "type": "role", "value": "employee" }
  ]
}

FoxIDs gebruikt de respons om de interne gebruiker in de omgeving aan te maken of bij te werken.

Velden:

  • directoryUserId is verplicht. Deze moet stabiel en uniek zijn in de externe directory en wordt opgeslagen op de interne FoxIDs-gebruiker.
  • email, phone en username zijn elk afzonderlijk optioneel, maar minstens één moet aanwezig zijn. FoxIDs slaat de geretourneerde waarden op als identifiers van de interne gebruiker. Geretourneerde gebruikersidentifierwaarden moeten één gebruiker uniek identificeren in de externe directory die door de connector wordt gebruikt.
  • phone moet de landcode bevatten in internationaal formaat, bijvoorbeeld +4511223344.
  • confirmAccount bepaalt of FoxIDs een bevestigingsstroom moet uitvoeren om de interne gebruiker te bevestigen.
  • emailVerified bepaalt of de e-mail van de interne gebruiker als geverifieerd wordt gemarkeerd.
  • phoneVerified bepaalt of het telefoonnummer van de interne gebruiker als geverifieerd wordt gemarkeerd.
  • disableTwoFactorApp schakelt twee-factor-authenticatie met een authenticator-app uit voor de interne gebruiker.
  • disableTwoFactorSms schakelt sms-twee-factor-authenticatie uit voor de interne gebruiker.
  • disableTwoFactorEmail schakelt e-mail-twee-factor-authenticatie uit voor de interne gebruiker.
  • requireMultiFactor bepaalt of de interne gebruiker multi-factor-authenticatie moet gebruiken.
  • claims is optioneel. FoxIDs slaat de geretourneerde claims op bij de interne gebruiker.

FoxIDs negeert claims waarvan type of value ontbreekt, null is, leeg is of alleen witruimte bevat. Als tracelogging van berichten is ingeschakeld, bevat de responstrace de ontvangen claims voordat ze worden gefilterd. Lange traceberichten worden afgekapt.

Foutrespons

Als Basic authentication wordt afgewezen, retourneer dan HTTP-statuscode 401 en invalid_api_id_secret.

{
  "error": "invalid_api_id_secret",
  "errorMessage": "Invalid API ID or secret."
}

Als de gebruiker niet bestaat bij het aanroepen van het authentication-endpoint zonder een directoryUserId, retourneer dan HTTP-statuscode 400, 401 of 403 en user_not_exists.

{
  "error": "user_not_exists",
  "errorMessage": "User not found."
}

Als het wachtwoord wordt afgewezen door het authentication-endpoint, retourneer dan HTTP-statuscode 400, 401 of 403 en invalid_password.

{
  "error": "invalid_password",
  "errorMessage": "Invalid password."
}

Als de gebruikersidentifier en het wachtwoord geldig zijn maar de aanmelding om een andere reden wordt afgewezen, retourneer dan HTTP-statuscode 400, 401 of 403 en login_rejected vanuit authentication. Dit wordt zowel met als zonder directoryUserId ondersteund. Het optionele uiErrorMessage wordt als gewone tekst op het aanmeldformulier getoond. De API levert het vertaalde bericht op basis van Accept-Language.

{
  "error": "login_rejected",
  "errorMessage": "Credentials verified; login rejected by directory policy.",
  "uiErrorMessage": "You cannot log in here. Contact support."
}

Als uiErrorMessage ontbreekt, null of leeg is of alleen witruimte bevat, toont FoxIDs hetzelfde gelokaliseerde algemene aanmeldbericht als bij invalid_password, user_not_exists, user_disabled en user_deleted. Een afgewezen aanmelding telt mee voor de bestaande bescherming tegen herhaalde mislukte aanmeldpogingen. De interne gebruiker wordt hierdoor niet aangemaakt, bijgewerkt, uitgeschakeld of verwijderd.

Als het huidige wachtwoord wordt afgewezen door het change-password-endpoint, retourneer dan HTTP-statuscode 400, 401 of 403 en invalid_current_password.

{
  "error": "invalid_current_password",
  "errorMessage": "Invalid current password."
}

Het veld errorMessage bevat diagnostische tekst voor de logboeken van FoxIDs en wordt niet aan de eindgebruiker getoond. Vermeld de reden voor de fout, maar neem nooit wachtwoorden, API-geheimen of privésleutels op.

FoxIDs toont een geretourneerd uiErrorMessage alleen voor login_rejected. Voor andere ondersteunde foutcodes kiest FoxIDs het bericht voor de gebruiker uit de eigen gelokaliseerde tekstbronnen. Diagnostische tekst in errorMessage wordt nooit als terugval gebruikt voor een bericht voor de gebruiker.

Ondersteunde foutcodes per endpoint:

Foutcode authentication create-user change-password set-password Betekenis
invalid_api_id_secret Ja Ja Ja Ja De API-gebruikersnaam of het geheim voor HTTP Basic authentication is ongeldig.
user_exists Nee Ja Nee Nee Er bestaat al een gebruiker met de opgegeven identifier in de externe directory.
user_not_exists Ja, zonder directoryUserId Nee Ja, zonder directoryUserId Nee Geen gebruiker in de externe directory komt overeen met de opgegeven gebruikersidentifiers.
invalid_password Ja Nee Nee Nee De directory heeft het wachtwoord in een authenticatieverzoek afgewezen.
login_rejected Ja Nee Nee Nee De aanmelding is afgewezen nadat de gebruikersidentifier en het wachtwoord zijn geverifieerd. Een optioneel uiErrorMessage wordt op het aanmeldformulier getoond.
invalid_current_password Nee Nee Ja Nee De directory heeft het huidige wachtwoord in een verzoek om het wachtwoord te wijzigen afgewezen.
create_user_not_supported Nee Ja Nee Nee De connector ondersteunt het aanmaken van gebruikers in de externe directory niet.
user_disabled Ja Nee Ja Ja De gebruiker bestaat in de directory, maar is uitgeschakeld. FoxIDs schakelt de interne gebruiker uit.
user_deleted Ja, met directoryUserId Nee Ja, met directoryUserId Ja, met directoryUserId De gebruiker in de externe directory die via directoryUserId is gekoppeld, bestaat niet meer of is verwijderd. FoxIDs verwijdert de interne gebruiker.
password_not_accepted Ja Ja Ja Ja Het wachtwoord dat wordt gevalideerd, gebruikt om een gebruiker aan te maken, gewijzigd of ingesteld, is afgewezen door een wachtwoordregel in de directory waarvoor geen specifiekere code bestaat.
password_min_length Ja Ja Ja Ja Het wachtwoord dat wordt gevalideerd, gebruikt om een gebruiker aan te maken, gewijzigd of ingesteld, is korter dan de minimale wachtwoordlengte van de directory.
password_max_length Ja Ja Ja Ja Het wachtwoord dat wordt gevalideerd, gebruikt om een gebruiker aan te maken, gewijzigd of ingesteld, is langer dan de maximale wachtwoordlengte van de directory.
password_banned_characters Ja Ja Ja Ja Het wachtwoord dat wordt gevalideerd, gebruikt om een gebruiker aan te maken, gewijzigd of ingesteld, bevat een of meer tekens of woorden die de directory afwijst.
password_complexity Ja Ja Ja Ja Oudere fout voor tekencomplexiteit die FoxIDs interpreteert als password_character_variation. Gebruik voor nieuwe integraties een van de twee specifieke tekenfoutcodes.
password_character_repeat Ja Ja Ja Ja Het wachtwoord dat wordt gevalideerd, gebruikt om een gebruiker aan te maken, gewijzigd of ingesteld, bevat te veel herhaling van tekens.
password_character_variation Ja Ja Ja Ja Het wachtwoord dat wordt gevalideerd, gebruikt om een gebruiker aan te maken, gewijzigd of ingesteld, bevat onvoldoende variatie in tekens.
password_email_text_complexity Ja Ja Ja Ja Het wachtwoord dat wordt gevalideerd, gebruikt om een gebruiker aan te maken, gewijzigd of ingesteld, bevat het e-mailadres van de gebruiker of een deel daarvan.
password_phone_text_complexity Ja Ja Ja Ja Het wachtwoord dat wordt gevalideerd, gebruikt om een gebruiker aan te maken, gewijzigd of ingesteld, bevat het telefoonnummer van de gebruiker of een deel daarvan.
password_username_text_complexity Ja Ja Ja Ja Het wachtwoord dat wordt gevalideerd, gebruikt om een gebruiker aan te maken, gewijzigd of ingesteld, bevat de gebruikersnaam van de gebruiker of een deel daarvan.
password_url_text_complexity Ja Ja Ja Ja Het wachtwoord dat wordt gevalideerd, gebruikt om een gebruiker aan te maken, gewijzigd of ingesteld, bevat tekst die verband houdt met de URL van FoxIDs.
password_risk Ja Ja Ja Ja Het wachtwoord dat wordt gevalideerd, gebruikt om een gebruiker aan te maken, gewijzigd of ingesteld, staat bekend als riskant, gecompromitteerd of anderszins onveilig.
password_history Ja Ja Ja Ja Het wachtwoord dat wordt gevalideerd, gebruikt om een gebruiker aan te maken, gewijzigd of ingesteld, is afgewezen omdat het eerder is gebruikt.
password_expired Ja Ja Ja Ja Het wachtwoord dat wordt gevalideerd, gebruikt om een gebruiker aan te maken, gewijzigd of ingesteld, is verlopen en moet worden gewijzigd voordat de authenticatie kan doorgaan.
new_password_equals_current Nee Nee Ja Nee Het nieuwe wachtwoord is hetzelfde als het huidige wachtwoord. set-password kan deze fout niet retourneren omdat het endpoint het huidige wachtwoord niet ontvangt.

Bij fouten in het wachtwoordbeleid gebruikt FoxIDs het wachtwoordbeleid van de omgeving om de gebruikersgerichte foutmelding weer te geven. Zie Wachtwoordbeleid en foutmeldingen.

Retourneer alleen een foutcode die wordt ondersteund door het endpoint en de opgegeven directoryUserId, zoals hierboven vermeld. Een niet-ondersteunde code, een onjuist geformatteerd antwoord of een onverwachte HTTP-status is een integratiefout en leidt naar de algemene foutpagina. Retourneer HTTP-statuscode 500 bij een technische fout in de connector. Zie Browserfouten oplossen om de diagnostische details te vinden met de identifiers op de foutpagina.

Authenticatiefouten en privacy van gebruikers

Een niet-geauthenticeerde aanroeper mag niet uit een aanmeldfout kunnen afleiden of een gebruikersnaam of e-mailadres bestaat. Bij wachtwoordauthenticatie handelt FoxIDs de ondersteunde fouten als volgt af:

Connectorfout Resultaat voor de gebruiker
invalid_password, user_not_exists, user_disabled of user_deleted Hetzelfde algemene aanmeldbericht, bijvoorbeeld Verkeerde e-mail of wachtwoord., vertaald naar de actieve taal en aangepast aan de ingeschakelde aanmeldidentifiers.
login_rejected Het opgegeven uiErrorMessage, of hetzelfde algemene aanmeldbericht als het ontbreekt of leeg is, op dezelfde plaats op het aanmeldformulier.
password_not_accepted De pagina voor het wijzigen van het wachtwoord met algemene uitleg over het wachtwoordbeleid.
password_expired of een andere specifieke fout in het wachtwoordbeleid De pagina voor het wijzigen van het wachtwoord met de bijbehorende gelokaliseerde uitleg over het wachtwoordbeleid.

De connector moet het opgegeven huidige wachtwoord verifiëren voordat deze een fout in het wachtwoordbeleid retourneert vanuit authentication. Anders kan een andere pagina of melding een aanvaller in staat stellen gebruikers te ontdekken en hun identifiers te bevestigen door gebruikersnamen of e-mailadressen te raden. Verifieer bij change-password het huidige wachtwoord voordat u accountspecifieke uitleg over het nieuwe wachtwoord retourneert. Algemene formaatcontroles mogen niet onthullen of een account bestaat.

Als een gebruiker om welke reden dan ook niet via deze aanmeldflow mag inloggen, valideer dan eerst de opgegeven gebruikersidentifier en het wachtwoord. Retourneer pas een afwijzing op basis van deze beperking nadat beide zijn geverifieerd, zodat de beperking niet onthult of een geraden identifier bij een echte gebruiker hoort. Retourneer login_rejected vanuit authentication, vermeld de diagnostische reden in errorMessage en geef eventueel veilige instructies aan de gebruiker in uiErrorMessage. Als de aanmeldgegevens niet kunnen worden geverifieerd, retourneer dan de normale authenticatiefout zonder de beperking te onthullen.

FoxIDs vertrouwt erop dat de connector de aanmeldgegevens verifieert voordat deze login_rejected retourneert; een geslaagde accountzoekopdracht of kennis van directoryUserId is niet voldoende. Voordat de aanmeldgegevens zijn geverifieerd, moeten eventuele instructies of knoppen voor alternatieve aanmeldmethoden worden getoond onafhankelijk van de vraag of de opgegeven identifier overeenkomt met een account.

Gebruik user_disabled en user_deleted alleen om de bijbehorende accountstatus in de directory te melden. Deze codes schakelen ook de interne gebruiker uit of verwijderen deze en trekken diens toegang in; het zijn geen algemene codes om een aanmelding af te wijzen.

Handel fouten voor bekende en onbekende identifiers op dezelfde manier af, inclusief waarneembare responstijden en bescherming tegen herhaalde pogingen. Een algemeen bericht alleen voorkomt niet dat gebruikers worden ontdekt als een andere omleiding, status of responstijd het resultaat onthult. Volg bij het implementeren van de connector de richtlijnen van OWASP voor authenticatiefouten.

API-voorbeeld

Het voorbeeld DirectoryConnectorApiSample laat zien hoe u de Directory Connector API implementeert in ASP.NET Core.

Het voorbeeld bevat:

  • de endpoints authentication, create-user, change-password en set-password.
  • HTTP Basic authentication met de API-gebruikersnaam directory_connector.
  • een kleine in-memory-directory met demo-gebruikers en stabiele directoryUserId-waarden.
  • voorbeelden van fouten in wachtwoordbeleid zoals password_min_length, password_banned_characters en new_password_equals_current.
  • een voorbeeld van een uitgeschakelde gebruiker die user_disabled retourneert.

De Postman-collectie directory-connector-api.postman_collection.json kan worden gebruikt om de voorbeeld-API aan te roepen en te testen met Postman.

Active Directory-component

FoxIDs bevat een Directory Connector voor Active Directory-component die naar IIS kan worden gedeployed. De component implementeert de Directory Connector API voor één AD/LDAP-domein en kan wachtwoorden valideren, wachtwoorden wijzigen, wachtwoorden instellen, geconfigureerde AD-attributen als claims retourneren en geconfigureerde geneste AD-groepslidmaatschappen als claims retourneren.

Configureren

Configureer Directory Connector in de omgevingsinstellingen in FoxIDs Control Client.

  1. Selecteer het tabblad Settings.
  2. Selecteer het tabblad Environment.
  3. Zoek de sectie Directory Connector.
  4. Schakel Directory Connector in.
  5. Voeg de basis-API-URL zonder de endpointmap toe in API URL.
  6. Voeg het API secret toe.
  7. Bepaal of er een lokale wachtwoordkopie moet worden opgeslagen.
  8. Configureer het wachtwoordbeleid van de omgeving zodat dit overeenkomt met het wachtwoordbeleid van de externe directory.
  9. Klik op Update.

Instellingen voor Directory Connector