2012-10-18 3 views
0

도메인 내에 Windows 인증을 사용하는 인트라넷 용 웹 응용 프로그램과 사용자 정의 웹 양식 사용자 이름 + 암호 기반 인증. 이제 새로운 웹 응용 프로그램이 개발되어 인터넷과 인트라넷 사용자 모두에게 인터넷에서 사용할 수있게되어 두 인증 모델 모두를 처리합니다. 따라서 WIF을 사용하기로 결정했습니다. 우리는 Windows Server 2012에서 ASP.NET 4.5 MVC 4를 사용할 것입니다.ASP.NET MVC의 WIF (Windows Identity Foundation)에 대한 사용자 이름 및 암호 인증

여기에서 ADFS 2.0을 사용할 수 있으므로 인트라넷 인증은 문제가되지 않습니다.

하지만 현재 사용자 이름 + 비밀번호 인증을 해결하는 방법에 대한 단서가 없습니다. 사용자 정의 멤버쉽 공급자에 대해 확인 된 사용자 이름 + 비밀번호 정보를 제공하는 사용자를 인증하기 위해 사용자 정의 UserNameSecurityTokenHandler을 개발해야하는 것처럼 보입니다. 하지만 전체 워크 플로우에 대한 도움이 필요합니다 ...

인터넷 사용자를위한 사용자 정의 로그인 페이지가 있다고 가정합니다. 우리가 인터넷 사용자를이 로그인 페이지 (ASP.NET MVC에서)로 라우팅했다고 가정합니다. 여기에서 누락 된 부분이 유효한 토큰입니까? 제공된 사용자 이름 + 비밀번호를받은 양식 또는 MVC 컨트롤러 작업이 구성된 WIF ID 공급자를 트리거하기 위해 어떻게 진행됩니까?

답변

2

가장 우아한 해결책은 외부 사용자를위한 또 다른 STS를 작성하는 것입니다 및 ADFS는 ID 공급자로이 신뢰 한 :

enter image description here

외부 사용자가를 사용하는 것이 그 IdP가 STS로 리디렉션됩니다 usr/pwd 데이터베이스. 내부 사용자는 AD에 직접 (AD에 대해) 인증합니다.

이 시나리오에서 ADFS는 IdP 및 Federation Provider 역할을 모두 수행합니다.

이 기능을 사용하려면 인터넷에 노출 된 ADFS와 IdP (및 앱)이 모두 필요합니다. 회원 자격을 활용하는 STS는 오픈 소스 인 IdentityServer이며 필요에 따라 맞춤 설정할 수 있습니다.

이 아키텍처를 사용하면 앱에 특별한 맞춤 설정/확장 프로그램이 필요하지 않습니다. 당신은 "가정 영역 발견"을 처리 할 필요가있을 것이다. 사용자를 인증 할 위치를 파악하는 프로세스입니다 (예 : 인트라넷 대 익스트라 넷). 아마도 다른 URL 등이있을 수 있습니다.

+0

아이디 서버가 멋지게 보입니다. 사용 가능하면 알 수 있습니다. 감사합니다 네 도움 – thmshd

+0

감사합니다. 드디어 IdentityServer를 사용하지 않기로 결정 했음에도 불구하고이 사실을 받아 들였습니다. 그러나이 질문은 – thmshd

+0

.....과 관련하여 올바른 방향으로 지적했습니다. – Wilky