Single Sign-On SSO(Single Sign On
) 쉽게 말하면 여러 시스템이 공존하는 환경에서 사용자는 한 곳에서 로그인한 후 다른 시스템, 즉 사용자가 로그인할 필요가 없습니다. 한 번의 로그인으로 다른 모든 시스템을 얻을 수 있습니다. Single Sign-On은 Alibaba와 같은 대규모 웹사이트에서 매우 자주 사용됩니다. 웹사이트 뒤에는 수백 또는 수천 개의 하위 시스템이 있습니다. 각 작업마다 사용자 인증이 필요한 경우 수십 개의 하위 시스템이 협력할 수 있습니다. 사용자가 미쳐버릴 뿐만 아니라, 반복되는 인증 및 승인 논리로 인해 각 하위 시스템도 미쳐버릴 것입니다. 최종 분석에서 Single Sign-On을 구현하는 것은 해당 신뢰를 생성하고 저장하는 방법과 다른 시스템이 이 신뢰의 유효성을 확인하는 방법을 해결하는 것입니다. 따라서 핵심 사항은 다음과 같습니다.
1.
2. 검증 신뢰
위의 문제가 해결되고 처음에 언급한 결과가 달성되면 SSO라고 할 수 있습니다. SSO를 구현하는 가장 간단한 방법은 쿠키를 사용하는 것입니다. 구현 프로세스는 다음과 같습니다. 위의 솔루션은 클라이언트의 쿠키에 신뢰를 저장하는 것임을 찾는 것은 어렵지 않습니다. 구현하면 즉시 사람들이 두 가지 질문을 하게 됩니다. 질문:1. 쿠키는 안전하지 않습니다
2. 교차 도메인 로그인은 허용되지 않습니다.
첫 번째 문제는 일반적으로 쿠키를 암호화하여 해결됩니다. 문제는 결함입니다. 해결책의 아이디어는 클라이언트에 이러한 신뢰 관계를 저장하는 것입니다. 이를 달성하기 위해 반드시 쿠키를 사용할 필요는 없습니다. 공유 객체도 사용할 수 있습니다. 플래시의 API는 저장 기능을 제공합니다. 일반적으로 대규모 시스템은 서버측에 신뢰 관계를 저장합니다. 구현 프로세스는 다음과 같습니다. 위의 솔루션은 신뢰 관계를 별도의 SSO 시스템에 저장하는 것입니다. 단순히 클라이언트에서 서버로 이동한 것처럼 들리지만 몇 가지 문제를 해결해야 합니다.1. 대량의 임시 신뢰 데이터를 효율적으로 저장하는 방법
2.
3. SSO 시스템이 로그인 시스템과 바인딩 시스템을 신뢰하게 만드는 방법
첫 번째 질문의 경우 일반적으로 memcached와 유사한 분산 캐시 솔루션을 사용할 수 있습니다. 데이터 양을 확장하는 메커니즘을 제공할 뿐만 아니라 효율적인 액세스도 제공할 수 있습니다. 두 번째 질문의 경우 일반적으로 디지털 인증서 서명이나 md5와 같은 방법을 통해 디지털 서명 방법을 채택합니다. 이를 위해서는 SSO 시스템이 로그인 URL을 반환할 때 md5로 확인해야 하는 매개변수를 암호화하고 토큰을 함께 반환합니다. 로그인해야 하는 시스템이 최종적으로 신뢰 관계를 확인하면 SSO 시스템은 토큰을 확인하여 정보가 수정되었는지 확인할 수 있습니다. 마지막 문제는 화이트리스트를 통해 해결할 수 있습니다. 간단히 말해서 화이트리스트에 있는 시스템만 프로덕션 신뢰 관계를 요청할 수 있습니다. 마찬가지로 화이트리스트에 있는 시스템만 로그인에서 제외될 수 있습니다. 관련 질문이 더 필요하시면 PHP 중국어 웹사이트를 방문하세요:위 내용은 PHP Single Sign-On 구현 원칙 예제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!