我正在使用Identity Server并在IIS下托管它。直接在http://localhost:44431
第1步:致电http://localhost:44431/account/login?returnUrl=/connect/authorize/login?respone_type .... 第2步:然后转到授权端点并返回令牌
在localhost \ id下的Probelm托管:
但是,当我在默认网站下的IIS上部署应用程序为localhost\id
时。它停止工作。
第1步:致电http://localhost/id/account/login?returnUrl=/connect/authorize/login?respone_type ....
>>检查请求标题:
>>响应标题:
>>在http://localhost/id/.well-known/openid-configuration
打开ID配置 "authorization_endpoint":"http://localhost/id/connect/authorize",
第2步:调用/connect/authorize
端点:
>>检查标题:
它没有包含id
虚拟目录,这就是它失败的原因。在这个过程中我必须解决这个问题?
答案 0 :(得分:1)
我无法重现您的问题,但我确实从头开始在IIS中托管IdentityServer4。我遵循设置的步骤如下。
将MvcClient项目中的权限URL更改为指向localhost / id
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
{
AuthenticationScheme = "oidc",
SignInScheme = "Cookies",
Authority = "http://localhost/id",
RequireHttpsMetadata = false,
ClientId = "mvc",
SaveTokens = true
});
加载MvcClient应用程序并导航到包含'授权'过滤。使用适当的虚拟目录
转到openid-configuration页面,检查IdentityServer是否输出了正确的路径:http://localhost/id/.well-known/openid-configuration
您是否在同一个项目中运行IdentityServer4和MVC应用程序?如果是这样,您是否使用OpenIdConnectOptions.Authority属性的相对路径?尝试将其更改为绝对路径,看看是否能解决问题。我认为可能是这种情况,因为您的请求网址在重定向uri中不包含/ id路径:
http://localhost/id/account/login?**returnUrl=/connect/authorize/login**?respone_type
当然正确的道路应该是:
http://localhost/id/account/login?**returnUrl=/id/connect/authorize/login**?respone_type
希望这有帮助!请让我知道