昂首阔步授权不接收JWT访问令牌

时间:2019-07-25 14:56:19

标签: swagger swagger-ui swashbuckle

我将Windows Server 2012 ADFS v3.0用作身份提供程序。我已经将Swashbuckle用于.Net Core API 2.2集成了Swagger 结果,我还必须在OAuth2Scheme中使用authorizationCode流。

第1步)调用授权URL并接收代码-这有效
第2步)调用Token URL并将代码作为querystring参数传递并接收JWT令牌-这正在工作

我通过监视Fiddler中的请求和响应来验证了这两个步骤。
我还手动在Postman中创建了我的请求,并收到了令牌。
在Chrome检查器中,对该令牌的调用成功返回了200。
我一直在遵循相同的流程其他内部应用程序。 (虽然是第一次使用Swagger)
重定向到TokenURL似乎可以正常工作,因为我看到了swagger / oauth-redirect.html的流量,这只是一个重定向,然后页面看上去会自动关闭

但是由于某种原因,该页面给出了一般错误消息: 验证错误TypeError:无法提取

设置代码 我正在通过Startup.cs而不是通过json配置文件进行配置。

c.AddSecurityDefinition("oauth2", new OAuth2Scheme
{
   Type = "oauth2",
   Flow= "authorizationCode",
   AuthorizationUrl = "https://adfs.youridentityprovider.com/adfs/oauth2/authorize",
   TokenUrl= "https://adfs.youridentityprovider.com/adfs/oauth2/token",

});
app.UseSwaggerUI(c =>
{
   c.SwaggerEndpoint("v1/swagger.json", "My API V1");
   c.OAuthClientId("id linked in my Identity provider");
   c.OAuthClientSecret("swagger");
   c.OAuthAppName("app name linked in my Identity provider");
   c.OAuthRealm("identifier linked in my Identity provider");

   var qParams = new Dictionary<string, string>();
   qParams.Add("resource", "resource id");
   //This was needed because I kept getting an error message saying resource parameter was missing for the Authorization URL.  
   //I didn't like that it was adding a query string parameter to the Token URL call as well.  
   //But I verified that it was still working ok with this parameter  
   c.OAuthAdditionalQueryStringParams(qParams);
});

我还没有完成将该令牌传递给我的API方法的下一步。我认为必须先获得授权后才能执行此操作。

0 个答案:

没有答案