- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我正在尝试使用 JWT token 测试一个简单的 WebApi 应用程序。主要是我按照示例here
我正在使用 https。
暂时不使用授权。问题是,如果我在 Postman 中选择“从父级继承身份验证”,一切正常。
只要我将选项更改为“BearerToken”并尝试输入我收到的 JSONWebToken,它就会给我
System.InvalidOperationException: IDX20803: Unable to obtain configuration from: 'https://localhost:44387/api/.well-known/openid-configuration'. ---> System.IO.IOException: IDX20804: Unable to retrieve document from: 'https://localhost:44387/api/.well-known/openid-configuration'. ---> System.Net.Http.HttpRequestException: Response status code does not indicate success: 404 (Not Found). at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode() at Microsoft.IdentityModel.Protocols.HttpDocumentRetriever.GetDocumentAsync(String address, CancellationToken cancel) --- End of inner exception stack trace --- at Microsoft.IdentityModel.Protocols.HttpDocumentRetriever.GetDocumentAsync(String address, CancellationToken cancel)
请注意,我在这里没有使用 IdentityServer 中间件,在浏览器上我也无法浏览到 https://localhost:44387/api/.well-known/openid-configuration
我不确定这个 "openid-configuration" 在哪里,特别是当我没有在我的 aspnet Core 3.0 Web APi 应用程序中明确使用它时?这是我的代码..
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
//extra code removed for brevity
//Authentication
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options =>
{
options.Authority = "https://localhost:44387/api";
options.Audience = "JWT:Issuer";
options.TokenValidationParameters.ValidateLifetime = true;
options.TokenValidationParameters.ClockSkew = TimeSpan.FromMinutes(5);
options.RequireHttpsMetadata = false;
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
//to send HTTP Strict Transport Security Protocol (HSTS) headers to clients.
app.UseHsts();
}
//to redirect HTTP requests to HTTPS.
app.UseHttpsRedirection();
app.UseAuthentication();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapRazorPages();
});
}
代替 https://localhost:44387/api 我也试过 https://localhost:44387/ 和 https://localhost 但没有运气.. 我主要是想了解为什么我根本没有使用 openid 时会出现它。一切都在我的本地机器上,我正在使用 IISExpress。
我还尝试通过修复 IISExpress 删除和重新创建 localhost SSL 证书。
任何线索都会有所帮助。
最佳答案
在您的 AddJwtBearer
设置中,由于您设置了 Authority
,它将联系 OIDC 元数据文档,用于在验证 jwt token 时获取服务的公共(public)签名 key 由 token 服务的私钥签发。
您的方案是使用对称安全 key 来发布/验证 jwt token 。所以作为document可见,场景中应该不设置Authority
,设置SymmetricSecurityKey
来验证 token :
var appSettingsSection = Configuration.GetSection("AppSettings");
services.Configure<AppSettings>(appSettingsSection);
// configure jwt authentication
var appSettings = appSettingsSection.Get<AppSettings>();
var key = Encoding.ASCII.GetBytes(appSettings.Secret);
services.AddAuthentication(x =>
{
x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(x =>
{
x.RequireHttpsMetadata = false;
x.SaveToken = true;
x.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(key),
ValidateIssuer = false,
ValidateAudience = false
};
});
关于c# - IDX :20803 Unable to obtain configuration from. .. - Web API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60162382/
这是我的第一个主题here的继续,该主题是有关如何使用代码模拟屏幕触摸的。 我想将此功能整合到 float 的屏幕聊天头中(就像facebook所做的那样)。因此,基本上,当我点击聊天头时,此服务将模
安装应用程序时遇到以下问题: 使用Worklight控制台,我正在上载.wlapp文件,删除已部署的应用程序,然后尝试再次上载相同的.wlapp。 然后,Worklight Console被卡住,甚至
我进行了 LDAP 目录搜索并收到了一些结果。我需要迭代这些结果并显示每个条目的 Dn。 在我的测试环境中,我通过获取entryDN属性的值来返回Dn值。 在生产环境中,entryDN 属性始终返回
在调试器中,当执行这样一行代码时我“卡住”了:lock (myvar) 显然其他人持有myvar。但是我希望在这一行 myvar 应该是免费的。所以我想知道代码的哪一部分包含 myvar (来自另一个
我正在做一些序列化,其中还包含需要存储为字符串的 IFile 路径。 我在插件项目中使用这个 IFile。为调试或运行 Eclipse 启动一个新工作区。这个测试工作区的根目录相对于插件文件夹。我的问
我知道这个问题已经得到回答,但我不明白人们到底在做什么(关于证书,ssl),他们都使用本地主机而不是我。 我使用此示例作为示例 OpenIdConnect 我正在使用: 一个网络应用程序 一个 Web
我正在尝试获取当前星期以在SQLite中进行日期比较。 我上个月,去年,今天,昨天都没问题...但是找不到当前星期的解决方案。 我尝试了很多事情,例如: SELECT tastings.* FROM
我有兴趣将大部分使用Thrust GPU库编写的代码移植到多核CPU。值得庆幸的是,the website说推力代码可以与诸如OpenMP/Intel TBB之类的线程环境一起使用。 我在下面编写了一
我需要创建一个 PHP 应用程序,在给定主题标签的情况下,它会向我返回一个 XML,其中包含与该主题标签相关的帖子。 我在开发者部分登录 Instagram 并填写了应用程序设置表格。 已生成“客户端
当我从 Gradle 任务运行集成测试时,我的集成测试失败。 org.springframework.data.solr.UncategorizedSolrException: **SolrCore
这个问题已经有答案了: java.lang.IllegalStateException: Iterator already obtained (1 个回答) 已关闭 8 年前。 所以我写了一个小Jav
谁能告诉我为什么会出现以下异常? java.rmi.ServerException: RuntimeException; nested exception is: java.lang.Ille
当我尝试从 WCF 测试客户端运行我的应用程序时,我收到以下错误: Error: Cannot obtain Metadata from http://localhost:53867/MyAPI.sv
我有几个变量分配给同一个函数。属性“name”为“”,因为此函数是匿名的; 也没有涉及函数调用,因此没有被调用者。 JS有没有办法通过自己实现的反射算法获取变量名? 例如 var x = functi
只是想知道是否有人知道如何查询 Facebook Credits (FBC) API 以获取用户拥有的信用数?我的应用程序有此要求,并且 FBC API 中没有对此进行解释或提及。 谢谢 最佳答案 也
我正在使用 Spring Batch 3.0.5。关于 MySql 序列表的引擎类型的相同问题。与 spring-batch-storage-engine-as-myisam-than-innodb
我想我遗漏了一些明显的东西,但我就是想不通如何获取 CCMenuItemFont 的标签。 背景我正在为 iPad 构建一个简单的刽子手游戏。为了输入下一个猜测,我在 UI 中添加了 26 个按钮(每
我正在开发一个 Android 应用程序 (API 15) 并在尝试编写单元测试时遇到以下问题: 我使用 android.os.Parcel 来保存一个类(例如,如果屏幕翻转)并将它发送到另一个 Ac
我正在利用 C++ 全局变量的构造函数的行为在启动时以简单的方式运行代码。这是一个非常简单的概念,但有点难以解释,所以让我粘贴代码: struct _LuaVariableRegistration {
在 C# 中,如何获取对给定类的基类的引用? 例如,假设您有一个特定的类 MyClass,并且您想要获取对 MyClass 的父类(super class)的引用。 我的想法是这样的: Type s
我是一名优秀的程序员,十分优秀!