Azure 上的身份服务器
Posted
技术标签:
【中文标题】Azure 上的身份服务器【英文标题】:IdentityServer on Azure 【发布时间】:2019-03-28 15:42:34 【问题描述】:我正在尝试制作一个 ASP.NET Core Web 应用程序来托管 IdentityServer 并将其用作我的主要授权服务,并在许多其他应用程序之间共享。
我遵循了快速入门教程,该教程包括在一个空的 MVC 应用程序模板中安装一个 nuget 包(称为 IdentityServer4)。
在我的机器上一切正常(使用 VS2017 和 VS2019 预览进行调试)。 我尝试像以前的应用程序一样将应用程序发布为 Azure 应用程序服务,并且运行良好。
调试时,如果我打开浏览器并输入“https://localhost:44316/”,我会看到这个页面:
但是导航到“https://xxx.azurewebsites.net”(这是我发布应用程序的地方)不起作用。找不到响应的 404。
只是添加一些细节,如果我导航这个“https://localhost:44316/Account/Login?ReturnUrl=%2Fgrants”,我会获得正确的登录页面,并且在 Azure 上执行相同的操作会产生相同的结果。
所以,基本上,它看起来像在工作,除了主页。
我不是 ASP.NET Core 路由方面的专家,所以如果我的问题不够聪明,请不要怪我。
【问题讨论】:
【参考方案1】:所以,基本上,它看起来像在工作,除了主页。
这实际上是预期的行为 - 如果您查看 IdentityServer4.Quickstart.UI 项目中提供的 HomeController
的实现,您将看到以下实现 (source):
public IActionResult Index()
if (_environment.IsDevelopment())
// only show in development
return View();
_logger.LogInformation("Homepage is disabled in production. Returning 404.");
return NotFound();
在 Azure 中运行时,应用程序的环境未设置为开发环境,因此返回 404 NotFound,如上所示。
【讨论】:
以上是关于Azure 上的身份服务器的主要内容,如果未能解决你的问题,请参考以下文章
继续与 OIDC JS 客户端和身份服务器进行会话 4 授权流与 Azure 应用服务上的 PKCE 流
移动设备上的 Azure App Service 身份验证问题
在 Asp.Net Core Web 应用程序中使用 EasyAuth 对 Azure 应用服务上的 AAD 进行身份验证时,无法填充 ClaimsPrincipal