IdentityServer4混合流API令牌未经授权

时间:2017-11-13 18:29:50

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

我使用IdentityServer4混合流程,因此我有一个连接到IdentityServer的MVC网站,然后这个MVC网站调用带有IDS4返回令牌的API。一切都运作良好或几乎。一段时间后,我从API

收到错误
  

错误401未经授权

令牌在通话前刷新,所以对我来说它应该有效。

在本地,它一直都很完美,我在Azure上的网站只有一个问题。但是,如果我从Azure上的Chrome连接私人会话,它又会重新开始工作。所以我认为问题出在某种程度上,但我不知道该做什么/尝试做什么。

1 个答案:

答案 0 :(得分:0)

问题中没有代码,所以我无法确定。但根据您描述的症状,可能是签名凭据未修复

有一些选项可供选择:

在初创公司中:您是否将DeveloperSigningCredential添加到services.AddIdentityServer或根本没有SigningCredential?因为在这种情况下,当服务器重新启动或刷新时,密钥会更改,因此所有令牌都将变为无效:服务器无法再读取令牌。这也是刷新令牌的一部分。

另一种选择是密钥基于机器,(虚拟)机器在某些时候发生变化,或者网站托管在webfarm上。

无论哪种情况,请确保签名密钥永远不会更改。添加证书(AddSigningCredential)以设置固定密钥。这应该可以解决问题。