Thinktecture 코드를 기반으로 한 나만의 아이덴티티 프로 바이더를 구현하고 있습니다. Azure ACS의 이상한 동작은 싱글 사인 아웃 기능을 사용하는 동안입니다. 그것은 google/live와 내 자신의 아이디 공급자에 따라 다릅니다. 로그 아웃에 대한Azure ACS 커스텀 아이덴티티 프로 바이더 Single SignOut
URL (영역은 사이트 이름과 정말 동일) :
로그 아웃하기위한 의사 코드이다 :mysite.accesscontrol.windows.net/v2/wsfederation?wa=wsignout1.0 & wreply = HTTP % 3A % 2F % 2flocalhost % 2fAdministration.Frontend.Web % 2F = & wtrealm HTTP % 3A % 2F % 2flocalhost % 2fAdministration.Frontend.Web % 2F 여기
//clear FedAuth cookies
FormsAuthentication.SignOut();
FederatedAuthentication.WSFederationAuthenticationModule.SignOut(true);
//call Single SignOut
var signoutRequestMessage = new SignOutRequestMessage(new Uri(signOutUrl));
return Redirect(signoutRequestMessage.WriteQueryString());
,617,
다음은 샘플 플로우입니다 (모든 것을 보려면 개인 브라우징과 피들러를 사용하고 있습니다) :
1) Google 애플리케이션으로 내 애플리케이션에 로그인하고 있습니다.
2) 결과에 나는이 코드 ACS에 페이지를 얻을, 로그 아웃을 클릭합니다
function on_completion()
{window.location = 'http://localhost/Administration.Frontend.Web/';}
<iframe src="https://www.google.com/accounts/Logout" style="visibility: hidden"">/iframe>
<iframe src="http://localhost/Administration.Frontend.Web/?wa=wsignoutcleanup1.0" style="visibility: hidden"></iframe>
결과 : 난 내 응용 프로그램과 구글에서 로그 아웃하고 있습니다.
3) 이전 단계에로 ACS에 같은 URL로 리디렉션, 로그 아웃을 클릭, 내 ID 공급자에 로그인하지만 지금은
https://localhost/IdentityProvider/issue/wsfed?wa=wsignout1.0&wreply=https%3a%2f%2fmysite.accesscontrol.windows.net%2fv2%2fwsfederation%3fredirectUrl%3dhttp%3a%2f%2flocalhost%2fAdministration.Frontend.Web%2f
결과로 리디렉션과 (302) 결과를 얻을 : 전에서 로그 아웃하고있어 내 응용 프로그램 및 제 아이덴티티 공급자.
4) Google을 다시 사용해보십시오. 자격 증명을 입력하여 로그인하십시오. 실패한 경우 로그 아웃하십시오. 응용 프로그램에서 로그 아웃되었지만 Google에서 기록되지 않았습니다. 또한 내가 iframe을 가진 페이지를하지 않는 대신 ACS 다시
(내 응용 프로그램을 다시 mysite.accesscontrol.windows.net에 마지막으로 다음과)https://localhost/IdentityProvider/issue/wsfed?wa=wsignout1.0
에 저를 리디렉션하려고 볼
두 가지 주요 질문 :
- 왜 ACS 로그 아웃이/라이브하지만, (302) 내 ID 공급자로 리디렉션 구글이있을 수 있습니다에 대한 추가 워싱턴 = wsignoutcleanup1.0 내가 someth 그리워 저에게 iframe이 페이지를 제공 호출 FederationMetadata.xml에 ?
- 3 단계 후 ACS처럼 보입니다. 내 신원 공급자 에서 성공적으로 로그 아웃 한 것을 이해하지 못했습니다.이 순간부터 다시 시도해보십시오. 중지하는 방법을 반복해서 알려주십시오.
리디렉션되는 ACS 페이지 (경로, .accesscontrol.windows.net/??? 다음)를 제공 할 수 있습니까? 모호한 역할을하는 페이지 - 먼저 일부 JS + iframe을 렌더링하지만 다음에는 302 응답. – astaykov
또한 ACS 호스트 영역 검색 로그인 페이지 또는 자신의 로그인 페이지를 사용하고 있습니까? ACS가 호스팅하는 것으로 가정합니다. 자체 호스팅 로그인 페이지로 이동 한 후 다시 시도하십시오. – astaykov
여기에 제공된 답변은 http://stackoverflow.com/questions/14932241/logout-from-access-control-service-with-custom-sts/19002310#19002310에서보다 정확한 정보를 제공합니다. –