>  기사  >  백엔드 개발  >  PHP Single Sign-On 구현 원칙 예제에 대한 자세한 설명

PHP Single Sign-On 구현 원칙 예제에 대한 자세한 설명

王林
王林원래의
2019-09-03 11:58:544283검색

PHP Single Sign-On 구현 원칙 예제에 대한 자세한 설명

Single Sign-On SSO(Single Sign On) 쉽게 말하면 여러 시스템이 공존하는 환경에서 사용자는 한 곳에서 로그인한 후 다른 시스템, 즉 사용자가 로그인할 필요가 없습니다. 한 번의 로그인으로 다른 모든 시스템을 얻을 수 있습니다. Single Sign-On은 Alibaba와 같은 대규모 웹사이트에서 매우 자주 사용됩니다. 웹사이트 뒤에는 수백 또는 수천 개의 하위 시스템이 있습니다. 각 작업마다 사용자 인증이 필요한 경우 수십 개의 하위 시스템이 협력할 수 있습니다. 사용자가 미쳐버릴 뿐만 아니라, 반복되는 인증 및 승인 논리로 인해 각 하위 시스템도 미쳐버릴 것입니다. 최종 분석에서 Single Sign-On을 구현하는 것은 해당 신뢰를 생성하고 저장하는 방법과 다른 시스템이 이 신뢰의 유효성을 확인하는 방법을 해결하는 것입니다. 따라서 핵심 사항은 다음과 같습니다.

1.

2. 검증 신뢰

위의 문제가 해결되고 처음에 언급한 결과가 달성되면 SSO라고 할 수 있습니다. SSO를 구현하는 가장 간단한 방법은 쿠키를 사용하는 것입니다. 구현 프로세스는 다음과 같습니다.

PHP Single Sign-On 구현 원칙 예제에 대한 자세한 설명

위의 솔루션은 클라이언트의 쿠키에 신뢰를 저장하는 것임을 찾는 것은 어렵지 않습니다. 구현하면 즉시 사람들이 두 가지 질문을 하게 됩니다. 질문:

1. 쿠키는 안전하지 않습니다

2. 교차 도메인 로그인은 허용되지 않습니다.

첫 번째 문제는 일반적으로 쿠키를 암호화하여 해결됩니다. 문제는 결함입니다. 해결책의 아이디어는 클라이언트에 이러한 신뢰 관계를 저장하는 것입니다. 이를 달성하기 위해 반드시 쿠키를 사용할 필요는 없습니다. 공유 객체도 사용할 수 있습니다. 플래시의 API는 저장 기능을 제공합니다.

일반적으로 대규모 시스템은 서버측에 신뢰 관계를 저장합니다. 구현 프로세스는 다음과 같습니다.

PHP Single Sign-On 구현 원칙 예제에 대한 자세한 설명

위의 솔루션은 신뢰 관계를 별도의 SSO 시스템에 저장하는 것입니다. 단순히 클라이언트에서 서버로 이동한 것처럼 들리지만 몇 가지 문제를 해결해야 합니다.

1. 대량의 임시 신뢰 데이터를 효율적으로 저장하는 방법

2.

3. SSO 시스템이 로그인 시스템과 바인딩 시스템을 신뢰하게 만드는 방법

첫 번째 질문의 경우 일반적으로 memcached와 유사한 분산 캐시 솔루션을 사용할 수 있습니다. 데이터 양을 확장하는 메커니즘을 제공할 뿐만 아니라 효율적인 액세스도 제공할 수 있습니다. 두 번째 질문의 경우 일반적으로 디지털 인증서 서명이나 md5와 같은 방법을 통해 디지털 서명 방법을 채택합니다. 이를 위해서는 SSO 시스템이 로그인 URL을 반환할 때 md5로 확인해야 하는 매개변수를 암호화하고 토큰을 함께 반환합니다. 로그인해야 하는 시스템이 최종적으로 신뢰 관계를 확인하면 SSO 시스템은 토큰을 확인하여 정보가 수정되었는지 확인할 수 있습니다. 마지막 문제는 화이트리스트를 통해 해결할 수 있습니다. 간단히 말해서 화이트리스트에 있는 시스템만 프로덕션 신뢰 관계를 요청할 수 있습니다. 마찬가지로 화이트리스트에 있는 시스템만 로그인에서 제외될 수 있습니다.

관련 질문이 더 필요하시면 PHP 중국어 웹사이트를 방문하세요:

PHP 비디오 튜토리얼

위 내용은 PHP Single Sign-On 구현 원칙 예제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.