Salesforce에 로그인하는 데 사용되는 연결된 앱에 따라 다른 화면을 표시하고 싶습니다. 로그인 흐름에서 어떤 연결된 앱이 사용되는지 어떻게 알 수 있나요?

우리가 활용할 수있는 여러 개의 로그인 흐름 변수 가 있지만 이러한 변수에는 연결된 앱입니다.

다음 중 어느 것도이 시나리오에 유용하지 않은 것 같습니다 ( 출처 ).

  • LoginFlow_LoginType –이 변수를 사용하여 흐름 / 조직에 대한 사용자 유형을 지정할 수 있습니다.
  • LoginFlow_IpAddress –이 변수는 사용자의 IP 주소 역할을합니다. 이 변수를 통해 사용자, 프로필 및 기타 사용자 관련 필드에 대한 IP 주소를 위임 할 수 있습니다.
  • LoginFlow_UserAgent –이 변수는 사용자의 브라우저 문자열을 나타냅니다. 또한 사용자가 Internet
    Explorer를 사용하여 조직에 로그인하지 못하도록 할 수 있습니다.
  • LoginFlow_Platform –이 변수는 사용자가 로그인 한 시스템 (예 : Mac OSX)의 종류를 보여줍니다.
  • LoginFlow_Application – 위의 변수와 유사합니다. 하지만 사용자가 로그인 한 기기의 종류 (i.e. iPhone, 태블릿, 데스크톱 등)를 보여 주므로 사용자를 재배치 할 완료 위치를 알 수 있습니다.
  • LoginFlow_Community –이 변수는 해당되는 경우 사용자가 현재 어떤 커뮤니티에 있는지 보여줍니다. LoginFlow_SessionLevel –이 변수는 보안을 담당하며 높은 보증 또는 표준 보증에서 작동합니다.
  • LoginFlow_UserId –이 변수는 문자 ID (최대 18 자 길이)를 표시하는 기능을하며 사용자를 조회하고 시스템을 검색하여 유사한 필드를 찾을 수도 있습니다.

댓글

  • 둘 이상의 연결된 앱에서 조직에 로그인하도록 단일 사용자가 할당됩니까? 또한 SSO를 사용하여 로그인합니까, 아니면 UserId / PW를 사용합니까?
  • 예, 여러 연결된 앱을 사용하여 로그인 할 수 있습니다. Salesforce는 ID 공급자이므로 Salesforce 사용자 이름 / 비밀번호 또는 Facebook 또는 Google 인증 공급자를 사용할 수 있습니다.
  • 모든 사용자에게 적용됩니까 (내부 & 외부 ) 또는 커뮤니티 사용자 전용입니까? 커뮤니티 사용자에게만 솔루션을 제공 할 수 있습니다. 모든 사용자의 경우 운이 좋지 않을 수 있습니다.
  • 커뮤니티 사용자 만. IdP에 대한 커뮤니티 로그인 라이센스를 사용합니다.

답변

운이 좋을 수도 있습니다. 원하는 것을 수행하는 데 잠재적으로 사용될 수있는 ExperienceID 또는 expid라는 것이 있습니다. 주요 목적은 고객에 따라 “브랜딩 경험”을 사용자 정의 할 수있는 것입니다. 커뮤니티로 전송되는 위치에 대한 정보입니다.

Salesforce 외부 ID 구현 가이드 에 대한이 링크를 읽고 이에 대해 자세히 알아볼 수 있습니다. 또한 Winter 18 릴리스 노트에서 동적 브랜딩으로 사용자의 로그인 환경 변경 을 읽어보십시오. 연결된 각 앱을 다른 , 각 앱에 고유 한 expid를 할당하여 연결된 앱으로 원하는 작업을 수행 할 수있는 것 같습니다.

그런 다음 ExperienceID를 사용하여 아래와 같이 두 가지 전략 중 하나를 사용하여 끝점을 만듭니다.

expid_value로 다음 끝점을 확장합니다.

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

expid = {value}를 사용하여 다음 엔드 포인트를 확장합니다.

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

각기 다른 등록 흐름을 제공하기 위해 자체 등록 페이지에 다른 expid 값을 전달합니다. 브랜드.

경험 ID 값은 URL이 아닌 쿠키에 캡처됩니다. 예를 들어 expid_value가 Customers로 설정된 경우 연결된 쿠키에는 expid_Customers 값이 있습니다.

댓글

  • 매우 영리한 답변
  • " 로그인 흐름에서 expid에 액세스하는 방법은 무엇입니까? "
  • @FernandoGavinho 쿠키로 전달했는지, 아니면 커뮤니티 사용자가 보유 할 수있는 expid 값의 일부로 전달했는지에 따라 다릅니다. ' '의 프로필. 로그인 엔드 포인트를 확장하는 데 사용 했으므로 '이를 로그인 흐름의 시작 매개 변수로 사용할 수도 있습니다.연결된 앱에서 전달하는 방법에 따라 ' 여러 옵션이있는 것처럼 보입니다.
  • 사용 사례에서는 SSO 엔드 포인트

community-url / idp / endpoint / HttpPost / expid_value ". 하지만 ' 흐름에서이 값에 액세스하는 방법을 모릅니다. Visualforce 페이지라면 할 수 있지만 흐름에서 액세스 할 수있는 방법이 있습니까? 입력 전용 변수 이름을 지정할 수 있습니까? " expid " 및 " ExpId ", 작동하지 않는 것 같습니다.

  • 찾았습니다. 로그인 흐름에서 expId에 액세스하려면 System.Site.getExperienceId () 메서드를 호출해야합니다. Visualforce 페이지 인 경우 ' 컨트롤러에서, 시각적 흐름 인 경우에는 InvocableMethod에서 '이 작업을 수행 할 수 있습니다.
  • 답글 남기기

    이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다