【发布时间】:2022-01-26 06:16:12
【问题描述】:
我们公司正在使用 Microsoft AD 进行用户管理和身份验证,授权也是使用 AD 组/角色完成的。在大多数第 3 方应用程序中,用户可以使用其 AD 帐户进行身份验证。 现在我们正在开发新的应用程序,它应该使用内部 API。因此,我们在 Microsoft 租户中创建了一个新的企业应用程序并定义了几个角色。 在客户端,这是正常流程 - 用户使用他们的帐户进行身份验证,客户端收到它应该发送到 API 的访问令牌。在这里,我不确定什么是实现它的最佳方式。 由于 AD 中已经存在所有用户,因此无需仅使用访问令牌来获取用户标识符并在内部数据库中创建/链接用户 - 我想使用 AD 用户并能够验证角色并“按原样”在 API 网关后面的服务中使用它们。但是这些角色没有存储在访问令牌中,所以我假设我必须单独向 Microsoft 请求它们。但我也不想每次用户向我的 API 发送请求并希望依赖客户端发送给我并且我可以验证的令牌时都请求它们。
那么实现它的最佳方式是什么?我是否应该在我们自己的身份验证服务中创建一个新的 Bearer JWT,包含我需要的所有信息,并将其提供给客户端,以便它每次都将其发送给我?客户端是否也应该使用此令牌来授权用户?但它也可以向微软请求 IDToken?我们的内部令牌会取代 IDToken 和 Access Token 吗?或者我们应该只使用 IDToken 来请求 API 吗? 创建自己的令牌对我来说似乎是一种开销,因为我们只与 AD 用户合作,但我也不想在 API 中使用 IDToken 进行授权。
【问题讨论】:
-
看来您希望您的新应用程序可以验证用户在身份验证中的角色,也许您可以参考本节。 github.com/Azure-Samples/…
标签: api oauth-2.0 azure-active-directory authorization