Desidero mostrare schermate diverse in base allapp connessa utilizzata per accedere a Salesforce. Il flusso di accesso può in qualche modo sapere quale app connessa è utilizzata?
Esistono più variabili Flusso di accesso che possiamo sfruttare, ma nessuna di queste contiene lapp connessa.
Nessuno dei seguenti sembra utile per questo scenario ( source ):
- LoginFlow_LoginType: questa variabile consente di designare un tipo di utente per Flow / Org.
- LoginFlow_IpAddress: questa variabile funge da indirizzo IP dellutente. Attraverso questa variabile, hai il potere di delegare un indirizzo IP per un utente, un profilo e altri campi relativi allutente.
- LoginFlow_UserAgent: questa variabile rappresenta la stringa del browser dellutente. Consente inoltre di impedire agli utenti di utilizzare Internet
Explorer per accedere alla propria organizzazione.- LoginFlow_Platform: questa variabile mostra da quale tipo di sistema (ad esempio Mac OSX) stanno accedendo gli utenti.
- LoginFlow_Application – Simile alla variabile precedente; tuttavia, mostra il tipo di dispositivo da cui gli utenti accedono (ad esempio iPhone, tablet, desktop e così via) in modo che tu sappia in quale posizione di destinazione trasferirli.
- LoginFlow_Community: questa variabile mostra in quale community si trova attualmente il tuo utente, se applicabile. LoginFlow_SessionLevel: questa variabile è responsabile della sicurezza e funziona con una garanzia elevata o standard.
- LoginFlow_UserId – Questa variabile funziona per visualizzare gli ID dei caratteri (fino a 18 caratteri) e ti consente anche di cercare i tuoi utenti e cercare nel sistema per trovare campi simili.
Commenti
- Verrà assegnato un singolo utente per accedere alla tua organizzazione da più di unapp connessa? Inoltre, accederanno utilizzando SSO o useranno il loro ID utente / PW?
- Sì, possono utilizzare più app connesse per accedere. Salesforce è il provider di identità, quindi può utilizzare il nome utente / password Salesforce o Facebook o Google Auth Provider.
- Questo vale per TUTTI gli utenti (interno & esterno ) o solo per gli utenti della community? Anche solo per gli utenti della comunità, posso fornire una soluzione. Se per tutti gli utenti, potresti essere sfortunato.
- Solo gli utenti della comunità. Utilizziamo la licenza di accesso alla community per IdP
Answer
Potresti essere fortunato. Cè qualcosa chiamato ExperienceID o expid
che potenzialmente potrebbe essere utilizzato per fare ciò che desideri ottenere. Il suo scopo principale è quello di poter personalizzare “lesperienza di branding” per i clienti a seconda da dove vengono inviati alla tua comunità.
Puoi saperne di più leggendo questo link alla Guida allimplementazione dellidentità esterna di Salesforce e anche leggendo Modifica lesperienza di accesso degli utenti con il branding dinamico dalle note sulla versione Winter 18 . Se associ ciascuna app connessa a un diverso expid
, mi sembra che potresti usarlo per ottenere ciò che desideri con le tue app connesse assegnando a ciascuna app un expid univoco.
LExperienceID può quindi essere utilizzato per estendere un endpoint utilizzando una delle due diverse strategie come mostrato di seguito.
Estendi i seguenti endpoint con expid_value.
- community-url / services / oauth2 / authorize / expid_value
- community-url / idp / endpoint / HttpPost / expid_value
- community-url / idp / endpoint / HttpRedirect / expid_value
Estendi i seguenti endpoint con expid = {value}.
- community-url_login_page? Expid = {value}
- community-url / CommunitiesSelfReg? Expid = {value}
- community-url / .well-known / auth-configuration? expid = {value}
Passa un diverso valore expid alla pagina di autoregistrazione per fornire un flusso di registrazione diverso per ciascuno brand.
Il valore dellID esperienza viene acquisito in un cookie anziché nellURL. Ad esempio, se expid_value è impostato su Customers, un cookie associato ha il valore expid_Customers.
Commenti
- Risposta abbastanza intelligente
- La domanda a cui vengono rivolti " come accedere a expid in un flusso di accesso? "
- @FernandoGavinho Dipende da se ' lo hai passato in un cookie o come parte del valore expid che può essere conservato in un utente della community ' s profilo. Potresti anche usarlo come parametro di inizio per il tuo flusso di accesso poiché ' lo hai utilizzato per estendere lendpoint di accesso.Sembrerebbe che ' avresti molte opzioni a seconda di come le passi dalla tua app connessa.
- Nel mio caso duso utilizzo lendpoint SSO " community-url / idp / endpoint / HttpPost / expid_value ". Tuttavia, non ' non so come accedere a questo valore nel flusso. Potrei se fosse una pagina visualforce, ma cè un modo per accedervi nel flusso? Forse nominare una variabile solo per linput? Ho provato " expid " e " ExpId ", ma sembra non funzionare.
- Trovato. Per accedere allexpId nel flusso di accesso è necessario chiamare il metodo System.Site.getExperienceId (). Questa operazione può essere eseguita nel controller se ' è una pagina Visualforce o in un InvocableMethod se ' è un flusso visivo.