Jeg vil vise forskellige skærme baseret på hvilken tilsluttet app der bruges til at logge ind på Salesforce. Kan loginflowet på en eller anden måde vide, hvilken tilsluttet app der bruges?

Der er flere Loginflow-variabler , vi kan udnytte, men ingen af dem indeholder den tilsluttede app.

Ingen af følgende synes nyttige i dette scenarie ( kilde ):

  • LoginFlow_LoginType – Denne variabel giver dig mulighed for at udpege en brugertype til Flow / Org.
  • LoginFlow_IpAddress – Denne variabel fungerer som en brugers IP-adresse. Gennem denne variabel har du beføjelse til at delegere en IP-adresse til en bruger, profil og andre brugerrelaterede felter.
  • LoginFlow_UserAgent – Denne variabel står som brugerens browserstreng. Det giver dig også mulighed for at forhindre brugere i at bruge Internet
    Explorer til at logge ind på din organisation.
  • LoginFlow_Platform – Denne variabel viser dig, hvilken slags system (dvs. Mac OSX) dine brugere logger ind fra.
  • LoginFlow_Application – Svarende til ovenstående variabel; det viser dog, hvilken type enhed dine brugere logger ind på (dvs. iPhone, tablet, desktop osv.), så du ved, hvilken slutplacering de skal flytte dem til.
  • LoginFlow_Community – Denne variabel viser, hvilket fællesskab din bruger er i øjeblikket i, hvis relevant. LoginFlow_SessionLevel – Denne variabel er ansvarlig for sikkerhed og fungerer enten med høj eller standard sikkerhed.
  • LoginFlow_UserId – Denne variabel fungerer til at vise tegn-ider (op til 18 tegn lange) og giver dig også mulighed for at slå dine brugere op og søge i systemet for at finde lignende felter.

Kommentarer

  • Vil en enkelt bruger blive tildelt til at logge ind på din organisation fra mere end en tilsluttet app? Vil de også logge ind ved hjælp af SSO, eller vil de bruge deres UserId / PW?
  • Ja, de kan bruge flere tilsluttede apps til at logge ind. Salesforce er identitetsudbyderen, så de kan bruge deres Salesforce-brugernavn / adgangskode eller Facebook eller Google Auth-udbydere.
  • Gælder dette for ALLE brugere (intern & ekstern ) eller kun for fællesskabsbrugere? Hvis kun til fællesskabsbrugere, kan jeg give en løsning. Hvis det gælder alle brugere, har du måske ikke held og lykke.
  • Kun brugere af samfundet. Vi bruger Community Login-licensen til IdP

Svar

Du kan være heldig. Der er noget, der kalder ExperienceID eller expid, der potentielt kan bruges til at gøre, hvad du vil opnå. Dets primære formål er at være i stand til at tilpasse “branding-oplevelsen” for kunder afhængigt af om, hvor de sendes til dit samfund fra.

Du kan lære mere om det ved at læse dette link til Salesforce External Identity Implementation Guide og også ved at læse Skift dine brugeres loginoplevelse med dynamisk branding fra udgivelsesnoterne til Winter 18 . Hvis du forbinder hver tilsluttet app med en anden expid, det ser ud til, at du kunne bruge det til at opnå det, du vil have med dine Connected Apps ved at tildele hver app en unik udløb.

ExperienceID kan derefter bruges til at udvide en slutpunkt ved hjælp af en af to forskellige strategier som vist nedenfor.

Udvid følgende slutpunkter med expid_value.

  • community-url / services / oauth2 / authorize / expid_value
  • community-url / idp / endpoint / HttpPost / expid_value
  • community-url / idp / endpoint / HttpRedirect / expid_value

Udvid følgende slutpunkter med expid = {value}.

  • community-url_login_page? Expid = {value}
  • community-url / CommunitiesSelfReg? Expid = {value}
  • community-url / .well-known / auth-configuration? expid = {value}

Indsend en anden ekspideringsværdi til selvregistreringssiden for at levere et andet registreringsflow for hver brand.

Oplevelses-id-værdien registreres i en cookie snarere end i URLen. For eksempel, hvis expid_value er indstillet til Kunder, har en tilknyttet cookie værdien expid_Customers.

Kommentarer

  • ret klogt svar
  • Spørgsmålet, de kommer til " hvordan man får adgang til expid i en login-flow? "
  • @FernandoGavinho Det afhænger af, om du ' har videregivet den i en cookie eller som en del af den ekspideringsværdi, der kan opbevares i en fællesskabsbruger ' s profil. Du kan også bruge det som en startparameter til dit login-flow, da du ' har brugt det til at udvide login-slutpunktet.Det ser ud til, at du ' d har mange muligheder, afhængigt af hvordan du sender det fra din tilsluttede app.
  • I mit brugstilfælde bruger jeg SSO-slutpunktet " community-url / idp / endpoint / HttpPost / expid_value ". Jeg ved dog ikke ', hvordan jeg får adgang til denne værdi i flowet. Jeg kunne, hvis det var en visualforce-side, men er der en måde at få adgang til dem på flowet? Måske navngive en variabel kun til input? Jeg prøvede " expid " og " ExpId ", men det ser ikke ud til at fungere.
  • Fundet det. For at få adgang til expId i Login Flow skal du ringe til System.Site.getExperienceId () -metoden. Dette kan gøres i controlleren, hvis den ' er en Visualforce-side eller i en InvocableMethod, hvis den ' er et visuelt flow.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *