2011-02-08 4 views
1

인증을 위해 ADFS를 사용하는 asp.net 웹 응용 프로그램을 작성해야합니다. 그러나 응용 프로그램의 한 단계에서 사용자는 사용자 이름과 암호를 다시 인증하고 제공해야합니다.ADFS를 사용하여 재 인증합니까?

이 작업을 ADFS로 수행 할 수 있습니까?

답변

3

ASP.NET 응용 프로그램은 STS의 활성 클라이언트 일뿐만 아니라 수동 클라이언트 일 수도 있습니다. 단계를 밟을 때 입력 필드를 제공하고 사용자에게 자신이 누구인지에 대한 추가 증거를 요청하십시오. WSTrustChannelFactory을 사용하여이 정보 (및 가능하면 원래 토큰)를 STS로 전달하여 더 높은 가치의 트랜잭션을 승인하는 데 충분한 클레임이 포함 된 새 토큰을 가져옵니다.

+0

이 방법이 효과가 있는지는 확실치 않지만 한 번만 알려 드리겠습니다. 감사! –

+0

문제가 발생하면 알려주십시오. http://j.mp/SPa –

+0

RP/STS가 IP/STS와 다른 경우 어떻게됩니까? 그런 다음이 스텝 업 시나리오에서 애플리케이션은 패시브 로그인에 사용 된 IP/STS를 알아야합니다. 그것에 대해 어떻게 생각 하나? –

1

재 인증의 목표는 무엇입니까? 즉 사용자는 무엇을 증명해야합니까?

응용 프로그램이 최근 인증 타임 스탬프 (최근 10 초 이내)가있는 로그인 토큰을 원한다고 가정하므로 응용 프로그램에서 클라이언트 시스템이 실제로 동일한 사용자의 컴퓨터 아래에 있음을 합리적으로 확신 할 수 있습니다 제어. ,

내가 비슷한 시나리오를 조사 할 것이다 다음 달에

을 (. 그런데, 웹 서버와 AD의 FS 서버 사이의 클럭 차이에주의), 그리고 현재의 내 생각은 the SessionAuthenticationModule.SessionSecurityTokenReceived Event을 사용하는 것입니다 this blog post by Vittorio Bertocci에 설명 된대로. 그러나 전체 솔루션이 될 수는 없으므로 ADFS에서 토큰을 제공하기 만하기 때문에 AD FS가 최근 인증 타임 스탬프가있는 토큰을 제공하도록 강제하지는 않습니다.

아직 답변이 없지만 이러한 힌트가 도움이 될 수 있습니다.

+0

예, 이것이 내가 원하는 것을 정확하게이다. 응용 프로그램은 SSO이지만 응용 프로그램의 "안전한"위치로 갈 때 사용자 계정을 다시 확인하려고합니다. –

+0

또 다른 힌트를 [StackOverflow에 대한 또 다른 대답]에서 발견했습니다 (http : // stackoverflow.com/questions/2180306/windows-identity-foundation-how-to-get-new-security-token-in-asp-net/2670064 # 2670064) : 기본적으로 사용자를 서명 만하면됩니다. –

1

article은이 시나리오에서 도움이 될 수있는 "스텝 업"절차를 설명합니다. 나는 그것을 사용하지 않았으므로 자세히 말할 수는 없다. 당신이하려는 일에 아주 가깝게 보입니다.

0

TokenLifetime 속성을 줄이면 사용자를 다시 인증 할 수 있습니다. TokenLifetime은 기본적으로 60 분이지만 20 분 전에 팝업을 표시한다고 가정합니다. 그러나 데이터 손실이있을 수 있습니다.

0

WIF를 사용하는 ASP.NET의 경우 WSFS를 프로토콜로 사용하여 ADFS와 상호 작용하고 토큰을 얻습니다. 이 내에서 ADFS에 대한 로그인 요청에서 wrefresh = 0을 지정할 수 있습니다. 이 메시지가 전송되면 ADFS는 이전 쿠키 상태 (웹 SSO)를 무시하고 새로운 인증을 수행하므로 새 토큰이 응용 프로그램에 발행됩니다. 인트라넷 도메인에 연결된 컴퓨터 케이스의 경우이 메시지는 무음입니다.

당신이 2012R2를 들어 하나의 2 가지

감사 // 샘 (@MrADFS)

관련 문제