Единый вход в Azure Active Directory - сопоставление учетных записей

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

  1. Если у клиента нашей веб-службы есть AzureActiveDirectory, он может войти в систему со своей учетной записью активного каталога в нашу веб-службу, если мы предоставим необходимые интерфейсы для SAML, Oauth2, OpenID или любого другого протокола авторизации, который мы выбрали и поддерживает Azure.
  2. Клиенты также могут синхронизировать свою локальную сеть Active Directory с их Azure AD и использовать свои учетные записи домена для входа в наше веб-приложение.
  3. Клиентам необходимо использовать портал myapps.microsoft.com для «обертывания» аутентификации.
  4. После того, как все настроено правильно, поставщик удостоверений (AzureAD) сможет использовать (например) удостоверение пользователя, прошедшее проверку подлинности.

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

Насколько я понимаю, вы можете предоставить AzureAD право на создание учетной записи на целевой веб-службе от имени пользователя, который в настоящее время входит в систему. (Это называется: включение автоматической подготовки пользователей на портале управления Azure).

Однако при тестировании этого с приложениями Box, Canvas или Google я потерпел неудачу. Либо у меня возникла ошибка, либо в случае приложений Google мне просто предложили войти в систему с моей тестовой учетной записью Azure AD, а затем попросили пароль и имя пользователя моей учетной записи Google (я настроил единый вход в качестве отношения доверия Azure AD - так что это не должно происходить)

Может ли кто-нибудь дать представление о том, как достичь следующего?

После аутентификации пользователя с помощью SSO я хочу создать учетную запись для нашего WebSerivce, а затем сохранить учетные данные для этого пользователя только в Active Directory этого конкретного пользователя. Поэтому, если пользователь входит в систему во второй раз, мы можем проверить, существует ли уже существующая учетная запись, и войти в систему с этой учетной записью.

(Microsoft сказала мне, что это возможно с помощью Azure Rights Management, но я не могу найти хорошую документацию по этому поводу)

Сохранение отношения: «Microsoft AD Identity ‹-> наши учетные данные WebServiceAccount» на нашей стороне нежелательно, потому что мы не можем надежно зашифровать данные способом, которым мы НЕ ЗНАЕМ, что там находится. (или есть, и я еще не знаю об этом)

«Дополнительный вопрос»: Могу ли я поддерживать систему единого входа и для настольного приложения? (Нужно ли мне предоставлять прокси-веб-приложение или настольное приложение может сделать это напрямую?)


person Jalatiphra    schedule 23.02.2015    source источник


Ответы (2)


См. Мой ответ на аналогичный вопрос здесь: активный каталог asp.net azure данные профиля пользователя

Однако - я пытаюсь понять, нужно ли вам что-то другое. Ожидаете ли вы, что ваши клиенты уже будут иметь каталог и учетные записи Azure AD (возможно, благодаря подпискам на Office 365) и использовать их для входа в ваше веб-приложение, или ваш сценарий приложения требует создания / подготовки учетных записей пользователей в Azure вашего клиента? Каталог AD? Обеспечение может быть выполнено через API-интерфейс графа (согласно вашей ссылке), если администратор вашего клиента дает согласие, чтобы ваше приложение могло писать в их каталог. Вы можете найти несколько примеров на github, и я рекомендую вам просмотреть https://msdn.microsoft.com/en-us/library/azure/dn499820.aspx и https://msdn.microsoft.com/en-us/library/azure/dn646737.aspx для примеров кода.

HTHs,

person Dan Kershaw - MSFT    schedule 01.03.2015
comment
спасибо за Ваш ответ. Вариант 2 в вашей ссылке точно описывает то, что я хочу сделать. - и да, я требую, чтобы у наших клиентов уже была Azure AD, и тогда, возможно, в качестве второго шага мы поддержим ваше предложение о подготовке учетных записей пользователей. - person Jalatiphra; 02.03.2015

Думаю, не тестируя. Использование Graph API позволяет мне сохранять пользовательские данные для любого пользователя каталога, эффективно обеспечивая желаемую функциональность. Это документация, которую я нашел очень полезной.

https://msdn.microsoft.com/en-us/library/hh974476.aspx

person Jalatiphra    schedule 24.02.2015