>  기사  >  싱글 사인온(SSO)은 무엇을 의미하나요?

싱글 사인온(SSO)은 무엇을 의미하나요?

Guanhui
Guanhui원래의
2020-06-28 16:38:456768검색

Single Sign-On SSO는 여러 응용 프로그램 시스템에서 사용자가 한 번만 로그인하면 상호 신뢰되는 모든 응용 프로그램 시스템에 액세스할 수 있음을 의미합니다. 이는 기업 비즈니스 통합을 위한 솔루션 중 하나입니다. 1. 사용자 효율성 향상; .개발자의 효율성을 향상시킵니다. 3. 관리를 단순화합니다.

싱글 사인온(SSO)은 무엇을 의미하나요?

회사 초창기에는 서버가 한 대뿐이었지만 점차 서버 수가 늘어나기 시작했습니다. 각 서버는 등록 및 로그인이 필요하며, 로그아웃 시에는 하나씩 로그아웃해야 합니다. 사용자 경험이 매우 나쁩니다! Douban에 가서 Douban FM, Douban Reading, Douban Movies, Douban Diary에 로그인하면 정말 사람들이 무너질 것이라고 상상할 수 있습니다. 우리는 또 다른 로그인 경험을 원합니다. 회사의 서비스에는 한 번의 등록, 로그인할 때 한 번의 로그인, 로그아웃할 때 한 번의 로그아웃만 필요합니다. 어떻게 하나요?

한번 등록해보세요. 한번 등록하는 것은 어렵지 않습니다. 단순히 서버 간 사용자 정보를 동기화하는 문제일까요? 네, 하지만 이 설명은 완전하지 않습니다. 나중에 사용자 등록에 관해 이야기할 때 자세히 설명하겠습니다. 사실 SSO의 진짜 어려움은 사용자 정보 관리입니다. 하지만 초보자인 우리의 어려움은 SSO를 구현하는 기술에 있습니다! 먼저 구현 수단에 대해 논의해 보겠습니다.

한 번의 로그인과 한 번의 로그아웃. 평범한 쇼핑몰의 이야기를 되돌아보면, 로그인을 유지하는 핵심은 무엇일까? 녹음기(세션)? 쿠키라고 불리는 그런 종이요? 종이에 적힌 ID는 세션에 기록되는 정보이며, 쿠키는 단순한 ID를 기록하는 도구가 아닙니다. 클라이언트는 ID를 보유하고 서버는 세션을 보유하며, 둘 다 로그인 상태를 유지하기 위해 함께 사용됩니다. 클라이언트는 ID를 자격증명으로 사용해야 하며, 서버는 세션을 사용하여 ID의 유효성을 확인해야 합니다(ID가 만료되었거나 전혀 위조되었을 수 있으며 해당 정보를 찾을 수 없으며 클라이언트가 해당 아직 로그인 인증 등을 수행하지 않은 ID입니다. 그러나 세션은 처음에는 각 서버마다 고유합니다. Douban FM에는 자체 세션이 있고 Douban Reading에는 자체 세션이 있으며 ID를 기록하는 쿠키는 도메인 간일 수 없습니다. 따라서 한 번 로그인하고 로그아웃하려면 클라이언트가 각 도메인 이름 아래에 이 ID를 보유할 수 있도록 각 서버가 동일한 세션 정보를 공유하도록 하는 방법만 찾으면 됩니다. 더 나아가 각 서버가 동일한 ID를 얻는 한 ID의 유효성을 확인하고 ID에 해당하는 사용자 정보를 얻을 수 있는 방법이 있습니다. 즉, ID를 확인할 수 있습니다.

Single sign-on; 구현 방법

서버 측

서버 그룹에서 ID를 생성하고 확인하는 방법에 따라 크게 두 가지 방법으로 나누어집니다.

"공유 쿠키"는 위에서 언급한 세션을 공유하는 방법이라고 생각합니다. 이는 "공유 세션"입니다. 본질적으로 쿠키는 세션 ID를 저장하기 위한 매체일 뿐이며 세션 ID는 각 요청의 URL에도 배치될 수 있습니다. 이 방법은 안전하지 않다고 해서 자세히 다루지 않았습니다. 혹시 관련 정보를 추천해주실 수 있나요? 나중에 추가하겠습니다. 사실 그렇습니다. 세션 메커니즘은 처음부터 각 세션마다 하나의 서버입니다. 세션을 꺼내서 모든 서버가 공유하도록 하는 것은 사실 조금 이상합니다.

SSO-토큰 방식 세션 공유 방식이 안전하지 않기 때문에 더 이상 세션 ID를 식별자로 사용하지 않습니다. 우리는 또 다른 식별자를 생성하고 이름을 SSO-Token(또는 티켓)으로 지정합니다. 이 식별자는 전체 서버 그룹에 고유하며 모든 서버 그룹은 토큰을 확인하고 토큰 뒤에 있는 사용자의 정보를 얻을 수 있습니다. 우리가 논의할 내용도 이와 같으며, 구체적인 흐름도는 나중에 보여드리겠습니다.

브라우저 측

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

추천 튜토리얼: "PHP"



위 내용은 싱글 사인온(SSO)은 무엇을 의미하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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