나는 이것을 한 번했고 PHP 사이트와 ASP.NET 사이트 (나는 ASP.NET 개발자이지만 PHP에 관해서도 약간 알고 있음) 사이에있었습니다.
App1이 사용자의 진입 점이면 로그온 할 때 App1은 사용자 이름과 생성 된 키 (예 : GUID)로 구성된 해당 사용자의 키 - 값 쌍을 만들어야합니다. 프로그래밍 방식으로 App2와 통신하고이 키를 보냅니다 (예 : 백그라운드 스레드 실행). 사용자 JohnDoe가 App1에 성공적으로 로그인했다고 가정 해 보겠습니다.
앱 1은 키 (3l3kjlk3j4lkj34, JohnDoe에)를 생성하는 예는 www.app2.com/SetTempKey.aspx?userId=JohnDoe & 키로 HTTP를 통해 URL을 호출하는 경우 (통신 일종의 통해 앱 2로 전송
= 3l3kjlk3j4lkj34 - 보안상의 이유로 특정 IP의 요청 만 허용하는 페이지).
App2는 임시 액세스 키를 받고 저장합니다. App2가 www.app2.com/login.aspx에 로그인 페이지를 가지고 있다고 가정 해 봅시다.
app1에서 "go to our app2"와 같이 알맞은 레이블을 사용하여 www.app2.com/login.aspx?tempKey=3l3kjlk3j4lkj34에 대한 링크를 생성합니다. 사용자가 링크를 클릭하면 app2의 login.aspx 페이지가 호출됩니다. querystring에서 tempKey querystring 매개 변수가 있는지 확인한 다음 app2에 저장된 임시 키에서 키의 유효성을 검사하면 REALLY이 JohnDoe라는 것을 알 수 있습니다.
App2는 FormsAuthentication.RedirectFromLoginPage ("JohnDoe", true)를 호출하여 간단히 기록합니다 (먼저 사용자 이름과 formsAuth 쿠키가 영구/not_session_lived이어야 함).
... 꽤 많이 있습니다.
훌륭한 질문입니다. Stackoverflow에서 만나서 반갑습니다! +1! –