Единый вход в ADFS для SharePoint 2013, Power BI и пользовательское веб-приложение? - PullRequest
0 голосов
/ 22 сентября 2018

Сценарий

Существует один пользовательский магазин, а именно локальная 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 из веб-приложения?Пользователь должен выполнить вход только один раз, и желательно только в веб-приложение.

1 Ответ

0 голосов
/ 26 сентября 2018

Регистрация приложений через Azure Active Directory - это, вероятно, лучший способ достичь того, что вы ищете.Вы можете зарегистрировать приложения в Azure AD и затем предоставить разрешения пользователям по приложениям, клиентам или политикам.https://docs.microsoft.com/en-us/power-bi/developer/embed-sample-for-customers https://docs.microsoft.com/en-us/power-bi/developer/create-an-azure-active-directory-tenant

...