IdentityServer4发现文档部署到反向代理后面的子例程时返回404
我需要从以下位置更改发现终结点的url:IdentityServer4发现文档部署到反向代理后面的子例程时返回404,identityserver4,openid-connect,Identityserver4,Openid Connect,我需要从以下位置更改发现终结点的url: /.well-known/openid-configuration 为此: /identity/.well-known/openid-configuration 我正在尝试将ID4部署到Azure Kubernetes服务。当我将ID4部署到根地址(如)时,一切都会很好——我看到了欢迎页面,可以访问我的发现端点 但是,当我将ID4部署到子例程()时,我无法访问oidc配置。我正在使用URL重写,所以当我单击链接访问发现文档()时,我得到了HTTP40
/.well-known/openid-configuration
为此:
/identity/.well-known/openid-configuration
我正在尝试将ID4部署到Azure Kubernetes服务。当我将ID4部署到根地址(如)时,一切都会很好——我看到了欢迎页面,可以访问我的发现端点
但是,当我将ID4部署到子例程()时,我无法访问oidc配置。我正在使用URL重写,所以当我单击链接访问发现文档()时,我得到了HTTP404
编辑:
当我加上:
app.Use(async (context, next) =>
{
context.Request.PathBase = "/identity";
await next.Invoke();
});
所有css/js/jpeg文件都已正确加载。这就是进步
但是,当我单击欢迎页面上可见的链接(())时,我得到了HTTP404。当我单击grants(())时,情况是一样的。手动从链接中删除“/identity”仍然会导致404。您应该能够使用
iaapplicationbuilder
上的Map
Api来使用相对URI
app.Map("/identity", authApp =>
{
authApp.UseIdentityServer();
});
- Github问题
app.UseHttpsRedirection()
将HTTPS留给代理服务器多亏了Vidmantas和Mohamed answers,我成功地实现了它。我使用了他们的建议,下面是它最终对我起作用的原因:
app.Map("/identity", authApp =>
{
authApp.UseStaticFiles();
authApp.UseIdentityServer();
authApp.UseMvcWithDefaultRoute();
});
不知怎的,没有它就不能正常工作
authApp.UseMvcWithDefaultRoute()
我的istio网关配置中有一些问题。解决这些问题后,IS4就像子例程中的符咒一样工作。谢谢你们的回答。它没有帮助,不幸的是,它仍然返回404@skyrunner您可以尝试
app.Use(异步(上下文,下一步)=>{context.Request.Path=“/identity”+context.Request.Path;等待下一步。Invoke();})这是一个黑客攻击,我不知道它是否会起作用。在app.UseIdentityServer()之前使用这个中间件
。首先,感谢您的帮助。这不起作用-使用此代码,甚至欢迎页面都不会出现。我希望有一个IS4属性可以控制发现端点url。但是我在文档中找不到这样的设置。@skyrunner没有属性。看看这段代码,这就是我想到使用映射的地方
和更改上下文.Request.Path
。你应该试着理解为什么这个端点路由对你不起作用。我刚刚尝试在IIS上以web应用程序的形式本地托管,使用Map
@skyrunner对我有效。还有,做其他端点工作(比如连接/令牌)在您尝试进行这些更改之前?是否只是返回NotFound的disco页面?它以这种方式在本地工作,但由于某些原因在Azure Kubernetes服务上不工作。是否尝试了“我的更新”
app.Map("/identity", authApp =>
{
authApp.UseStaticFiles();
authApp.UseIdentityServer();
authApp.UseMvcWithDefaultRoute();
});