2008-10-28 2 views
1

SharePoint 사이트와 다른 도메인에있는 사용자 지정 PHP 기반 사이트간에 SSO를 구현해야합니다. PHP 사이트에 로그인하려면 SharePoint 사용자 계정을 사용해야합니다. (나는 PHP 소스에 대해 완전한 제어권을 가질 것이다)다른 서버에 PHP 응용 프로그램이있는 SharePoint SSO?

이것은 가능합니까? 모든 팁과 트릭?

답변

4

내 생각에 PHP 응용 프로그램/도메인을 완전히 제어 할 수 있지만 다른 팀이 SharePoint 서버를 관리하고 있습니다. 또한 셰어 포인트 팀에게 SSO 기능을위한 간단한 웹 파트를 만들도록 요청할 수 있다고 가정합니다.

이 경우 SharePoint 팀에 사이트에 대한 링크가있는 webpart를 만들도록 요청할 수 있습니다. 사용자가 링크를 클릭하면 요청이 SharePoint 서버로 되돌아 가고 SharePoint 서버는 사용자의 로그온 이름을 사용하고 공개 키를 사용하여 암호화 한 다음 php 사이트의 URL에 추가 한 다음 다시 리디렉션으로 보냅니다 브라우저에. 그래서 위치는 다음과 같습니다

https://your.php.domain/sso.php?logon=encrypted_users_logon_name&api_key=some_token

귀하의 sso.php 스크립트는 API_KEY이 셰어 파트너에서 유효한 토큰 확인하고 사용자의 로그온 이름에 당신은 할 수 있습니다려고 해독합니다. 좀 더 멋진 정보를 얻고 SharePoint 사이트에 콜백을 보내서 로그온 요청이 일정 시간 내에 합법적인지 확인하거나 암호화 된 로그온 이름으로 암호화 요청을 보냅니다.하지만이 작업은 베어 본 방식으로 수행됩니다. 셰어 포인트 파트너.

sharepoint .net 개발자는 원하는 암호화를 수행 할 수 있으므로 PHP 및 .net 쪽에서 사용할 수있는 알고리즘을 선택하고 암호화에 사용할 키와 정보의 형식을 지정하십시오 암호화 할 수 있습니다. n = logon_name과 같은 것; expire = timestamp; 그런 다음 암호를 해독 한 후 만료 시간이 지나면 로그온을 거부합니다.

+0

좋은 소리. 앞으로 며칠 동안 이걸 나눠 줄거야. 고맙습니다! – ciscocert

1

나는이 분야에 대해 많이 알지 못하지만 잘하면이 방향이 도움이 될 수 있습니다.

LDAP을 조사 ...

당신은 LDAP 자격 증명을 사용하여 PHP를 설정할 수 있습니다. SharePoint 사이트에서 Active Directory를 사용하는 경우이 디렉토리를 LDAP 소스로 노출하고 PHP 응용 프로그램에서이 디렉토리를 사용할 수 있습니다.

자동 로그인 ...

각 사이트간에 자동으로 수행에 부호를 갖는은 매우 다른 문제이다. 예 : MOSS에 이미 로그인되어 있습니다. PHP 앱으로 연결되는 링크를 클릭하면 이미 로그인되어 있습니다. 이를 위해서는 Kerberos 키/인증과 같은 것을 사용하여 조사해야합니다. 지저분하고 어려운 곳입니다.

+0

LDAP 접근 방식에 대해 자세히 설명해 주실 수 있습니까?나는 PHP에서 LDAP에 연결할 수 있었지만, 그 시점에서 나는 잃어버린다. – bloomingsmilez

0

잘, 우리는 같은 상황에 있었지만 우리는 asp.net과 SSO를 함께 사용하고 있습니다. asp.net 코드는 Windows 인증을 수행하고 사용자 이름과 고유 한 키가 들어있는 mysql 데이터베이스에 레코드를 만들고이 값을 쿠키에 할당합니다. 그런 다음 사용자를 PHP 앱으로 리디렉션합니다.

php 앱은 쿠키 값을 읽고 데이터베이스 값과 비교하여 요청을 확실하게합니다. PHP에서 싱글 사인온 (single signon)을 가지며 PHP와 함께 작동하는 공유 지점을 갖는 해결 방법이 있습니다. 하지만 난 아직도 Kerb_auth_mod PHP에서 SSO를 사용하는 것이 좋습니다. 우리는 결국 그것을했다.

관련 문제