Ik wil verschillende schermen laten zien op basis van welke verbonden app wordt gebruikt om in te loggen bij Salesforce. Kan de login-stroom op de een of andere manier weten welke verbonden app wordt gebruikt?

Er zijn meerdere Login Flow-variabelen die we kunnen gebruiken, maar geen van deze bevat de verbonden app.

Geen van de volgende dingen lijkt nuttig voor dit scenario ( source ):

  • LoginFlow_LoginType – Met deze variabele kun je een gebruikerstype aanwijzen voor Flow / Org.
  • LoginFlow_IpAddress – Deze variabele fungeert als het IP-adres van een gebruiker. Via deze variabele heb je de bevoegdheid om een IP-adres te delegeren voor een gebruiker, profiel en andere gebruikersgerelateerde velden.
  • LoginFlow_UserAgent – Deze variabele staat als de browsertekenreeks van de gebruiker. Hiermee kunt u ook voorkomen dat gebruikers Internet
    Explorer gebruiken om in te loggen op uw organisatie.
  • LoginFlow_Platform – Deze variabele laat zien van welk soort systeem (d.w.z. Mac OSX) uw gebruikers inloggen.
  • LoginFlow_Application – Vergelijkbaar met de bovenstaande variabele; Het laat echter zien vanaf welk type apparaat uw gebruikers inloggen (bijv. iPhone, tablet, desktop, enz.), zodat u weet naar welke eindlocatie u ze moet verplaatsen.
  • LoginFlow_Community – Deze variabele laat zien in welke community je gebruiker momenteel zit, indien van toepassing. LoginFlow_SessionLevel – Deze variabele is verantwoordelijk voor de beveiliging en werkt met hoge of standaardgarantie.
  • LoginFlow_UserId – Deze variabele functioneert om karakter-IDs weer te geven (tot 18 karakters lang) en stelt je ook in staat om je gebruiker (s) op te zoeken en het systeem te doorzoeken om vergelijkbare velden te vinden.

Reacties

  • Zal een enkele gebruiker worden toegewezen om in te loggen bij uw organisatie vanuit meer dan één verbonden app? Zullen ze ook inloggen met SSO of zullen ze hun UserId / PW gebruiken?
  • Ja, ze kunnen meerdere verbonden apps gebruiken om in te loggen. Salesforce is de identiteitsleverancier, dus ze kunnen hun Salesforce-gebruikersnaam / -wachtwoord of Facebook- of Google-verificatieproviders gebruiken.
  • Geldt dit voor ALLE gebruikers (intern & extern ) of alleen voor communitygebruikers? Al was het maar voor Community-gebruikers, ik kan een oplossing bieden. Als voor alle gebruikers, u misschien pech heeft.
  • Alleen communitygebruikers. We gebruiken de Community Login-licentie voor IdP

Answer

Misschien heb je geluk. Er is iets met de naam ExperienceID of expid dat mogelijk kan worden gebruikt om te doen wat u wilt bereiken. Het primaire doel is om de “merkbeleving” aan klanten aan te passen, afhankelijk van van waaruit ze naar uw community worden gestuurd.

U kunt er meer over te weten komen door deze link naar de Salesforce External Identity Implementation Guide te lezen en ook door te lezen Wijzig de inlogervaring van uw gebruikers met dynamische branding uit de Winter 18 releaseopmerkingen . Als u elke verbonden app aan een andere expid, het lijkt mij dat je het zou kunnen gebruiken om te bereiken wat je wilt met je Connected Apps door elke app een unieke expid toe te wijzen.

De ExperienceID kan dan worden gebruikt om een eindpunt met een van de twee verschillende strategieën, zoals hieronder weergegeven.

Breid de volgende eindpunten uit met expid_value.

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

Breid de volgende eindpunten uit met expid = {value}.

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

Geef een andere expid-waarde door aan de zelfregistratiepagina om voor elke merk.

De ervaring-ID-waarde wordt vastgelegd in een cookie in plaats van in de URL. Als de expid_value bijvoorbeeld is ingesteld op Klanten, heeft een bijbehorende cookie de waarde expid_Customers.

Reacties

  • vrij slim antwoord
  • De vraag waar ze op komen " hoe toegang te krijgen tot de expid in een login-stroom? "
  • @FernandoGavinho Het hangt ervan af of je het ' hebt doorgegeven in een cookie of als onderdeel van de expid-waarde die kan worden bewaard in een communitygebruiker ' s profiel. Je zou het ook kunnen gebruiken als een startparameter voor je login-stroom, aangezien je het ' hebt gebruikt om het inlog-eindpunt uit te breiden.Het lijkt erop dat je ' veel opties hebt, afhankelijk van hoe je het doorgeeft vanuit je verbonden app.
  • In mijn geval gebruik ik het SSO-eindpunt " community-url / idp / endpoint / HttpPost / expid_value ". Ik weet echter niet ' hoe ik toegang moet krijgen tot deze waarde in de stroom. Ik zou het kunnen als het een visualforce-pagina was, maar is er een manier om ze op de stroom te openen? Misschien een variabele benoemen voor alleen invoer? Ik heb " expid " en " ExpId ", maar het lijkt niet te werken.
  • Vond het. Om toegang te krijgen tot de expId in de Login Flow, moet je de System.Site.getExperienceId () – methode aanroepen. Dit kan worden gedaan in de controller als het ' een Visualforce-pagina is of in een InvocableMethod als het ' een visuele stroom is.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *