2 개의 웹 응용 프로그램, 응용 프로그램 A 및 응용 프로그램 B간에 SSO 인증을 개발하려고합니다. 응용 프로그램 A는 MVC 4 응용 프로그램이고 응용 프로그램 B는 MVC 3 응용 프로그램입니다.SSO 폼 인증 문제입니다. 인증 쿠키를 해독 할 수 없습니다.
무엇 발생해야하는 것은 : 사용자가 응용 프로그램 B에 액세스하려고 할 때, 그는 자신이 A 응용 프로그램에 로그인하는
- , 그는 리디렉션됩니다 응용 프로그램 B에
무엇 실제로 일어나는 것은 :
- 사용자가 어플리에 액세스하려고 양이온 B, 그는 A 응용 프로그램에 로그인 애플리케이션 A를
- 사용자 로그를 리디렉션됩니다, 그는
- 여기에 응용 프로그램 B로 리디렉션됩니다 그가 인 것처럼 응용 프로그램 B는 로그인 애플리케이션 A를 다시 사용자를 리디렉션 때문에 뭔가 잘못
- 는 인증 쿠키는
- 확인 응용 프로그램 B에 전달되고 있음을 확인 : 아직
로그인 나는 무엇이 잘못되었는지 파악하려면 다음 단계를 완료했습니다 컴퓨터 키 유효성 검사 및 암호 해독 키는 web.config의 두 응용 프로그램에서 동일합니다.
- 확인 된 enableCrossAppRedirects가 web.config에서 활성화되었습니다.
- 이 포럼 게시물의 코드를 사용하여 두 응용 프로그램 모두에서 인증을 해독 할 수 있는지 확인했습니다 쿠키 : http://forums.asp.net/t/1762166.aspx/1
- 인증 쿠키가 성공적으로 A 응용 프로그램에 해독이 아닌 응용 프로그램 B. 응용 프로그램 B에는 FormsAuthentication.Decrypt 방법 중 예외 "가 데이터의 유효성을 검사 할 수 없습니다"제공
이 사람이 나를 도와 드릴까요? 왜 그들은 동일한 기계 키를 사용하더라도 해독에 실패 했습니까? 이 인증 방법에 여전히 의지 할 수 있습니까? 이 기사에서는 더 이상 신뢰할 수 없다고 말합니다. http://blog.appharbor.com/2012/02/22/asp-net-forms-authentication-considered-broken
고마워요!
쿠키를 A에서 B로 어떻게 전달합니까? 나는 그들이 다른 영역에 있다고 가정합니까? –
아니요, 동일한 도메인이지만 다른 웹 응용 프로그램입니다. 쿠키는 요청 헤더의 브라우저에 의해 자동으로 전달됩니다. –
https://www.app.com/a/login 및 https://www.app.com/b/login? –