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 身份验证问题

对 Azure 应用服务的逻辑应用身份验证

Api 的自定义身份验证 Azure 移动服务

在 Asp.Net Core Web 应用程序中使用 EasyAuth 对 Azure 应用服务上的 AAD 进行身份验证时,无法填充 ClaimsPrincipal

Azure 存储 SAS 无法进行身份验证