如何在Azure Active Directory中创建Native Client Application单租户?

时间:2015-09-02 12:50:04

标签: android azure xamarin azure-active-directory office365api

我已经在Azure Active Directory中创建了一个本机客户端应用程序,开发了一个Xamarin Android应用程序并使用ADAL Library我可以使用任何Microsoft电子邮件帐户登录myapp ...但我想选择我自己的域名(我有office365订阅)。

  • Web应用程序或web api有一个选择单租户或多租户的复选框,但我无法在本机客户端应用程序中找到它。

  • 我试图下载MANIFEST

    • 改变" availableToOtherTenants"假的
    • 更改" knownClientApplications"到我的clientId
    • 在重定向网址
    • 中使用https和http
    • 尝试了几乎任何有意义的事情

但没有任何反应,我仍然可以使用任何Microsoft帐户登录我的应用程序。

我是否应该在收到登录电子邮件后在我的应用程序中进行限制?...我认为这非常糟糕。

更多信息......

我设法做了以下事情:

  • 改变MANIFEST" availableToOtherTenants" to" true"
  • 更改MANIFEST" knownClientApplications"到我的ClientId
  • 使用权限url调用api:" https://login.windows.net/common" (不是我的租户ID)

结果:

我只能使用我的域名登录但是任何其他Microsoft帐户都会从ADAL库中抛出未处理的异常(如果用户取消登录则与未处理的异常相同)

1 个答案:

答案 0 :(得分:0)

azure广告中的所有原生客户都是自动多租户。但是,您可以使用自己租户的权限初始化AuthenticationContext(例如),只有您自己的用户才能获得令牌。在您的Web API上,您必须检查用户是否仅来自该租户,但如果您在中间件初始化中指定了租户而不是通用,那么这种情况已经自动发生。