我可以信任来自授权路线的 ClaimsPrincipal
Can I trust ClaimsPrincipal from an Authorized route
我正在使用 OpenIdDict 和 Aspnet 核心 2.0 身份。我已将其配置(目前)使用密码流程(资源所有者密码凭证授予)。客户端是我制作的 Angular SPA。我可以控制客户端和服务器。
我目前正在编写一个自定义的 AuthorizationHandler,它目前运行良好。
但是,我有点担心我的 ClaimsPrincipal。
我的安全 WebAPI 方法装饰有授权属性
[Authorize(AuthenticationSchemes = AuthValidationDefaults.AuthenticationScheme)]
根据我的理解,如果我向我的授权添加一个策略,我得到的上下文与我的控制器中的上下文相同。它有一个 "User" 属性,我可以从中调用 "HasClaims"。
我已经向我的委托人添加了一些 "permission" 类型的声明,它们确实出现了。
这个 ClaimPrincipals 是否只是通过解码从 SPA 传递的不记名令牌来构建的?如果是这样,相信这个声明列表在服务器端做任何事情似乎是不安全的......但是,不记名令牌是 access_token 而不是 id_token 并且不能简单地在 https://jwt.io/
我可以使用 UserManager/RoleManager 为登录用户获取服务器端的所有声明,然后使用该列表进行验证。但是,我担心这样做可能会出现性能问题...
所以,我想知道我(作为用户 属性)从我的控制器获得的 ClaimPrincipals 是否可信,或者我是否应该自己获得我的声明。
So, I would like to know if the ClaimPrincipals I get (as the User property) of my Controller is trustable.
是的。默认情况下,OpenIddict 使用 ASP.NET Core Data Protection 和 ASP.NET Core 提供的身份验证票据序列化器创建并验证其访问令牌(cookie 中间件使用相同的方式来保护身份验证 cookie)。
这些令牌经过加密和 HMAC 处理,因此攻击者无法更改其内容。更多信息,您可以阅读https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/introduction.
我正在使用 OpenIdDict 和 Aspnet 核心 2.0 身份。我已将其配置(目前)使用密码流程(资源所有者密码凭证授予)。客户端是我制作的 Angular SPA。我可以控制客户端和服务器。
我目前正在编写一个自定义的 AuthorizationHandler,它目前运行良好。
但是,我有点担心我的 ClaimsPrincipal。 我的安全 WebAPI 方法装饰有授权属性
[Authorize(AuthenticationSchemes = AuthValidationDefaults.AuthenticationScheme)]
根据我的理解,如果我向我的授权添加一个策略,我得到的上下文与我的控制器中的上下文相同。它有一个 "User" 属性,我可以从中调用 "HasClaims"。
我已经向我的委托人添加了一些 "permission" 类型的声明,它们确实出现了。
这个 ClaimPrincipals 是否只是通过解码从 SPA 传递的不记名令牌来构建的?如果是这样,相信这个声明列表在服务器端做任何事情似乎是不安全的......但是,不记名令牌是 access_token 而不是 id_token 并且不能简单地在 https://jwt.io/
我可以使用 UserManager/RoleManager 为登录用户获取服务器端的所有声明,然后使用该列表进行验证。但是,我担心这样做可能会出现性能问题...
所以,我想知道我(作为用户 属性)从我的控制器获得的 ClaimPrincipals 是否可信,或者我是否应该自己获得我的声明。
So, I would like to know if the ClaimPrincipals I get (as the User property) of my Controller is trustable.
是的。默认情况下,OpenIddict 使用 ASP.NET Core Data Protection 和 ASP.NET Core 提供的身份验证票据序列化器创建并验证其访问令牌(cookie 中间件使用相同的方式来保护身份验证 cookie)。
这些令牌经过加密和 HMAC 处理,因此攻击者无法更改其内容。更多信息,您可以阅读https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/introduction.