关于Identityserver4和IdentityServer3 授权不兼容的问题

使用IdentityServer3 作为授权服务器,如果没有设置证书,而且client又没有设置AccessTokenType = AccessTokenType.Reference,则获取token的时候服务器会报错,设置证书即可,或者设置AccessTokenType = AccessTokenType.Reference。

使用IdentityServer4作为授权服务器,而又想使用IdentityServer3的 .net framework 的程序访问授权服务器,必须要安装Microsoft.Owin.Host.SystemWeb,安装了之后就可以正常验证成功了,否则验证的时候会401.

 

 

https://github.com/IdentityServer/CrossVersionIntegrationTests 这里是官方的测试程序,要求所有的程序都自寄宿运行。然后每个运行的都正常,但是当使用Identityserver4做授权服务器,然后创建个使用IdentityServer3的.net framework程序获取token的时候,token总是提示401。因为这些程序一般都是iis运行,最开始我以为必须要自寄宿才能访问了,所以添加了owin一套,然后果然授权成功了。后来我又把这一堆删除了,iis启动,结果还是能授权成功,最后发现不是必须自寄宿,而是.net framework必须要安装Microsoft.Owin.Host.SystemWeb,不清楚这里是不是他们的BUG。

 

posted on 2017-05-26 14:49  youyingchou  阅读(948)  评论(1编辑  收藏  举报

导航