我正在使用带有asp.net mvc后端的精细上传器将文件直接上传到azure blob-storage。 asp.net-server 用作azure-signature-endpoint(sas)。这都是通过 identityserver3 保护的,问题出现了: identity_tokens lifetime 设置为5分钟(默认情况下)。我希望SAS端点只能被授权。因此用户只能访问自己的数据。但是在我上传了5分钟后,它就会中断。当然,因为它没有被授权,它从身份服务器返回登录页面(当然,精细上传者无法处理)。
通过将令牌的生命周期设置为更高的值来解决这个问题会很容易(但是由于上传可能需要数小时或数天,这是不可靠的),或者禁用生命周期(是的会起作用。但我猜终生有理由存在。)
我可以设置一个布尔值,例如用户是否已获得授权,如果设置了此布尔值,则只需跳过授权并返回签名或我如何实现此
我该怎么做?
答案 0 :(得分:2)
不要使用id令牌进行API访问,而是使用访问令牌。访问令牌用于资源(API),而id_tokens纯粹用于身份验证。 id_token仅用于为RP提供了解用户是谁的方法 - 因此不需要长时间跨度。它仅用于转换为用户会话(cookie / principal)。
使用访问令牌,您可以使用多种方法在客户端保留有效令牌;通过使用客户端凭据流或使用刷新令牌方法获取新的。
我相信在IdentityServer的样本库中都有两个样本。