【发布时间】:2018-06-14 03:05:11
【问题描述】:
我们想建立一个通用的身份验证服务,利用 IdentityServer4,我们在其中定义了一组可以访问一个或多个 api 的用户。
用户将被全局定义,但只能访问特定的 api。
也许我遗漏了一些东西,但这似乎不受支持。如果用户通过身份验证并收到访问令牌,则他可以访问所有 api。
我已阅读博文https://leastprivilege.com/2016/12/16/identity-vs-permissions/,我完全理解并同意应该在客户端应用程序本身中处理授权,但是检查用户是否可以访问 api 的第一级检查对我来说似乎微不足道。
我之前使用过 Azure AD 和 ADAL,在 Azure AD 中,可以定义用户可以访问的应用程序(=IdentityServer4 术语中的资源)。请求令牌时,您指定要访问的资源,如果用户无权访问它,则不会返回访问令牌。
谁能告诉我设置的正确方法是什么?我们的大多数应用程序都是 Angular SPA 应用程序,因此我们使用隐式流程。
【问题讨论】:
-
身份服务是错误的地方做用户授权。如果你绝对希望你可以实现一个自定义授权请求验证器来做额外的检查。
标签: api oauth identityserver4 oidc-client-js