3

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

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

  • 我试图下载清单

    • 将“availableToOtherTenants”更改为 false
    • 将“knownClientApplications”更改为我的 clientId
    • 在重定向 url 中使用 https 和 http
    • 尝试了几乎任何有意义或没有意义的事情

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

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

更多信息...

我设法做到了以下几点:

  • 将清单“availableToOtherTenants”更改为“true”
  • 将清单“knownClientApplications”更改为我的 ClientId
  • 使用授权 url 调用 api:“ https://login.windows.net/common ”(不是我的租户 ID)

结果:

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

4

1 回答 1

0

azure ad 中的所有本机客户端都自动成为多租户。但是,您可以使用您自己的租户(例如)的权限初始化您的 AuthenticationContext,并且只有您自己的用户才能使用它获得令牌。在您的 Web API 上,您必须检查用户是否仅来自该租户,但如果您在中间件初始化中指定租户而不是 common,这已经自动发生。

于 2015-09-02T15:36:04.047 回答