Loading
Identificer dine brugere, og håndter adgang
Headless Identity-API'er: forløbet for glemt adgangskode uden headless for kunder og partnere

Headless Identity-API'er: forløbet for glemt adgangskode uden headless for kunder og partnere

Opsæt en nulstillingsproces for adgangskode uden headless på din app ved brug af forløbet for glemt adgangskode uden headless, som kalder API for glemt adgangskode uden headless. Brug dette forløb sammen med andre headless-forløb til at levere oprindelige identitetsoplevelser. Med dette forløb kan en bruger, der har glemt vedkommendes adgangskode, bekræfte deres identitet og oprette en ny adgangskode uden nogensinde at forlade den brandede oplevelse af din app.

EditionsHeading

Tilgængelig i: både Salesforce Classic (ikke tilgængelig i alle organisationer) og Lightning Experience
Tilgængelig i: Enterprise, Unlimited og Developer Edition

Dette hjælpeindhold beskriver, hvordan du opsætter forløbet, og hvordan det fungerer. Hvis du vil opsætte en end-to-end-eksempelimplementering, kan du se Hovedløs identitetsimplementeringsvejledning.

Hvis du vil sikre, at du har fuldført alle forudsætningstrin, kan du se Checklister for ID-implementering uden headless.

Forløbet Headless - Glemt adgangskode løser en almindelig situation. Når en bruger glemmer sin adgangskode og ikke kan logge ind, giver dette forløb funktionaliteten til at nulstille den uden at afbryde din apps brandede oplevelse.

Da du administrerer Salesforce Customer Identity via Experience Cloud-lokaliteter, kan du kun konfigurere forløbet Glemt adgangskode uden headless for kunder og partnere ved brug af et Experience Cloud-lokalitetsunderdomæne, f.eks. https://MyExperienceCloudSite.my.site.com. Du kan ikke opsætte dette forløb for medarbejdere, der får adgang til Experience Cloud-lokaliteter eller for medarbejdere, der får adgang til Salesforce Platform med login.salesforce.com eller et firmaspecifikt Mit domæne-login-URL.

Forløbet for glemt adgangskode uden headless fungerer på samme måde for private klienter, f.eks. klientapps og offentlige klienter, f.eks. enkeltsideapps eller mobilapps. Hovedforskellen er de sikkerhedsindstillinger, som du aktiverer for private klienter og offentlige klienter. Disse sikkerhedsindstillinger kontrollerer, hvilke parametre der skal overføres i den indledende anmodning om nulstilling af adgangskode. Der er to sikkerhedsindstillinger, begge på siden Experience Cloud-login og registrering.

  • Kræv godkendelse for at få adgang til denne API
  • Kræv reCAPTCHA for at få adgang til denne API

For private klienter anbefaler vi, at du som minimum aktiverer Kræv godkendelse for at få adgang til denne API. Med denne indstilling aktiveret skal du inkludere et adgangstoken, der er udstedt til en intern integrationsbruger i dine anmodninger om Glemt adgangskode-API for headless. Adgangstokenet skal indeholde forgot_password. For ekstra beskyttelse kan du også aktivere Kræv RECAPTCHA for at få adgang til denne API.

For offentlige klienter som mobilapps anbefaler vi, at du aktiverer Kræv reCAPTCHA for at få adgang til denne API. Med denne indstilling aktiveret skal du inkludere et reCAPTCHA-token i din indledende anmodning om Glemt adgangskode-API for headless. Vi anbefaler ikke aktivering af Kræv godkendelse for at få adgang til denne API, da en offentlig klient ikke kan bevare adgangstokenet hemmeligt.

Bemærk
Bemærk

Offentlige klienter skal også implementere en API-gateway mellem klienten og Salesforce for at vedligeholde sikkerheden.

Hvis du vil udvide dine mailskabelonindstillinger for den engangsadgangskode-mail (OTP), der sendes til slutbrugere under forløbet, skal du tilmelde dig mailskabelonens tilladelsesliste og oprette en tilladelsesliste med tilpassede skabeloner. Se Brug flere mailskabeloner til headless-forløb.

