기본 사용자 인증을 중앙 서버 (예 : SSO 서버)의 인증으로 바꿔야하는 요구 사항이 있습니다.
Drupal을 디버깅함으로써 모든 세션 관리가 includes/session.inc
파일 에서 발생한다는 것을 알게되었습니다 . 이미지와 같이 인증을 수행하고 싶습니다.
시나리오 : 로그인
단계의 세부 사항은 다음과 같습니다.
- 로그인 양식을 바꾸어 사용자 이름과 비밀번호를 SSO 서버에 제출하십시오 ( Drupal 이 아니라 .NET에 있음).
- 해당 사이트의 데이터베이스를 사용하여 SSO 서버에서 사용자를 인증하십시오. 내 웹 사이트 의 일부 사용자 정의 PHP 페이지 (또는 모듈의 양식)에 응답을 보냅니다 .
- 응답을 사용하여 users 테이블 에서 사용자를 식별하고 암호를 확인하지 않고 해당 사용자에 대한 세션을 작성하십시오 (이중 인증을 의미 함). 기본적으로 Drupal은
$insecure_session_name
변수 이름 과 값 으로 쿠키를 설정 합니다$sid
. Drupal이 쿠키를 여기에 설정하지 말고 대신 SSO 서버에 변수 값을 보내십시오. - 이 SSO 서버는 값을 쿠키를 만들고, 주요 영역에서 드롭됩니다
domain.com
(모두를 생각 나게my website
하고sso server
있는도에하지 드루팔에서 메인 도메인의 하위 도메인에). 그런 다음 drupal 사이트는 해당 쿠키를 사용하여 로그인 할 수 있습니다.
나는 그것이 어려운 질문이라는 것을 알고 있습니다. 어떻게 시작 해야하는지에 대한 포인터를 찾고 있습니까? 그들은 "핵심을 해킹해서는 안된다"고 말합니다. 그래서 내 질문은 :
- Drupal 인증 및 세션 관리가 어떻게 작동하는지 이해하려면 어디서 찾아야합니까?
includes/session.inc
후크 를 사용하여 함수를 호출 할 수있는 방법이 있습니까 (함수가 있는 주석은 "내부 사용 전용 / 수정되지 않음"이라고 표시)?
참고 : 레코드를 SSO 서버의 중앙 데이터베이스에 유지하도록 동일한 방법을 사용하여 사용자를 등록합니다. 그리고 그 동안 Drupal 사이트 데이터베이스에서 동일한 사용자의 정크 암호를 입력합니다 (로그인하는 동안 암호가 확인되지 않기 때문에).