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.