在我的实现中,我使用OpenID-Connect服务器(Identity Server v3 +)对Asp.net MVC 5应用程序进行身份验证(使用AngularJS前端)
我打算使用OID代码流(带有Scope Open_ID)来验证客户端(RP)。对于OpenID连接中间件,我正在使用OWIN(Katana项目)组件。
在实施之前,我想了解使用OWIN的反向通道令牌请求,刷新令牌请求过程等。但是,我找不到此类实施的任何文档(大多数可用示例使用隐式流程)。
我可以在https://github.com/IdentityServer/IdentityServer3.Samples/tree/master/source处找到ID Server v3的通用代码流实现的示例。
我在寻找使用OWIN中间件的类似产品吗?有人有指针吗?
最佳答案
编辑:好消息,代码流和response_mode=query
支持最终被添加到Katana中,作为4.1版本(于2019年11月发布)的一部分:https://github.com/aspnet/AspNetKatana/wiki/Roadmap#410-release-november-2019。
OpenID Connect中间件不支持以下代码流:http://katanaproject.codeplex.com/workitem/247(尽管在ASP.NET 5版本中已修复)。
实际上,仅正式支持隐式流(id_token
),并且您必须使用response_mode=form_post
扩展名。尝试使用授权代码流只会导致在回调过程中引发异常,因为它无法从身份验证响应中提取(丢失)id_token
。
尽管没有直接支持,但是您也可以使用混合流(code
+ id_token (+ token)
),但是由您来实现令牌请求部分。您可以查看https://github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server/blob/dev/samples/Nancy/Nancy.Client/Startup.cs#L82-L115作为示例。
关于asp.net-mvc - 用于OpenID Connect的OWIN中间件-代码流(流类型-AuthorizationCode)文档?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33661935/