我们有自己的 OpenID Connect Provider。我们也有我们自己的依赖方 SDK,它创建请求然后解析结果。现在我们想让我们的 Provider 与 Owin/Katana 客户一起工作。
根据 OpenID Connect 规范,我们可以使用“请求”对象http://openid.net/specs/openid-connect-core-1_0.html#JWTRequests,我们可以在其中将请求的声明和声明的值传递给 OpenID Connect提供者。
所以我的第一个问题是:如何使用 Owin/Katana 中间件传递带有请求声明及其值的“请求”对象?我找不到使用Microsoft.Owin.Security.OpenIdConnect程序集的任何方法。似乎我们只能请求范围,仅此而已。
第二个问题(对我们来说并不重要,但仍然如此):Owin 是否支持“查询”响应模式?默认情况下,Owin 使用隐式流和“form_post”响应模式。但是当我尝试使用“查询”响应模式时,我没有任何结果(我们的 Provider 在查询参数中使用 id_token 重定向到 redirect_uri,但 Owin 没有捕捉到它,使用“form_post”响应模式一切正常)。试过这段代码:
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
...
Response_Mode = "query",
...
});
我将不胜感激您的任何帮助。