【问题标题】:User Management Web API application for custom Azure AD Tenant自定义 Azure AD 租户的用户管理 Web API 应用程序
【发布时间】:2018-04-25 22:51:57
【问题描述】:

我想开发一个 RESTful API 来管理自定义 Azure AD 租户中的用户。用户管理包括以下内容(AAD 租户将包含预定义的组)

  • 创建用户
  • 删除用户
  • 将用户分配到组
  • 从组中删除用户
  • 重置用户密码

我对如何设置应用程序注册感到困惑,并希望根据以下内容获得指导:

  1. REST API 应用程序必须受 Azure AD 保护,因此只有指定的管理员用户才能访问和使用 API。这是否需要在 AAD 租户中注册 REST API 应用程序,其中设置了使用 API 并允许 API 访问用户配置文件(和组成员资格)的权限?

  2. REST API 本质上是 Microsoft Graph API 的客户端,我设想它可以促进管理员用户请求的上述操作。这是否需要单独的应用程序注册,还是可以使用相同的注册来提供必要的权限?

  3. 在这种情况下我需要 ADAL 库吗?

【问题讨论】:

  • 对于问题 1 和 2,您想让您的应用程序成为多租户吗?例如。有了这个API,它可以对2个租户进行操作。
  • 目前没有多租户要求。一切都在一个组织的背景下。
  • 那么,很明显你应该在AAD租户中注册你的API。一个应用注册可以添加多个权限。

标签: azure oauth-2.0 azure-active-directory microsoft-graph-api


【解决方案1】:

是否需要在 AAD 中注册 REST API 应用程序 Tenant where 权限使用 API 并让 API 访问用户 个人资料(和组成员身份)是否已设置?

当然,你的 Rest API 应用应该在 AAD 中注册。

是否需要单独的应用程序注册,或者可以相同 注册用于提供必要的权限?

您只需注册一个应用程序,即可为其分配多个权限。您还可以为应用程序添加不同的角色以对您的 API 进行不同的访问范围。虽然,您的 REST API 就像 Microsoft Graph API 的客户端,您可以通过应用程序注册为其分配权限。所以,您可以Microsoft Graph 通过 sepcify HTTP 请求中的资源。

在这种情况下我需要 ADAL 库吗?

是的,你需要。对于您的 Web API,如果您使用 AAD v1 ednpoint,您可以只使用 ADAL 来验证 JWT 令牌并执行一些必要的操作。

【讨论】:

  • 我不太清楚你的情况。例如,您使用什么样的客户端来调用 API、Native App 或 SPA 或 Web 应用程序。一般来说,API就像一个Web App,同样需要在AAD中注册,并且需要使用ADAL来验证token。
  • 我有一个用于 RESTful API 的应用服务,它在 Azure AD 租户中注册,并使用 ADAL 来促进 iOS 本机应用的“无头”登录。 iOS 应用程序接收访问令牌以进行后续 API 调用。此应用注册具有 Windows Azure Active Directory,并在委派权限下设置了 签署和阅读者用户配置文件 权限。为了创建用户并分配给组,以及设置特定于应用程序的角色,我开始怀疑是否需要第二个应用程序注册,或者是否应该添加 Microsoft Graph API 并为现有注册设置权限..跨度>
  • RESTful API 对应的 Web 应用程序在 Azure AD 中注册为 Native 应用程序。如果我希望用户获得访问令牌而不遇到 Azure 登录页面,这似乎是使用 ADAL4J 的唯一方法。如果是这样,那就是一个障碍,因为我指望在企业应用程序注册中设置应用程序角色,这似乎只支持 Web/API 类型的应用程序注册。 Azure 中的刀片不显示本机应用注册的任何此类选项。你能验证一下这是否是设计使然吗?
  • 嗨,@WebUser 。我认为您应该在 AAD 中同时注册 Native App 和 Web API。请检查此document 和此Sample
  • 我最终在 Azure AD 中创建了一个“虚拟”Web API 应用程序注册,这样我就可以生成一个客户端密码,这使我能够获得一个应用程序级访问令牌,使代码能够创建用户.我无法删除用户或重置用户密码(得到错误响应权限不足)。经过更多阅读,我发现这些不是应用程序级别权限的一部分。但在 Web 应用/API 应用注册中,我也没有在委派权限中看到必要的权限。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多