Как открыть ссылку с одного веб-приложения на другое, уже прошедшее проверку подлинности? - PullRequest
1 голос
/ 01 декабря 2008

У нас есть одно веб-приложение (sharepoint), которое собирает информацию из разрозненных источников. Мы хотели бы иметь возможность связывать пользователей с основными веб-сайтами этих различных источников и предварительно проверять их подлинность. И.Е. они вводят свои учетные данные для других источников (это различные типы LDAP, AD и доморощенные!), и мы получаем некоторую информацию для них и запоминаем детали (возможно, единый вход в систему, чтобы сохранить их в безопасности). Затем пользователь может щелкнуть ссылку, которая откроет полное приложение в другом окне, уже прошедшем проверку подлинности.

Возможно ли это вообще возможно?

Ответы [ 3 ]

2 голосов
/ 26 декабря 2008

Office Server имеет встроенный API единого входа. Вы можете посмотреть на это. Он позволяет безопасно регистрировать учетные данные пользователя и получать к ним доступ во время выполнения.

1 голос
/ 01 декабря 2008

True Single Sign-on - это большая задача. Википедия описывает общие методы и ссылки на несколько проектов единого входа.

Если вы хотите что-то более легкое, я использовал этот подход в прошлом:

  • Создайте таблицу для хранения временных токенов безопасности, к которым могут обращаться все приложения.
  • В исходном приложении (Sharepoint в вашем случае) по запросу внешнего приложения сохраните токен безопасности (возможно, guid, истечение срока действия и идентификатор пользователя) в таблице токенов.
  • Перенаправление на страницу / обработчик запросов посредника в целевом приложении. Включите последнюю запрашиваемую страницу и руководство в запрос.
  • В брокере найдите токен безопасности. Если он существует и срок его действия не истек, выполните аутентификацию, авторизацию и перенаправление на последнюю страницу, если все в порядке. Если нет, отправьте разрешение ошибки.

С точки зрения безопасности, руководство должно быть почти невозможно угадать. Вы можете уменьшить риск, если срок действия токенов истекает очень быстро - для вызова брокера требуется не более нескольких секунд.

Если целевое приложение использует проверку подлинности Windows и не имеет логики на основе ролей, вам не нужно много делать. Просто перенаправьте и пусть ваш File / UrlAuthorization обрабатывает это. При необходимости вы можете обрабатывать разрешения на основе ролей с помощью маркера безопасности db.

1 голос
/ 01 декабря 2008

Вы должны действовать как веб-браузер, действующий на разных сайтах с локальным хранением учетных данных (обычно в файлах cookie). Поэтому используйте правильную клиентскую библиотеку с поддержкой cookie. Это может пойти, вероятно, для большинства сайтов. Существуют сайты, использующие HTTP-аутентификацию, к которым также проще получить доступ из соответствующих клиентских библиотек. Наиболее требовательным может быть доступ к веб-сайтам SSL, но, опять же, большинство клиентских HTTP-библиотек покрывают это и в наши дни.

Все, что вам нужно сейчас, - это просто подготовить ваше веб-приложение, которое будет действовать как прокси для всех этих отдельных веб-ресурсов. Как именно это делается в Sharepoint, надеюсь, другие ответят на это ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...