asp.net core / openiddict & client spa 自定义权限授权
asp.net core / openiddict & client spa Authorization with custom permissions
我需要一些帮助来了解基于令牌的身份验证的一两件事。
我的设置是一个后端 asp.net 核心应用程序,带有用于令牌身份验证的 openiddict。到目前为止一切正常——我现在需要添加用户权限。我会有很多(例如,用户可以查看 xy,用户可以编辑 xy,用户可以删除 xy,具有许多不同的 xy 组件)。到目前为止后端运行良好,我现在的问题是:如何通过令牌向我的客户端应用程序获取这些权限..
- 据我所知,这些并不是经典的 "claims",因为声明会描述 "who" 你更像是 "what you are allowed to do"。正确的?
但是我如何将它们打包到我的 id_token/ 我如何将它们添加到我的负载中?
第二件事:我需要验证令牌(签名)吗?每个 Api-request 都在服务器端验证,所以基本上我不需要关心我的客户端权限是否受到限制,对吧? (因为它们仅用于 UI-显示目的)
感谢您的帮助!
As far as I understood these are not classical "claims" as a claim would describe "who" you are rather "what you are allowed to do" . Right?
理论上,没有什么能阻止您将权限表示为声明,就像您对角色或任何其他声明所做的那样。但在实践中,它很少是最好的方法,因为用户可以执行的操作数量通常很重要(而且通常是无限的:用户 A 可以更新产品 124 吗?还有这个其他产品?)。
一种可能的替代方法是在不允许用户执行特定操作时捕获 API 返回的 403 响应,以便您可以显示适当的错误消息。另一种方法是创建一个 API 端点,根据您自己的策略动态确定是否允许用户执行操作。
Second thing: Do I need to validate the token (signature) in my case? Every Api-request ist validated at server side, so basically I don't need to care if my client side permissions are tempered with, right? (As they are only for UI-Display purposes)
访问令牌和身份令牌都经过数字签名,因此不能(至少,不容易)被篡改。您不需要自己验证签名,因为它已经由 validation/JWT 中间件完成。
我需要一些帮助来了解基于令牌的身份验证的一两件事。 我的设置是一个后端 asp.net 核心应用程序,带有用于令牌身份验证的 openiddict。到目前为止一切正常——我现在需要添加用户权限。我会有很多(例如,用户可以查看 xy,用户可以编辑 xy,用户可以删除 xy,具有许多不同的 xy 组件)。到目前为止后端运行良好,我现在的问题是:如何通过令牌向我的客户端应用程序获取这些权限..
- 据我所知,这些并不是经典的 "claims",因为声明会描述 "who" 你更像是 "what you are allowed to do"。正确的?
但是我如何将它们打包到我的 id_token/ 我如何将它们添加到我的负载中?
第二件事:我需要验证令牌(签名)吗?每个 Api-request 都在服务器端验证,所以基本上我不需要关心我的客户端权限是否受到限制,对吧? (因为它们仅用于 UI-显示目的)
感谢您的帮助!
As far as I understood these are not classical "claims" as a claim would describe "who" you are rather "what you are allowed to do" . Right?
理论上,没有什么能阻止您将权限表示为声明,就像您对角色或任何其他声明所做的那样。但在实践中,它很少是最好的方法,因为用户可以执行的操作数量通常很重要(而且通常是无限的:用户 A 可以更新产品 124 吗?还有这个其他产品?)。
一种可能的替代方法是在不允许用户执行特定操作时捕获 API 返回的 403 响应,以便您可以显示适当的错误消息。另一种方法是创建一个 API 端点,根据您自己的策略动态确定是否允许用户执行操作。
Second thing: Do I need to validate the token (signature) in my case? Every Api-request ist validated at server side, so basically I don't need to care if my client side permissions are tempered with, right? (As they are only for UI-Display purposes)
访问令牌和身份令牌都经过数字签名,因此不能(至少,不容易)被篡改。您不需要自己验证签名,因为它已经由 validation/JWT 中间件完成。