Chcę wyświetlać różne ekrany w zależności od tego, z której połączonej aplikacji logujesz się do Salesforce. Czy przepływ logowania może w jakiś sposób wiedzieć, która połączona aplikacja jest używana?

Istnieje wiele zmiennych przepływu logowania , które możemy wykorzystać, ale żadna z nich nie zawiera połączonej aplikacji.

Żadne z poniższych nie wydaje się przydatne w tym scenariuszu ( źródło ):

  • LoginFlow_LoginType – ta zmienna umożliwia wyznaczenie typu użytkownika dla Flow / Org.
  • LoginFlow_IpAddress – ta zmienna działa jako adres IP użytkownika. Dzięki tej zmiennej masz uprawnienia do delegowania adresu IP dla użytkownika, profilu i innych pól związanych z użytkownikiem.
  • LoginFlow_UserAgent – ta zmienna jest ciągiem znaków przeglądarki użytkownika. Pozwala też uniemożliwić użytkownikom korzystanie z przeglądarki Internet
    Explorer do logowania się do Twojej organizacji.
  • LoginFlow_Platform – ta zmienna pokazuje, z jakiego rodzaju systemu (np. Mac OSX) logują się Twoi użytkownicy.
  • LoginFlow_Application – podobny do powyższej zmiennej; pokazuje jednak, z jakiego rodzaju urządzenia logują się Twoi użytkownicy (np. iPhone, tablet, komputer stacjonarny itp.), dzięki czemu wiesz, do jakiej lokalizacji końcowej mają ich przenieść.
  • LoginFlow_Community – ta zmienna pokazuje, w jakiej społeczności aktualnie znajduje się użytkownik, jeśli ma to zastosowanie. LoginFlow_SessionLevel – ta zmienna jest odpowiedzialna za bezpieczeństwo i działa z zapewnieniem wysokiego lub standardowego.
  • LoginFlow_UserId – Ta zmienna służy do wyświetlania identyfikatorów znaków (o długości do 18 znaków), a także umożliwia wyszukiwanie użytkowników i przeszukiwanie systemu w celu znalezienia podobnych pól.

Komentarze

  • Czy jeden użytkownik zostanie przypisany do logowania się do Twojej organizacji z więcej niż jednej połączonej aplikacji? Ponadto, czy będą logować się przy użyciu logowania jednokrotnego, czy też będą używać identyfikatora użytkownika / hasła?
  • Tak, mogą używać wielu połączonych aplikacji do logowania. Salesforce jest dostawcą tożsamości, więc może używać swojej nazwy użytkownika / hasła Salesforce lub Facebooka lub dostawców Google Auth.
  • Czy dotyczy to WSZYSTKICH użytkowników (wewnętrzny & zewnętrzny ) czy tylko dla użytkowników społeczności? Jeśli tylko użytkownikom społeczności, mogę zapewnić rozwiązanie. Jeśli w przypadku wszystkich użytkowników, możesz mieć pecha.
  • Tylko użytkownicy społeczności. Używamy licencji Community Login dla IdP

Odpowiedź

Możesz mieć szczęście. Jest coś, co nazywa się ExperienceID lub expid, co potencjalnie można wykorzystać do zrobienia tego, co chcesz. Jego głównym celem jest umożliwienie klientom dostosowania sposobu budowania marki w zależności od skąd są wysyłane do Twojej społeczności.

Możesz dowiedzieć się więcej na ten temat, czytając ten link do Przewodnika po implementacji tożsamości zewnętrznej w Salesforce . a także czytając Zmień sposób logowania się użytkowników dzięki dynamicznej promocji marki z zimowych informacji o wydaniu 18 . Jeśli powiążesz każdą połączoną aplikację z innym expid, wydaje mi się, że możesz go użyć do osiągnięcia tego, co chcesz z połączonymi aplikacjami, przypisując każdej aplikacji unikalny expid.

ExperienceID można następnie użyć do przedłużenia punkt końcowy przy użyciu jednej z dwóch różnych strategii, jak pokazano poniżej.

Rozszerz następujące punkty końcowe o wartość expid_value.

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

Rozszerz następujące punkty końcowe o expid = {value}.

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

Przekaż inną wartość expid na stronę samodzielnej rejestracji, aby zapewnić inny przepływ rejestracji dla każdego brand.

Wartość identyfikatora doświadczenia jest zapisywana w pliku cookie, a nie w adresie URL. Na przykład, jeśli wartość expid_value jest ustawiona na Klienci, powiązany plik cookie ma wartość expid_Customers.

Komentarze

  • całkiem sprytna odpowiedź
  • Pytanie, na które przyszli ” jak uzyskać dostęp do expid w przepływie logowania? ”
  • @FernandoGavinho To zależy od tego, czy ' przekazałeś go w pliku cookie, czy jako część wartości expid, która może być przechowywana przez użytkownika społeczności ' Profil. Możesz również użyć go jako parametru początkowego dla przepływu logowania, ponieważ ' użyłeś go do rozszerzenia punktu końcowego logowania.Wygląda na to, że ' d masz wiele opcji w zależności od tego, jak przekazujesz je z połączonej aplikacji.
  • W moim przypadku używam punktu końcowego logowania jednokrotnego ” community-url / idp / endpoint / HttpPost / expid_value „. Jednak nie ' nie wiem, jak uzyskać dostęp do tej wartości w przepływie. Mógłbym, gdyby była to strona siły wizualnej, ale czy istnieje sposób, aby uzyskać do nich dostęp w przepływie? Może nazywanie zmiennej tylko do wprowadzania danych? Próbowałem ” expid ” i ” ExpId „, ale wygląda na to, że nie działa.
  • Znaleziono go. Aby uzyskać dostęp do expId w przepływie logowania, należy wywołać metodę System.Site.getExperienceId (). Można to zrobić w kontrolerze, jeśli ' na stronie Visualforce lub w InvocableMethod, jeśli ' jest wizualnym przepływem.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *