2013-04-29 1 views
1

Azure ACS를 사용하도록 구성된 웹 사이트가 하나 있습니다. 사용자가이 웹 사이트에 로그인하면 사용자가 내 웹 사이트 중 다른 웹 사이트를 방문 할 때 사용자 신원을 어떻게 얻을 수 있습니까? 그러면 사용자는 ACS에서 ID 제공 업체를 선택하여 로그인 할 필요가 없습니다. 여러 웹 사이트에서 ACS의 사용자 ID를 얻는 방법이 있습니까? 사용자가 내 웹 사이트 중 하나에 로그인하면 다른 ACS 구성 웹 사이트를 방문 할 때 로그인 한 사용자로 인식됩니다. BTW Im는 azure ACS의 모든 4 개의 소셜 네트워킹 사이트를 ID 제공 업체로 사용하고 있습니다.ACS를 사용하여 다른 웹 사이트에 로그인 한 후 웹 사이트에서 사용자 ID를 입력하는 방법

+0

달성하기위한 기본 방법이 없습니다. 그러나 당신이 모든 사이트를 통제 할 수 있다면, 당신이 할 수있는 일이 있습니다. 나는 하나의 대답에 그것을 넣어하는 방법을 알아 내려고 노력하고있어. 왜냐하면 그것은 내가 바라는 바로 앞으로 나아지지 않기 때문입니다. – astaykov

+0

관련 리소스에 대한 링크를 제공 할 수 있습니까? 클레임 기반 인증과 역할 기반 인증을 통해 하이브리드 접근 방식을 구현한다면 올바른 방향으로 나아갈 수 있습니까? 필자는 모든 웹 사이트의 사용자 저장소로 작동하는 고유 한 ID 공급자를 만들고 사용자가 IP에 로그인했는지 웹 사이트를 확인하게할까요? 그러나이 방법이 효과가 있을지 또는 다른 방법이 있는지 확실하지 않습니다. – AshT

+0

내가 생각할 수있는 바보 같은 한 가지 접근법은 ACS를 통해 사용자를 인증하면 사용자의 신원을 나타내는 암호화 된 토큰을 웹 사이트에 다시 전달한다는 것입니다. 한 사이트에서 다른 사이트로 이동할 때마다이 토큰을 전달하십시오. 서버 측에서 null 또는 유효하지 않은 토큰을 발견 할 때마다 사용자가 로그인하지 않은 것으로 가정합니다. 모든 웹 사이트가 동일한 도메인 아래에 있으면 쿠키를 사용하여 토큰을 쉽게 전달할 수 있습니다. 장단점에 대해서는별로 생각하지 않았지만 합법적 인 것처럼 보입니다. – letsc

답변

1

각 웹 사이트는 ACS 관점과 다르므로 발행 할 토큰도 다릅니다. , WEBSITE2는 ACS로 리디렉션 (동일한 브라우저 인스턴스), 1

  • 사용자가 WEBSITE2로 이동 웹 사이트 (예를 들어) 구글에

    1. 사용자 로그 : SSO는하지만, IdP가 수준에서 발생 ACS는 구글로 리디렉션
    2. 사용자가 이미 구글 인증,
    3. ACS는 WEBSITE2
    4. 에 (WEBSITE2에 대한) 토큰 반환을 발급 다시 ACS에 제공
    그들은 있도록 ACS는 사용자와 세션을 유지하지 않습니다

    일을 강요 당하다 전체 트랜잭션을 적어도 한 번.

    2 단계에서 4 가지 소셜 IdP (Google, Live, FB, Yahoo)가있는 경우 ACS에서 사용자에게 IdP 사용을 요청하는 메시지가 표시됩니다.

    이 문제를 방지하려면 wh01 매개 변수를 사용하여 ACS에 로그인 요청을 보내야합니다. 사용자가 어떤 것을 사용했는지 기억하고 ACS에이를 사용하도록 지시해야합니다. whr을 사용하면 IdP 프롬프트가 표시되지 않습니다.

  • +0

    +1이있을 때 ACS의 특정 IdP (즉, O365)로 리디렉션하는 방법 사용할 whr 매개 변수는 무엇입니까? – Jorge

    +1

    더 이상 사용되지 않으므로 ACS를 더 이상 사용하지 않는 것이 좋습니다. –