Swagger授权未接收JWT访问令牌

Swagger授权未接收JWT访问令牌,swagger,swagger-ui,swashbuckle,Swagger,Swagger Ui,Swashbuckle,我使用Windows Server 2012 ADFS v3.0作为身份提供程序。我已经使用.Net核心API 2.2的Swashback集成了Swagger 因此,我还必须在OAuth2Scheme中使用authorizationCode流 步骤1)调用授权URL并接收代码-这正在工作步骤2)调用令牌URL并将代码作为查询字符串参数传递,然后接收JWT令牌-这正在工作 我通过监视Fiddler中的请求和响应来验证这两个步骤我还在Postman中手动创建了我的请求,并在Chrome inspec

我使用Windows Server 2012 ADFS v3.0作为身份提供程序。我已经使用.Net核心API 2.2的Swashback集成了Swagger 因此,我还必须在OAuth2Scheme中使用authorizationCode流

步骤1)调用授权URL并接收代码-这正在工作
步骤2)调用令牌URL并将代码作为查询字符串参数传递,然后接收JWT令牌-这正在工作

我通过监视Fiddler中的请求和响应来验证这两个步骤
我还在Postman中手动创建了我的请求,并在Chrome inspector中收到了令牌
对令牌的调用返回了成功200
对于所有其他内部应用程序,我一直遵循相同类型的流程。(第一次使用招摇过市)
当我看到swagger/oauth-redirect.html的流量时,对TokenURL的重定向似乎起到了作用,这只是一个重定向,然后页面看起来会自动关闭

但是,由于某些原因,该页面会显示一条通用错误消息: 身份验证错误类型错误:无法获取

设置代码 我通过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”,“我的API v1”);
c、 OAuthClientId(“在我的身份提供者中链接的id”);
c、 OAuthClientSecret(“招摇过市”);
c、 OAuthAppName(“我的身份提供商中链接的应用程序名称”);
c、 OAuthRealm(“在我的身份提供程序中链接的标识符”);
var qParams=新字典();
添加(“资源”、“资源id”);
//这是必需的,因为我一直收到一条错误消息,说授权URL缺少资源参数。
//我不喜欢它还向令牌URL调用添加了一个查询字符串参数。
//但是我验证了这个参数仍然可以正常工作
c、 OAuthAdditionalQueryStringParams(qParams);
});

我还没有完成将这个令牌传递给API方法的下一步。我想这需要在我得到授权后才能发生

这有帮助吗?不,没用。这也适用于Windows Server 2016上的ADFS v4,我们落后一个版本。也许我会在年底等待服务器升级。这有帮助吗?不,没用。这也适用于Windows Server 2016上的ADFS v4,我们落后一个版本。也许我会在年底等待服务器升级
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);
});