Quero mostrar telas diferentes com base em qual aplicativo conectado é usado para fazer login no Salesforce. O fluxo de login pode de alguma forma saber qual aplicativo conectado é usado?

Existem várias variáveis de fluxo de login que podemos aproveitar, mas nenhuma delas contém o aplicativo conectado.

Nenhuma das opções a seguir parece útil para este cenário ( fonte ):

  • LoginFlow_LoginType – Esta variável permite que você designe um tipo de usuário para Fluxo / Org.
  • LoginFlow_IpAddress – Esta variável atua como o endereço IP de um usuário. Por meio dessa variável, você tem o poder de delegar um endereço IP para um usuário, perfil e outros campos relacionados ao usuário.
  • LoginFlow_UserAgent – Esta variável permanece como a string do navegador do usuário. Também permite que você impeça os usuários de usar o Internet
    Explorer para fazer login na sua organização.
  • LoginFlow_Platform – Esta variável mostra em qual tipo de sistema (ou seja, Mac OSX) seus usuários estão fazendo login.
  • LoginFlow_Application – Semelhante à variável acima; no entanto, mostra em que tipo de dispositivo seus usuários fazem login (por exemplo, iPhone, tablet, desktop, etc.) para que você saiba o local de chegada para realocá-los.
  • LoginFlow_Community – Esta variável mostra em qual Comunidade seu usuário está atualmente, se aplicável. LoginFlow_SessionLevel – Esta variável é responsável pela segurança e funciona em garantia alta ou padrão.
  • LoginFlow_UserId – Esta variável funciona para exibir IDs de caracteres (até 18 caracteres) e também permite que você pesquise seu (s) usuário (s) e pesquise o sistema para encontrar campos semelhantes.

Comentários

  • Um único usuário será designado para fazer login em sua organização a partir de mais de um aplicativo conectado? Além disso, eles farão login usando SSO ou usarão seu UserId / PW?
  • Sim, eles podem usar vários aplicativos conectados para fazer login. Salesforce é o provedor de identidade, portanto, eles podem usar seu nome de usuário / senha do Salesforce ou provedores de autenticação do Facebook ou Google.
  • Isso se aplica a TODOS os usuários (interno & externo ) ou apenas para usuários da comunidade? Mesmo que apenas para usuários da comunidade, posso fornecer uma solução. Se for para todos os usuários, você pode estar sem sorte.
  • Apenas usuários da comunidade. Usamos a licença Community Login para IdP

Resposta

Você pode estar com sorte. Existe algo chamado ExperienceID ou expid que potencialmente pode ser usado para fazer o que você deseja alcançar. Seu objetivo principal é poder personalizar a “experiência de marca” para os clientes, dependendo sobre de onde eles são enviados para sua comunidade.

Você pode aprender mais sobre isso lendo este link para o Guia de implementação de identidade externa do Salesforce e também lendo Altere a experiência de login de seus usuários com a marca dinâmica das notas da versão Winter 18 . Se você associar cada aplicativo conectado a um , parece-me que você poderia usá-lo para realizar o que deseja com seus aplicativos conectados atribuindo a cada aplicativo um expid exclusivo.

O ExperienceID pode então ser usado para estender um endpoint usando uma das duas estratégias diferentes, conforme mostrado abaixo.

Estenda os seguintes endpoints com expid_value.

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

Estenda os seguintes endpoints com expid = {value}.

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

Passe um valor expid diferente para a página de autorregistro para fornecer um fluxo de registro diferente para cada marca.

O valor do ID da experiência é capturado em um cookie em vez de no URL. Por exemplo, se expid_value for definido como Clientes, um cookie associado terá o valor expid_Customers.

Comentários

  • uma resposta muito inteligente
  • A questão que vem é " como acessar o expid em um fluxo de login? "
  • @FernandoGavinho Depende se você ' o passou em um cookie ou como parte do valor expid que pode ser mantido em um usuário da comunidade Perfil de '. Você também pode usá-lo como um parâmetro inicial para seu fluxo de login, já que ' o usou para estender o ponto de extremidade de login.Parece que você ' d tem muitas opções, dependendo de como você as passa do seu aplicativo conectado.
  • No meu caso de uso, eu uso o ponto de extremidade SSO " community-url / idp / endpoint / HttpPost / expid_value ". No entanto, não ' não sei como acessar esse valor no fluxo. Eu poderia se fosse uma página do Visualforce, mas há uma maneira de acessá-los no fluxo? Talvez nomear uma variável apenas para entrada? Eu tentei " expid " e " ExpId ", mas não parece funcionar.
  • Encontrei. Para acessar o expId no Fluxo de Login, você precisa chamar o método System.Site.getExperienceId (). Isso pode ser feito no controlador se ' for uma página do Visualforce ou em um InvocableMethod se ' for um fluxo visual.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *