【发布时间】:2019-08-05 03:44:35
【问题描述】:
我正在尝试为调用 REST api (Java/JAX-RS) 以执行数据库操作等的后台 CLI 工具 (NodeJS) 实现安全性。 由于我们对所有用户帐户都使用 Azure AD,因此我想用它来验证我们的用户并进行授权。
需要授权,因为并非 AD 的所有成员都应该使用 CLI,并且有两种类型的 CLI 用户具有不同的可用命令集,这意味着即使您能够使用它,根据您是操作员还是管理员,某些功能可能会被锁定。
我已经设法在 Azure AD 中创建了两个应用程序,一个用于 CLI,一个用于 API。我可以使用我们的 AD 凭据登录,为请求 REST API 资源的 CLI 应用程序 ID 获取访问令牌。在客户端,我使用的是 https://www.npmjs.com/package/simple-oauth2 。 在 Java 方面,令牌是根据 Microsoft 公钥验证的,所以一切似乎都正常。
但是,我应该如何将用户锁定为操作员或管理员角色?我能想到的一种天真的方法是在 REST API 中建立用户/角色关联,并且只使用 OAuth 流来验证用户。但我想这就是 AD 的用途......在这种情况下,OAuth 范围可以帮助我吗? 或者,一旦 REST API 收到访问令牌并知道最终用户身份,它是否应该调用 AD 来查询用户组成员资格?
提前致谢!
【问题讨论】:
标签: oauth-2.0 jwt azure-active-directory