2013-07-16 2 views
0

У меня есть сайт внутренней компании, который выглядит примерно как tools.mycompany.com. Прямо сейчас, он доступен только из моей локальной сети. Как пользователи получают доступ к этой странице, перейдя в интрасеть sharepoint моей компании, что-то вроде: intranet.mycompany.com. Ссылка на страницу tools есть, и пользователи могут щелкнуть. Доступ к сайту интрасети можно получить из сети «за пределами», но должны быть предоставлены учетные данные AD.Оценка реферера из портала Sharepoint

Новая цель состоит в том, чтобы позволить «внешним» пользователям получить доступ к странице tools.mycompany.com, но только через intranet.mycompany.com, чтобы они были аутентифицированы AD.

Моя первая мысль была бы оценить $_SERVER['HTTP_REFERER'], и сделать что-то вроде:

($_SERVER['HTTP_REFERER'] != 'intranet.mycompany.com') ? die('Didn't come from Intranet') : ''; 

Но опираясь на $_SERVER['HTTP_REFERER'] кажется ненадежным.

Есть ли другие возможности для защиты моей страницы tools.mycompany.com от несанкционированного доступа? И не требуется, чтобы аутентифицированные пользователи повторно вводили свои учетные данные?

+0

имеют SharePoint генерировать маркер в «перейти к интранет» ссылку. токен будет зашифрованным сообщением типа «да, это авторизированное нажатие», которое может расшифровать сторона PHP. если дешифрование не подходит правильно, это не разрешенный клик. –

ответ

0

Вот один из способов сделать это, уровень безопасности, который вы можете реализовать, зависит от вас.

в SharePoint в нижней части страницы

<img src="http://tools.mycompany.com/sso/?x=encryptedstring" width="1" height="1" /> 

на инструментах.

<?php 

    session_start(); 

    // here is where you could add some security if decrypted $_GET[x] == $_SERVER['REMOTE_ADDR'] 
    $_SESSION['isLoggedIn'] = 1; 

?> 

это вызывающе не лучший способ сделать это, но его быстрый и простой способ

Смежные вопросы