2012-01-25 6 views
2

방금 ​​SAML 프로토콜을 사용하는 simplesamlPHP으로 개발하기 시작했습니다. 사용자가 로그인없이 웹 응용 프로그램을 볼 수있게하려는 경우 (익명 사용자로 로그인 한 경우 숨겨진 항목을 볼 수 있음)SAML 프로토콜을 사용하여 사용자가 리디렉션없이 로그인했는지 확인하십시오.

다른 사용자가 이미 로그인했는지 확인해야합니다. 서비스 (또는 i는 서비스 제공 업체에서이를 확인하기 위해?해야합니까)가 리디렉션 경우 때문에, 사용자가 로그인 양식을 얻을 사용자를 리디렉션하지 않고.

답변

1

귀하의 응용 프로그램이 simpleSAMLphp SP에 의해 보호되어야한다.

사용자가 로그인했는지 여부를 확인하려면 simpleSAMLphp 라이브러리를로드 한 다음 isAuthenticated() 함수를 사용해야합니다.

앱의 login.php 기능을로드 할 때 가장 먼저 확인하는 항목입니다. isAuthenticated()가 false를 반환하면 SP로 리디렉션됩니다. isAuthenticated()가 true를 반환하면 사용자는 최종 앱에서 활성 세션이 있는지 확인하고 업데이트 (있는 경우) 또는 새 세션을 만들 수 있습니다.

simpleSAMLphp에 대한 문서는 잘 설명되어 있습니다. 코딩 [1]

[1] http://simplesamlphp.org/docs/trunk/simplesamlphp-sp-api

예 여기 API의 문서를 확인하십시오 로컬 로그인 양식 사라지게을 참조로

require_once('/var/lib/usr/simplesamlphp/lib/_autoload.php'); 

$saml_auth = new SimpleSAML_Auth_Simple('saml'); 

if ($saml_auth->isAuthenticated()) { 
    $attributes = $saml_auth->getAttributes(); 
    if (is_user_loggedin_local_app()) { 
    update_session_local_app($attributes); 
    } 
    { 
    create_session_local_app($attributes); 
    } 
} 
else { 
    $saml_auth->requireAuth(); 
} 

. 두 가지 인증 방법 (saml 및 local)을 사용하려면 로컬 응용 프로그램에서이 논리를 사용하여 새보기를 만들고이보기에 대한 링크를 로컬 로그인 양식에 추가해야합니다.

관련 문제