Brugere angiver som standard deres brugernavn for at nulstille deres adgangskode. Hvis du vil give brugerne flere muligheder, skal du opsætte headless-brugerdiscovery. Udvikl f.eks. et forløb, hvor brugere angiver deres mailadresse, telefonnummer eller endda et bestillingsnummer. Se Headless Login uden brugernavn.

Dette diagram viser, hvordan din app interagerer med Salesforce for at nulstille en adgangskode.

Forløbet inkluderer en indledende anmodning, et svar fra Salesforce, en mail, en anden anmodning og en endelig succesmeddelelse fra Salesforce.

Lad os se nærmere på trinnene i dette forløb, der involverer interaktioner mellem din bruger, din app og Salesforce.

  • Din klient anmoder om en adgangskodenulstilling (1).
  • Salesforce returnerer en succesmeddelelse (2) og kontrollerer, at brugeren findes og er bekræftet.
  • Salesforce genererer og mailer en engangsadgangskode (3).
  • Din klient indsender den nye adgangskode (4).
  • Salesforce bekræfter adgangskoderne og returnerer en bekræftelsesmeddelelse (5).

Din klient anmoder om en adgangskodenulstilling

Når din bruger har startet processen med nulstilling af adgangskode, sender din klient en POST-anmodning til slutpunktet for glemt adgangskode uden headless på din Experience Cloud-lokalitet (1).

Her er URI'en for POST-anmodningen.

/services/auth/headless/forgot_password

Medtag disse sidehoveder i anmodningen.

Initialiser nulstilling af adgangskode: Anmodningssidehoveder
Sidehoved Påkrævet? Beskrivelse
Authorization: Bearer

Krævet, hvis du aktiverer Kræv godkendelse for at få adgang til denne API på siden Experience Cloud-login og registrering.

For private klienter anbefaler vi, at du altid aktiverer denne indstilling.

For offentlige klienter anbefaler vi aldrig aktivering af denne indstilling.

Indeholder et adgangstoken, der er udstedt til en intern integrationsbruger. Hvis du vil hente adgangstokenet, skal du bruge ethvert OAuth-standardforløb, som Salesforce understøtter. Sørg for, at du tildeler omfanget forgot_password til den tilsluttede app, der udsteder tokenet, eller overfører det som en parameter under OAuth-forløbet.
Content-Type Nej. Angiver formatet på din anmodning, f.eks. application/json.

Medtag disse parametre i anmodningens brødtekst.

Initialiser nulstilling af adgangskode: Anmod om brødtekstparametre
Parameter Påkrævet? Beskrivelse
username Krævet, hvis du ikke bruger headless-brugeropdagelse. Brugernavnet til kontoen.
login_hint Krævet, hvis du bruger en Apex Discovery-handler uden headless. En identifikator, som din Apex-handler bruger til at finde en brugers Salesforce-konto. Indsaml f.eks. en brugers bestillingsnummer i din app og overfør det i parameteren login_hint. Vi sender login_hint værdien direkte til din Apex-handler.
customdata

Krævet, hvis du bruger en headless-brugerdiscovery-handler, der håndterer tilpassede data. Hvis du f.eks. også bruger handleren med et loginforløb, der håndterer tilpassede data, skal du overføre tilpassede data i forløbet for glemt adgangskode.

Ellers er det valgfrit, men kan være nyttigt til at hjælpe din handler med at finde brugeren.

En JSON-streng, der indeholder yderligere data, som din Apex headless discovery-handler bruger til at finde en brugers Salesforce-konto. Videregiv f.eks. oplysninger om brugerens landestandard.
emailtemplate Nej.

Det tilpassede udviklernavn for mailskabelon.

Hvis du aktiverer Brug kun tilladelseslistede mailskabeloner i dine Experience Cloud-indstillinger, kan denne parameter kun indeholde en mailskabelon fra tilladelseslisten.

Hvis du ikke aktiverer mailskabelonens tilladelsesliste, kan denne parameter inkludere enhver skabelon i din organisation.

Hvis du vil kontrollere sproget for en tilpasset mailskabelon, skal du oprette en skabelon på det ønskede sprog.

