Сценарий
Существует один пользовательский магазин, а именно локальная AD.ADFS обеспечивает аутентификацию для SharePoint 2013 и Power BI.
Пользовательское веб-приложение должно аутентифицировать пользователей из AD.Для сервера веб-приложений также требуется доступ к API-интерфейсу SharePoint REST.
Цель состоит в том, чтобы достичь вышеуказанного с помощью единого входа.При входе в какое-либо из трех приложений пользователю не нужно вводить учетные данные для любого из двух других приложений.Кроме того, пользовательское веб-приложение отображает контент из SharePoint (iFrame и REST API) и Power BI (iFrame).
Мы опробовали следующие два решения, но в любом случае столкнулись с проблемой.
Решение 1
- Пользователь вводит учетные данные в веб-приложении.
- Серверная часть веб-приложения использует эти учетные данные для получения токена SAML из ADFS.
- Серверная часть веб-приложения использует токен SAML для аутентификации пользователя с помощью SharePoint с помощью аутентификации на основе форм и извлекает файл cookie FedAuth.
- Серверная часть веб-приложения использует файл cookie FedAuth для отправки запросов API-интерфейса REST кSharePoint
- Интерфейс веб-приложения использует токен SAML для аутентификации пользователя в SharePoint с помощью аутентификации на основе форм.Это позволяет контенту SharePoint в iFrames.
Что не работает : при переходе к Power BI или включении его в iFrame пользователь перенаправляется на вход в ADFSстр.Это связано с тем, что пользователь еще не прошел проверку подлинности с помощью ADFS в браузере.
Решение 2
- Служба единого входа ADFS также используется для настраиваемого веб-приложения.
- Переход к любому из трех приложений перенаправляет пользователя на страницу входа в ADFS
- Пользователь вводит свои учетные данные и перенаправляется обратно в приложение с токеном SAML.
- Навигациялюбое из двух других приложений будет перенаправлять пользователя в ADFS, которая будет перенаправлять обратно в приложение с другим токеном SAML, не требуя от пользователя повторного входа в систему.
- Это позволяет содержимому SharePoint и Power BIбыть включенным в веб-приложение в iFrames.
Что не работает : веб-приложение не может выполнить запрос REST API к SharePoint с использованием полученного токена SAMLиз ADFS для веб-приложения.Мы попытались использовать этот токен SAML для запроса другого из ADFS for SharePoint от имени пользователя, вошедшего в систему. Это также не сработало.Кроме того, локальная версия SharePoint 2013 может не принимать запрос от имени.
Вопрос
Существует ли способ обеспечить единый вход для всех трех приложений, одновременно имея доступ к REST APIв SharePoint из веб-приложения?Пользователь должен выполнить вход только один раз, и желательно только в веб-приложение.