2017-08-02 138 views
0

如何在Azure多租户应用程序中登录特定租户?如何在Azure多租户应用程序中登录特定租户?

我有以下情形:

  1. 一个注册的Azure Application for multi-tenant scenario(Web应用程序)
  2. 两个应用程序角色“管理员”和“用户”
  3. 两个或两个以上Azure的目录与至少一个用户。例如。
  4. - 玛丽@ COMPA
  5. - 乔@ CompB的
  6. - 斯科特@ compc命令
  7. 所有这些用户都在自己的目录分配到“管理员”角色的应用程序
  8. 然后我说玛丽@ CompA到目录CompB和CompC作为访客用户并分配应用程序角色“用户”

我可以成功登录所有用户到我的应用程序。所有用户使用自己的目录登录并拥有“管理员”权限。

但是,我怎样才能登录与租户/目录CompB或CompC(与“用户”权利只)的玛丽?

或者,我该如何查询用户所属的所有租户/目录。 在Azure管理门户中,我可以切换到我是其成员的目录。

我发现another question这是一个可能的重复。

回答

0

通过修改用于登录和令牌获取的“租户”端点,可以非常轻松地完成此操作。

要OAuth 2端点Azure的Active Directory是:https://login.microsoftonline.com/{tenant}/oauth2/

当您创建多租户应用程序,可以设置{tenant}common它允许“租户发现”。如果用户是多个租户的成员,它将选择他们的房客作为默认登录。如果您希望用户专门登录成为其成员的其他承租人,则需要在{tenant}字段中指定该承租人。你将不能在这里使用共同的,所以你必须有一些推测知道用户是哪个租户的一部分。这可以像允许用户将您的租户指定为Web应用程序的登录过程一样简单。

为了把它放在你的榜样的话,玛丽:

  • https://login.microsoftonline.com/common/oauth2/将签她到她家房客,COMPA
  • https://login.microsoftonline.com/CompA/oauth2/会做同样的,COMPA
  • https://login.microsoftonline.com/CompB/oauth2/将签署她的到CompB的普通用户
  • https://login.microsoftonline.com/CompC/oauth2/将签她到compc命令作为普通用户

我希望这有助于!

+0

设置{tenant]明确为我工作。但是现在我怎样才能获得用户所属的所有租户?可以通过oauth(声明)请求登录信息吗?已登录的用户应该在登录后选择活动租户,或者可以在运行应用程序时切换租户(例如,Azure管理门户中可能会这样) –

+0

我的理解是,此API不可公开使用。我建议你允许用户指定他们想登录哪个租户。 –