Hvis du ikke inkluderer denne parameter, bruger Salesforce den mailskabelon, der er konfigureret i dine Experience Cloud-indstillinger, uanset om mailskabelonens tilladelsesliste er aktiveret. Med denne indstilling bestemmer Salesforce sproget fra brugerens indstillinger. Se sprog, landestandard og valutaindstillinger.

recaptcha

Krævet, hvis disse betingelser gælder for dig.

  • Du har aktiveret Kræv reCAPTCHA for at få adgang til denne API på siden Experience Cloud-login og registrering. For offentlige klienter anbefaler vi, at du altid aktiverer denne indstilling. For private klienter skal du aktivere denne indstilling som et ekstra lag af sikkerhed udover aktivering af Kræv godkendelse for at få adgang til denne API.
  • Du bruger reCAPTCHA v2 eller v3.
Et krypteret token, der er udstedt af Google reCAPTCHA API, når en bruger fuldfører en reCAPTCHA-udfordring.
recaptchaevent

Krævet, hvis disse betingelser gælder for dig:

  • Du har aktiveret Kræv reCAPTCHA for at få adgang til denne API på siden Experience Cloud-login og registrering.
  • Du bruger reCAPTCHA Enterprise.

Et JSON-objekt, der indeholder disse underparametre.

  • token – Et krypteret token, der udstedes af Google reCAPTCHA API, når en bruger fuldfører en reCAPTCHA-udfordring.
  • siteKey – Google reCAPTCHA-lokalitetsnøglen.
  • (Valgfrit)expectedAction – Den handling, som du forventer, at brugeren skal udføre for at starte reCAPTCHA, f.eks. login. Denne parameter knyttes til Googles action parameter.
  • projectId – Projekt-id fra Google.

Hvis du ønsker flere oplysninger, kan du se Google reCAPTCHA-dokumentationen.

Her er der en eksempelanmodning for en offentlig klient, der bruger en tilpasset mailskabelon. Den indeholder et reCAPTCHA-token til sikkerhed og en emailtemplate-parameter med udviklernavnet på en tilpasset skabelon.

POST /services/auth/headless/forgot_password HTTP/1.1
Host: MyDomainName.my.site.com
Content-Type: application/json
{
    "username":"lhansen@example.com",,
    "emailtemplate":"unfiled$public/SalesNewCustomerEmail",
    "recaptcha": "<recaptcha token>"
}

Her er der en eksempelanmodning for en privat klient, der bruger standardmailskabelonen. Det inkluderer et adgangstoken til sikkerhed.

POST /services/auth/headless/forgot_password HTTP/1.1
Host: MyDomainName.my.site.com
Authorization: Bearer 00DR****************
Content-Type: application/json

{
    "username": "lhansen@example.com"
}

Her er der en eksempelanmodning for en privat klient, der bruger headless-brugerdiscovery.

POST /services/auth/headless/forgot_password HTTP/1.1
Host: MyDomainName.my.site.com
Authorization: Bearer 00DR****************
Content-Type: application/json

{
    "login_hint": "<user identifier such as email address, phone number, order number>",
    "customdata": {
        "firstName": "Lyle",
        "lastName": "Hansen"
    }
}

(Valgfrit) Headless-bruger Discovery-handler finder bruger

Hvis du bruger en headless-brugerdiscovery-handler, tager handleren login_hint og customdata-parametre og finder den tilknyttede bruger. Handleren bekræfter, at mailadressen eller telefonnummeret for brugeren er bekræftet.

Hvis du ønsker en eksempelhandler, kan du se Auth.HeadlessUserDiscoveryHandler.

Salesforce returnerer en succesmeddelelse og bekræfter brugernavnet

Når Salesforce modtager anmodningen om glemt adgangskode, sender det en succesmeddelelse til klienten (2). Hvis du ikke bruger en headless discovery-handler, bekræfter Salesforce derefter, at brugernavnet matcher en konto. Hvis brugernavnet ikke matcher en konto, stopper forløbet.

Her er et eksempel på et vellykket svar.

{
    "status": "success",
    "status_code": "otp_sent"
}

Hvis anmodningen mislykkes, returnerer Salesforce en fejlmeddelelse, der beskriver anmodningen. For de fleste fejl returnerer Salesforce fejlmeddelelsen i dette format.

