Asp.net-Mvc

OpenID Connect 的 OWIN 中間件 - 程式碼流(流類型 - AuthorizationCode)文件?

  • November 25, 2019

在我的實現中,我使用 OpenID-Connect Server (Identity Server v3+) 來驗證 Asp.net MVC 5 應用程序(使用 AngularJS 前端)

我計劃使用 OID 程式碼流(使用 Scope Open_ID)來驗證客戶端(RP)。對於 OpenID 連接中間件,我使用的是 OWIN(Katana 項目)組件。

在實施之前,我想了解使用 OWIN 的反向通道令牌請求、刷新令牌請求過程等。但我無法找到此類實現的任何文件(大多數可用範例使用隱式流)。

我可以在這裡找到 ID Server v3 的通用程式碼流實現範例https://github.com/IdentityServer/IdentityServer3.Samples/tree/master/source

我正在尋找使用 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作為範例。

引用自:https://stackoverflow.com/questions/33661935