2017-02-18 8 views
1

Я думаю о разработке в целом веб-приложения для предприятия. Я думаю о следующем сценарии:Аутентификация веб-приложения снова с несколькими объявлениями в лазурном виде?

Приложение должно быть в состоянии обслуживать нескольких клиентов (называемых многоуровневыми?). Это означает, что несколько компаний могут использовать программное обеспечение для своих сотрудников.

У каждого из них может быть собственное лазурное объявление или, может быть, нет. Поэтому я хотел бы знать, можно ли аутентифицироваться против нескольких/разных рекламных объявлений?

Предположим, что пользователь вводит свой адрес электронной почты [email protected], тогда я попытаюсь его аутентифицировать против объявления, которое настроено за объявлением companyA.com, когда кто-то пытается войти в систему с [email protected] то я попытаюсь выполнить аутентификацию против azure ad, настроенного для companyB.com.

Возможно ли это? Как я могу это сделать?

ответ

4

Именно по этой причине существуют многопользовательские приложения. Поэтому пользователь из любого Azure AD может войти в ваше приложение.

Как это работает как это:

  1. Вы определяете приложения в Azure AD арендатора, в том числе каких-либо разрешений, что может потребоваться (как способность считывать данные из/доступ пользователей Azure AD графа OneDrive через Microsoft Graph и т. Д.)
  2. При определении приложения установите его как многопользовательский.
  3. Теперь, когда пользователь из другой организации пытается войти в ваше приложение, ему будет представлен экран согласия. На этом экране описывается ваше приложение и разрешения, требуемые в их каталоге. (Первый пользователь, который подпишется должна быть администратором в их каталоге)
  4. После того, как они дают свое согласие на разрешения приложение требует, службы основного создаются для приложения в их каталоге. Этот принцип похож на учетную запись для приложения, которая теперь существует в в их каталоге.
  5. Затем они будут отправлены обратно в ваше приложение.

Есть пара важных вещей, чтобы отметить на стороне вашего приложения:

  1. Вы должны перенаправлять пользователей войти в https://login.microsoftonline.com/common/oauth2/authorize вместо арендатора конкретной конечной точки.
  2. С OpenIDConnect промежуточного слоя в ASP.NET MVC, вы должны отключить проверку эмитента, и сделать это немного вручную (вы должны проверить арендатор фактически подписал перед)

Подробнее о сингл против мульти- арендатор: http://www.andrewconnell.com/blog/azure-ad-what%E2%80%99s-the-difference-between-single-vs-multi-tenant

Пример многопользовательских приложений (ASP.NET MVC): https://github.com/Azure-Samples/active-directory-dotnet-webapp-multitenant-openidconnect