{
"status_code": "<error code>",
"<error name>": "<error description>",
"status": "failed"
}

Hvis f.eks. klienten bruger den forkerte type HTTPS-anmodning, returnerer Salesforce dette fejlsvar.

{
"status_code": "post_required",
"invalid request": "use a POST request",
"status": "failed"
}

For den invalid_recaptcha fejlkode indeholder svaret yderligere oplysninger fra Googles reCAPTCHA-tjeneste. Sådan formateres disse svar.

{
"status_code": "invalid_recaptcha",
"invalid_request: "invalid reCAPTCHA token",
"status": "failed",
"recaptcha_response": {
    "success": <true or false>,
    "challenge_ts": <timestamp of the challenge in ISO format (yyyy-MM-dd'T'HH:mm:ssZZ)>,
    "hostname": "<host name of the client where the reCAPTCHA was solved>",
    "error-codes": [<error codes from Google reCAPTCHA...>]
    }
}

Her er en oversigt over fejlsvarene.

Initialiser nulstilling af adgangskode: Fejl
Fejlkode Fejlenavn Fejlbeskrivelse Detaljer og løsning
authentication_req invalid_request include an authentication header Du får denne fejl, hvis du aktiverer indstillingen Kræv godkendelse for at få adgang til denne API (anbefales altid til private klienter), og du ikke sender adgangstokenet korrekt. Send adgangstokenet i et Authorization:Bearer-sidehoved.
headless_forgot_password_disabled invalid_experience enable the headless forgot password flow Aktiver Tillad nulstilling af adgangskode via forløbet Glemt adgangskode uden headless i dine Experience Cloud-indstillinger. Se Konfigurer Experience Cloud-indstillinger for forløbet Glemt adgangskode uden headless.
https_required invalid_request use a URL that starts with HTTPS Anmodningen overholder ikke HTTPS-protokollen. Gennemse Hyptertext Transfer Protocol-specifikationen, opdater anmodningen, og send den igen.
invalid_authorization invalid_request authentication failure Du får denne fejl, hvis du har aktiveret indstillingen Kræv godkendelse for at få adgang til denne API (anbefales altid for private klienter), og det adgangstoken, der er inkluderet i anmodningen, ikke er gyldigt. Adgangstokenet er f.eks. udløbet eller inkluderer ikke omfanget forgot_password. Kontroller adgangstokenet, og få et nyt om nødvendigt.
invalid_domain invalid_request invalid domain Anmodninger til dette slutpunkt understøttes kun for Experience Cloud-lokalitetsdomæner.
invalid_params invalid_request invalid parameters Anmodningen indeholder ikke-understøttede parametre, ellers er parametrene ikke formateret korrekt. Gennemse de understøttede sidehoved- og brødtekstparametre og eksempelanmodninger for initialisering af adgangskodenulstilling.
invalid_recaptcha invalid_request invalid reCAPTCHA token

For denne fejl inkluderer svaret et ekstra recaptcha_response-krav, der inkluderer den specifikke reCAPTCHA-fejl fra Google.

Hvis du ønsker flere oplysninger om specifikke fejl, kan du se disse ressourcer i Googles dokumentation.

invalid_template invalid_param invalid email template Bekræft, at klienten sender udviklernavnet på en tilpasset mailskabelon i parameteren emailtemplate.
missing_auth_params invalid_request include an authentication header or reCAPTCHA parameter Anmodninger til dette slutpunkt skal som minimum inkludere enten et adgangstoken eller et reCAPTCHA-token, afhængigt af din apptype og Experience Cloud-indstillinger. Gennemse Konfigurer Experience Cloud-indstillinger for forløbet Glemt adgangskode uden headless, og opdater anmodningen, så den matcher dine indstillinger.
not_allowed_template invalid_param email template not allowlisted Du får denne fejl, hvis du aktiverer mailskabelonens tilladelsesliste, og værdien i parameteren emailtemplate ikke er en del af tilladelseslisten. Hvis du ønsker flere oplysninger om tilladelseslister, kan du se Brug flere mailskabeloner til headless-forløb.
otp_generation_failed otp_error OTP generation failed Salesforce kunne ikke generere en OTP. Prøv at sende anmodningen igen.
post_required invalid_request use a POST request Anmodningstypen understøttes ikke. Send en HTTPS POST-anmodning.
recaptcha_req invalid_request include a reCAPTCHA parameter Du får denne fejl, hvis du aktiverer Kræv reCAPTCHA for at få adgang til denne API i dine Experience Cloud-lokalitetsindstillinger, og anmodningen ikke indeholder et reCAPTCHA-token i recaptcha-parameteren. Inkluder et reCAPTCHA-token.
unknown_error unknown_error retry your request Der var et problem med at sende anmodningen, men vi ved ikke, hvad der gik galt. Prøv at kontrollere din internetforbindelse, opdatere siden og sende anmodningen igen.
user_account_locked invalid_user user account is locked Brugeren er låst ude af sin konto. Hvis du vil gendanne adgangen, skal du låse brugeren op.

