>  기사  >  백엔드 개발  >  PHP를 사용하여 Single Sign-On을 구현하는 방법 분석

PHP를 사용하여 Single Sign-On을 구현하는 방법 분석

不言
不言원래의
2018-07-24 11:36:221751검색

이 기사에서 공유한 콘텐츠는 PHP를 사용하여 Single Sign-On을 구현하는 방법에 대한 분석입니다. 이 콘텐츠는 도움이 필요한 친구들에게 큰 도움이 되기를 바랍니다.

싱글 사인온 설명

SSO라고도 하는 싱글 사인온(Single Sign On)은 현재 가장 인기 있는 엔터프라이즈 비즈니스 통합 솔루션 중 하나입니다. SSO의 정의는 여러 응용 프로그램 시스템에서 사용자가 한 번만 로그인하면 상호 신뢰되는 모든 응용 프로그램 시스템에 액세스할 수 있다는 것입니다.

구현 방법

서버 측

  • "공유 쿠키"는 세션을 공유하는 방법입니다. 기본적으로 쿠키는 세션 ID를 저장하는 매체일 뿐입니다. 각 요청의 URL 메커니즘은 하나의 서버와 하나의 세션입니다

  • SSO-Token 방법은 세션을 공유하는 방법이 안전하지 않기 때문에 더 이상 세션 ID를 ID 식별자로 사용하지 않습니다. 식별자를 지정하고 이름을 SSO- 토큰으로 지정합니다. 이 식별은 전체 서버 그룹에서 고유하므로 모든 서버 그룹이 전체 토큰을 확인할 수 있습니다. 동시에 토큰을 얻는다는 것은 사용자 정보를 얻는다는 의미입니다

브라우저 측

  • Single Sign-On 및 매우 중요한 단계는 서버 측에서 토큰을 확인하는 방법과 관련이 없습니다. 최초의 "공유 세션" 방법을 사용하든 현재의 "토큰" 방법을 사용하든 ID 식별은 브라우저 측에서 이러한 문제에 직면합니다. 사용자가 성공적으로 로그인한 후 브라우저가 이를 다른 도메인 이름으로 저장하고 공유하도록 하려면 어떻게 해야 합니까? 동일한 도메인 이름은 매우 간단합니다. 쿠키에 토큰을 저장하고 모든 하위 도메인이 쿠키의 토큰을 읽을 수 있도록 쿠키 경로를 최상위 도메인 이름으로 설정합니다. 쿠키를 공유하는 방법입니다(이것을 공유 쿠키라고 하며, 위의 것을 공유 세션이라고 해야 합니다). 예: Google, google.com은 최상위 도메인 이름이고, 이메일 서비스의 경우 mail.google.com, 지도 서비스의 경우 map.google.com은 모두 하위 도메인입니다. 하지만 크로스 도메인으로 갈 때는 어떻게 해야 할까요? Google에는 동영상 서비스를 제공하는 youtube.com이라는 도메인 이름도 있습니다[2].

기술로 구현된 메커니즘

사용자가 아직 로그인하지 않았기 때문에 처음으로 응용 프로그램 시스템에 액세스하면 제공되는 로그인 정보를 기반으로 로그인할 수 있는 인증 시스템으로 이동됩니다. 사용자, 인증 시스템은 신원 확인을 수행하고, 검증을 통과하면 인증 자격 증명을 사용자에게 반환해야 하며, 사용자는 응용 프로그램 시스템에서 이 티켓을 자신의 인증 자격 증명으로 가져와야 합니다. 요청이 있으면 티켓의 유효성을 확인하기 위해 인증 시스템으로 보냅니다. 인증에 성공하면 사용자는 다시 로그인하지 않고도 응용시스템 2와 응용시스템 3에 접속할 수 있다.
SSO를 구현하려면 다음과 같은 주요 기능이 필요합니다.
모든 응용 프로그램 시스템은 신원 인증 시스템을 공유합니다.

  • 통합 인증 시스템은 SSO의 전제 조건 중 하나입니다. 인증 시스템의 주요 기능은 사용자의 로그인 정보를 사용자 정보 데이터베이스와 비교하여 사용자를 인증하는 것입니다. 인증에 성공한 후 인증 시스템은 통합된 인증 마크(티켓)를 생성하여 사용자에게 반환해야 합니다. 또한 인증 시스템은 티켓의 유효성을 확인하기 위해 티켓도 확인해야 합니다.

    모든 신청 시스템은 티켓 정보를 식별하고 추출할 수 있습니다

  • SSO 기능을 구현하고 사용자가 한 번만 로그인할 수 있도록 하려면 신청 시스템에서 이미 로그인한 사용자를 식별할 수 있어야 합니다. 애플리케이션 시스템은 인증 시스템과의 통신을 통해 티켓을 식별하고 추출할 수 있어야 하며, 현재 사용자가 로그인했는지 여부를 자동으로 판단하여 Single Sign-On 기능을 완료할 수 있어야 합니다.

관련 권장 사항:

PHP를 사용하여 간단한 백엔드 등록 및 로그인 구현(코드 포함)

위 내용은 PHP를 사용하여 Single Sign-On을 구현하는 방법 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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