OpenID Connect的OWIN中间件 - 代码流(Flow type - AuthorizationCode)文档?

Kar*_*hik 10 asp.net-mvc oauth-2.0 owin openid-connect identityserver3

在我的实现中,我使用OpenID-Connect服务器(Identity Server v3 +)来验证Asp.net MVC 5应用程序(使用AngularJS前端)

我打算使用OID代码流(使用Scope Open_ID)来验证客户端(RP).对于OpenID连接中间件,我使用的是OWIN(Katana Project)组件.

实施前,我想明白了反向信道令牌请求,刷新令牌请求处理等使用OWIN.但我无法找到这种类型的实现(大多数可用的示例使用隐式流)的任何文件.

我可以在这里找到ID Server v3的通用代码流实现的示例https://github.com/IdentityServer/IdentityServer3.Samples/tree/master/source

我正在寻找一个使用OWIN中间件的类似的?有没有人有任何指针?

Kév*_*let 28

OpenID Connect中间件不支持代码流:http://katanaproject.codeplex.com/workitem/247(虽然已在ASP.NET 5版本中修复).

实际上,只有response_mode=query正式支持隐式flow(),你必须使用id_token扩展名.尝试使用授权代码流只会导致在回调期间抛出异常,因为它无法response_mode=form_post从身份验证响应中提取(缺失).

虽然不是直接支持,但您也可以使用混合流(id_token+ code),但是由您来实现令牌请求部分.您可以参阅https://github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server/blob/dev/samples/Nancy/Nancy.Client/Startup.cs#L82-L115作为示例.

  • 这个答案包含了很多知识.一定要花时间去发现所有这些痛点.在回调期间为OP抛出的异常*扩展:异常是由于如果你只询问`code`流(当然是设计的),在调用idsvr时没有返回id标记. (5认同)
  • 4.1 添加了代码流支持 https://github.com/aspnet/AspNetKatana/pull/297 (2认同)
  • 谁能给我提供一个配置 Owin 4.1 以使用身份验证代码流的示例吗?我发现的所有样本似乎都使用隐式流。 (2认同)