Salesforce genererer og mailer en engangsadgangskode

Salesforce bekræfter, at der findes en konto med brugerens brugernavn i systemet. Hvis kontoen findes, genererer den engangsadgangskode og sender den i en mail (3) til mailadressen på filen. Denne mail genereres ved brug af enten standardmailskabelonen eller ved at referere til en tilpasset skabelon fra emailtemplate-parameteren i den indledende anmodning. Hvis du ønsker oplysninger om tilpasning af mailskabelonen, kan du se Tilpas mail sendt fra Experience Cloud-lokaliteter.

Din klient sender den nye adgangskode

Når klienten modtager succesmeddelelsen fra Salesforce, viser klienten som standard en side til nulstilling af adgangskode for brugeren. Denne side skal indeholde felter for engangsadgangskode og brugerens nye adgangskode. Den nye adgangskode er underlagt Salesforce-adgangskodekravene. Når brugeren har udfyldt disse felter, sender klienten et andet brugernavn, OTP og ny adgangskode i en anden POST-anmodning til slutpunktet for glemt adgangskode (4).

Medtag disse sidehoveder i anmodningen.

Skift adgangskode: Anmodningssidehoveder
Sidehoved Påkrævet? Beskrivelse
Authorization: Bearer

Krævet, hvis du aktiverer Kræv godkendelse for at få adgang til denne API på siden Experience Cloud-login og registrering.

For private klienter anbefaler vi, at du altid aktiverer denne indstilling.

For offentlige klienter anbefaler vi aldrig aktivering af denne indstilling.

Indeholder et adgangstoken, der er udstedt til en intern integrationsbruger. Hvis du vil hente adgangstokenet, kan du bruge ethvert OAuth-standardforløb, som Salesforce understøtter. Sørg for, at du tildeler omfanget forgot_password til den tilsluttede app, der udsteder tokenet, eller overfører det som en parameter under OAuth-forløbet.
Content-Type Nej. Angiver formatet på din anmodning, f.eks. application/json.

Medtag disse parametre i anmodningens brødtekst.

Skift adgangskode: Anmod om brødtekstparametre
Parameter Påkrævet? Beskrivelse
username Krævet, hvis du ikke bruger en headless-brugerafdækningshandler. Brugernavnet til kontoen.
login_hint Krævet, hvis du bruger en headless-brugerafdækningshandler. Den identifikator, som din Apex-handler brugte til at finde en brugers Salesforce-konto.
otp Ja. Den engangsadgangskode, som Salesforce genererede og sendte en mail til brugeren.
newpassword Ja. Den nye adgangskode, som brugeren oprettede.

Her er der en eksempelanmodning for en privat klient.

POST /services/auth/headless/forgot_password HTTP/1.1
Host: MyDomainName.my.site.com
Authorization: Bearer 00DR****************
Content-Type: application/json

{
"username": "lhansen@example.com",
"otp" : "123abc",
"newpassword" : "abcd1234"
}

Her er der en lignende anmodning for offentlige klienter, der ikke inkluderer et adgangstoken. Da reCAPTCHA-tokenet blev sendt i den indledende anmodning, er det ikke påkrævet i denne.

POST /services/auth/headless/forgot_password HTTP/1.1
Host: MyDomainName.my.site.com
Content-Type: application/json
{
"username": "lhansen@example.com",
"otp" : "123abc",
"newpassword" : "abcd1234"
}

