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