2011-02-14 5 views
3

MVC에서 signgle sign on을 구현 한 사람이 있습니까? 아무도 나에게 MVC에서 싱글 사인온을위한 예제를 줄 수 있습니까?MVC의 SSO (싱글 사인온)

+0

에서 데이터를 가져와 사용자 ID를 검색 할 수 Web.config의에 창에 인증 모드를 설정하고있는 HttpContext 클래스를 사용할 필요가 있고, 당신이 * SSO가 무엇을 의미하는지에 따라 달라집니다 *. 귀하의 환경에서 지원되는 것은 무엇입니까? NTLM? Kerberos? 청구? 현재 인증 전략은 무엇입니까? –

답변

8

폼 인증을 사용하고 domain 속성을 설정하여 동일한 상위 도메인 (app1.domain.com, app2.domain.com 등)에서 호스팅되는 여러 ASP.NET MVC 응용 프로그램간에 SSO 솔루션을 구현했습니다 모든 응용 프로그램의 Web.config의에서 쿠키의 : 당신은 쿠키의 도메인 속성을 설정

<forms 
    name="ssoauth" 
    loginUrl="/login" 
    protection="All" 
    timeout="120" 
    requireSSL="true" 
    slidingExpiration="false"> 
    domain="domain.com" 
/> 

,이 쿠키는 자동으로이 도메인에서 호스팅되는 모든 응용 프로그램에 클라이언트 브라우저로 전송됩니다 및 수있을 것입니다 자동으로 사용자를 인증합니다.

여기에 폼 인증을 사용하여 도메인 간 SSO를 구현하려면

당신이 할 수있는 작업은 다음과 같습니다

  1. 사용자는 년에 foo.com 및 징후를 탐색 foo.com에서 호스팅되는 응용 프로그램은 표준 폼 인증, 공상 아무것도를 사용합니다..
  2. 사용자가 bar.com으로 이동하여 작성한 링크를 클릭합니다. 이 링크에는 암호화 된 사용자 이름이 포함될 토큰 매개 변수가 포함될 수 있습니다. 이 encryption could be done은 컴퓨터 키를 사용하여 다음과 같이 보입니다 : https://bar.com?token=ABC.
  3. bar.com에 호스팅 된 응용 프로그램은 요청을 받고 다른 응용 프로그램으로 same machine keys을 사용하기 때문에 decrypting the token이 가능하며 사용자 이름을 가져올 수 있습니다. 그런 다음 인증 쿠키를 로컬로 내보내 사용자에게 서명하고 사용자는 자동으로 bar.com에 서명합니다.
+0

도메인 간 응용 프로그램의 sso에 대한 코드 예가 ​​있습니까? – float

+0

@float, 아니요. 저작권상의 이유로 퍼블릭 도메인에서 공유 할 수있는 코드가 없습니다. 그러나 과정은 간단합니다. 두 도메인은 토큰을 암호화/해독 할 수 있도록 공통 비밀 암호에 동의해야합니다. –

+0

이 논리는 Application_AuthenticateRequest 메서드에서 global.asax로 구현되어야한다고 생각합니까? 이 메서드에서 url 매개 변수에 액세스하려면 어떻게해야합니까? – float

0

여기에 내 대답을 참조하십시오 동일한 도메인을 공유하는 웹 사이트에 대한 SSO에 대한 예입니다. 기본적으로 당신은 매우 광범위한 주제의 Active Directory

https://stackoverflow.com/a/40938106/950944

관련 문제