Salesforce bekræfter adgangskoderne og returnerer en succesmeddelelse

Når Salesforce modtager adgangskodeanmodningen, bekræfter det, at engangsadgangskode er gyldig, og det kontrollerer, at den nye adgangskode opfylder kravene. Hvis disse to kriterier opfyldes, indstilles den nye adgangskode. Når adgangskoden er ændret, sender Salesforce en succesmeddelelse til klienten (5). Sådan ser succesmeddelelsen ud.

{
    "status": "success",
    "status_code": "success"
}

Din klient skal advisere brugeren om, at ændringen er blevet accepteret, og at vedkommende kan logge ind med sin nye adgangskode.

Bemærk
Bemærk

Hvis klienten sender en ukorrekt adgangskode, eller den nye adgangskode ikke opfylder Salesforce-standardsikkerhedskravene, mislykkes nulstillingen af adgangskode. Hvis nulstillingen af adgangskode mislykkes, kan din klient maksimalt oprette fem forsøg på at nulstille adgangskoden ved brug af den samme OTP. Du kontrollerer det maksimale antal forsøg i dine Experience Cloud-indstillinger. Når der er for mange mislykkede forsøg, skal din klient sende en ny indledende anmodning om nulstilling af adgangskode, så der kan genereres en ny engangsadgangskode, som kan sendes med mail til din bruger.

Hvis adgangskodeændringen ikke lykkes, returnerer Salesforce et fejlsvar i dette format.

{
"status_code": "<error code>",
"<error name>": "<error description>",
"status": "failed"
}

Her er en oversigt over fejlene for denne anmodning.

Skift adgangskode: Fejl
Fejlkode Fejlenavn Fejlbeskrivelse Detaljer og løsning
headless_forgot_password_disabled invalid_experience enable the headless forgot password flow Aktiver Tillad nulstilling af adgangskode via forløbet Glemt adgangskode uden headless i dine Experience Cloud-indstillinger. Se Konfigurer Experience Cloud-indstillinger for forløbet Glemt adgangskode uden headless.
https_required invalid_request use a URL that starts with HTTPS Anmodningen overholder ikke HTTPS-protokollen. Gennemse Hyptertext Transfer Protocol-specifikationen, opdater anmodningen, og send den igen.
invalid_domain invalid_request invalid domain Anmodninger til dette slutpunkt understøttes kun for Experience Cloud-lokalitetsdomæner.
invalid_otp otp_error invalid OTP OTP'en matcher ikke det, som Salesforce sendte til brugeren, eller den er udløbet. Kontroller OTP, og anmod om en ny om nødvendigt.
invalid_params invalid_request invalid parameters Anmodningen indeholder ikke-understøttede parametre, ellers er parametrene ikke formateret korrekt. Gennemse de understøttede sidehoved- og brødtekstparametre og eksempelanmodninger for ændring af adgangskoden.
password_policy_check_failure password error password does not follow policy Adgangskoden følger ikke den adgangskodepolitik, der er konfigureret for din organisation. Udover den politik, du angiver, håndhæver Salesforce nogle adgangskodekrav for alle brugeradgangskoder. Se Angiv adgangskodepolitikker.
post_required invalid_request use a POST request Anmodningstypen er ikke gyldig. Send en HTTPS POST-anmodning.
regenerate_otp otp_error user made too many invalid attempts; regenerate OTP Brugeren forsøgte at bruge OTP for mange gange. Anmod om en ny OTP. Du kan kontrollere det maksimale antal forsøg på nulstilling af adgangskode, du tillader, før brugeren skal anmode om en ny OTP. Se Konfigurer Experience Cloud-indstillinger for forløbet Glemt adgangskode uden headless.
unknown_error unknown_error retry your request Der var et problem med at sende anmodningen, men vi ved ikke, hvad der gik galt. Prøv at kontrollere din internetforbindelse, opdatere siden og sende anmodningen igen.
user_account_locked invalid_user user account is locked Brugeren er låst ude af sin konto. Hvis du vil gendanne adgangen, skal du låse brugeren op.
 
Indlæser
Salesforce Help | Article