使用ASP.NET Core提升授权

时间:2018-06-14 02:21:57

标签: c# asp.net-core authorization identityserver4

我有一个使用IdentityServer4的ASP.NET Core(2.1)应用程序,用户登录后会收到一个令牌,让他可以访问某些端点,但是还有其他端点,用户只能访问这些端点。 “第二次登录”(例如使用代码)。

有没有办法可以使用第一个令牌生成第二个令牌?

我期待这个http://docs.identityserver.io/en/release/topics/extension_grants.html?highlight=custom,并考虑使用一些自定义政策和一些声明。

但我不确定如何传递和验证已生成的令牌。或者如果有更好的选择。

一些类似的解决方案会非常有用。

2 个答案:

答案 0 :(得分:0)

有必要了解授权服务的原理并与其他服务一起工作。 主令牌是您从授权服务获得的。它通常包含重新更新令牌的逻辑,以防过时。其余服务将连接到授权服务,并通过令牌检查用户的数据。 但是不要忘记 - 在生成令牌之后,用户有了声明。它们存储在用户会话中。每个服务都接收有关用户的必要信息,而不必每次都检查令牌等。所有信息都已存储在用户会话中。

答案 1 :(得分:0)

我不建议在这种情况下更新主令牌。主令牌中包含的标识通常应该是静态的。

但我会覆盖Identity Server提供的同意功能以添加第二个验证步骤。可以根据请求身份验证的客户端编写此逻辑。