6

동일한 도메인에있는 2 개의 웹 사이트에 싱글 사인온을 설정하려고합니다.양식 인증을 통한 단일 사인온

http://mydomain (A 폼 인증 로그인 페이지를 포함 최상위 사이트)

http://mydomain/admin (상위 웹 사이트 내에서 가상 응용 프로그램에 거주 별도로 개발 된 웹 사이트)

단일 로그온에 대한 몇 가지 기사에를 읽고 예

http://msdn.microsoft.com/en-us/library/dd577079.aspx

http://www.codeproject.com/KB/aspnet/SingleSignon.aspx 그리고 그들은 쿠키 암호화 및 암호 해독은 각 응용 프로그램

에 대해 동일 있도록 각각의 Web.config에서 같은 machinekey 단면을 갖는 단지 경우가 제안하는 것

이 설정을했는데 하위 웹 사이트 (가상 응용 프로그램)의 자격 증명을 묻는 메시지가 표시되지 않습니다.

항상 상위 사이트에서 메시지가 표시됩니다. 나는 또한 시도했다 같은 machinekey 같은 <authentication><authorisation> 요소

내가 누락 될 수있는 어떤 생각을 추가하는 데뿐만 아니라

?

+0

이 질문에 성공 했습니까? – AlfeG

답변

1

(이다 <clear/> 사용) 내가했다 부주의로 인해 의 web.config에 지정된 FormsAuthentication 모듈이 지워졌습니다. C : \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG

그래서 어린이 (/ admin) 구성에 명시 적으로 다시 추가해야했습니다.

+0

나는 비슷한 것을하려고 노력하고있다. 동일한 웹 사이트에 대해 양식 AuthN 및 SSO를 사용할 수 있습니까? 아마도 두 가지 시작 페이지가 있지만 하나의 web.config가 있을까요? 의견이나 제안이 있으십니까? – VoodooChild

0

동일한 도메인을 사용하도록 두 응용 프로그램의 web.config 섹션에 httpCookies 섹션을 구성 해보십시오. 이렇게하면 한 앱에 로그인 할 때 얻게되는 FormsAuthentication 쿠키가 다른 애플리케이션에 표시됩니다.

+0

제안에 감사드립니다 - 불행히도 그 차이는 없습니다 – ChrisCa

1

web.config의 양식 섹션도 동일해야합니다.

Quote from - Forms Authentication Across Applications

는 응용 프로그램에서 폼 인증을 구성하려면 공유 폼 인증에 참여하는 모든 응용 프로그램에 대해 동일한 값으로 양식과 Web.config 파일의 machineKey 섹션의 속성을 설정합니다.

다음 예는 Web.config 파일의 인증 섹션을 보여줍니다. 달리 명시하지 않는 한 이름, 보호, 경로, 유효성 검사 키, 유효성 검사, decryptionKey 및 암호 해독 특성은 모든 응용 프로그램에서 동일해야합니다 ( ). 마찬가지로 인증 티켓 ()과 암호 체계 ( )은 인증 티켓 (쿠키 데이터)에 사용되는 체계와 동일해야합니다. 설정이 일치하지 않으면 인증 티켓을 공유 할 수 없습니다.

+0

이전에 말씀 드렸듯이 동일한 인증 및 권한 섹션을 사용해 보았습니다 내가 알아챈 것 중 하나는 loginURL에 대한 정규화 된 경로 예 "http : //mydomain/login.aspx"Windows 자격 증명 (예상되는 양식 로그인 페이지가 아님)을 묻는 메시지가 나타납니다. – ChrisCa

+0

이 권한을 얻고 싶습니다. Mydomain에 로그인하면 Mydomain/admin에 대해 인증되어야하며 정상적으로 작동합니다. 그리고 다른 방식으로도 작업하기를 원하십니까? 즉 Mydomain에 대해 인증 된 관리자로 로그인 할 때? MyDomain에서 인증 코드를 살펴 보셨습니까?/admin과 어떻게 다른가요? –

+0

아니요. 로그인 페이지가있는 mydomain을 방문하면 mydomain 및 mydomain/admin에 대해 인증을 받고 싶습니다. http : // mydomain을 방문하면 로그인 페이지로 리디렉션됩니다. 이것이 내가 원하는 것입니다. http : // mydomain/admin을 방문하면 리디렉션되지 않습니다./admin 사이트에 대한 전체 액세스 권한이 있습니다. 즉, 부모로부터의 인증을받지 못했습니다. – ChrisCa

0

web.config에 동일한 인증 요소가 있어야합니다. 포함 된 양식 요소에서 각 응용 프로그램에 name 속성에 대해 동일한 값을 제공해야합니다. loginUrl 특성의 경우 상대 경로를 사용하고 모든 응용 프로그램에 대해 동일한 로그온 페이지를 사용합니다 (예 :loginUrl = "/ MainApp/login.aspx").

또한 인증 티켓을 수동으로 만드십니까? (/ 관리자) 그렇게함으로써

아이의 빈 디렉토리에 존재하지 않는 부모의 항목이 있었다 나는이의 HttpModules는 섹션에 <clear/>을 사용했다

+0

예, 부모의 로컬 경로 (login.aspx) 및/admin의 전체 경로 (mydomain/login.aspx)로 시도했지만 결코 그 경로로 리디렉션되지 않습니다./admin의 로그인 페이지. 두 가지 모두에 전체 경로를 입력하면 Windows 로그인 프롬프트가 표시됩니다 (페이지 로그인이 아닌). IIS의 모든 보안 설정을 시도했지만 하위 사이트의 로그인 페이지로 리디렉션되지 않음 – ChrisCa

+0

사용자가 이미 비 관리자 사이트에 로그온 한 경우에도 로그온 페이지를 표시하려고합니까? 또한 사용자 제한 섹션을 인증 요소에 넣고 있습니까? –

관련 문제