我需要从此更改发现端点的URL:
/.well-known/openid-configuration
对此:
/identity/.well-known/openid-configuration
我正在尝试将ID4部署到Azure Kubernetes服务。当我将ID4部署到根地址(如http://xxxx.europe.cloudapp.azure.com)时,一切都很好-我看到了欢迎页面,并且可以访问我的发现端点。
但是,当我将ID4部署到子路由(http://xxxx.europe.cloudapp.azure.com/identity)时,我无法访问oidc配置。我正在使用URL重写,因此当我单击链接以访问发现文档(http://xxxx.europe.cloudapp.azure.com/identity/.well-known/openid-configuration)时,我会收到HTTP404。
编辑:
当我添加时:
app.Use(async (context, next) =>
{
context.Request.PathBase = "/identity";
await next.Invoke();
});
所有css / js / jpeg文件均已正确加载。这是进步。
但是,当我单击欢迎页面(({http://xxxx.europe.cloudapp.azure.com/identity/.well-known/openid-configuration)上可见的链接时,我会收到HTTP404。当我单击Grants(({http://xxxx.europe.cloudapp.azure.com/identity/grants)。这是相同的故事。手动删除“ / identity” from链接仍会导致404。
答案 0 :(得分:1)
通过使用Map
上的IApplicationBuilder
Api,您应该能够使用相对URI。
app.Map("/identity", authApp =>
{
authApp.UseIdentityServer();
});
答案 1 :(得分:1)
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.Map("/identity", authApp =>
{
app.UseStaticFiles("/identity");
authApp.UsePathBase(new PathString("/identity"));
authApp.UseIdentityServer();
});
}
编辑:
也不要使用
app.UseHttpsRedirection()
为代理服务器保留HTTPS
答案 2 :(得分:0)
感谢Vidmantas和Mohamed的回答,我设法使它起作用。我使用了他们的建议,这就是最终使我成功的原因:
app.Map("/identity", authApp =>
{
authApp.UseStaticFiles();
authApp.UseIdentityServer();
authApp.UseMvcWithDefaultRoute();
});
如果没有
,它就无法正常工作authApp.UseMvcWithDefaultRoute();
我的istio网关配置中存在一些问题。解决它们之后,IS4就像子路由中的符咒一样工作。谢谢您的回答。