【问题标题】:Use Identity Server 4 as an Applications Portal使用 Identity Server 4 作为应用程序门户
【发布时间】:2020-07-03 23:26:48
【问题描述】:

大家好,

我正在尝试使用 Identity Server 4 作为我的令牌提供程序来创建应用程序登陆门户。我希望用户登录一个列出其可用应用程序的应用程序(基于该用户登录时我将获得的列表),然后允许用户单击按钮转到该应用程序。

示例:用户单击应用程序登录页面并登录,然后他们会看到允许访问的 Web 应用程序列表。他们点击他们想要访问的应用程序的按钮,然后他们被重定向到该应用程序。

目前,列出的所有应用程序都将是 Web 应用程序(在撰写本文时),我被困在如何告诉应用程序(用户单击)用户已经通过身份验证。我不希望用户必须第二次登录。这类似于 SSO 场景。

我已经设置了 Application Landing Portal 应用程序,用户可以登录到该应用程序并获取可供他们使用的应用程序(客户端)的列表。

但选择应用程序时,用户身份为空(使它们必须在第二次登录)。

有人有什么建议吗?

谢谢, 蒂姆

【问题讨论】:

    标签: identityserver4


    【解决方案1】:

    将用户发送到应用程序的安全页面。

    例如

    public class AccountController : Controller
    {
        [Authorize]
        public async IActionResult Login()
        {
        }
    

    在应用程序登陆页面上有一个类似的链接:

    https://myapp.com/account/login
    

    这将触发身份验证,将用户重定向回 IdentityServer,其中 SSO cookie 将负责自动登录并将经过身份验证的用户发送回应用程序。

    【讨论】:

    • 嘿 Ruard,我从我想访问的第二个 Web 应用程序中尝试了这个,我得到的只是一个空白页面,在 ID4 服务器和 Web 应用程序之间来回切换。它从未结束。我最终在它崩溃我的浏览器之前停止了它。所以我所做的是设置第二个应用程序的主控制器(不是列出所有应用程序的那个),以便它需要授权,当我单击链接转到该应用程序时,它从未访问过它,我什么也没有但不断重定向。叹息……有什么想法吗?有什么特别的事情我应该做的吗?
    • 重定向似乎有问题。你能看到日志中的内容吗?看起来 SSO 有效,但用户未通过身份验证。可能是中间件的order有错误或者配置有问题。
    • 嘿 Ruard,我想我知道为什么它一直在重定向,但我不知道如何解决它。看来我的第二个应用程序是应用程序门户页面的虚拟目录(IIS 10)。所以应用程序门户 URL:appsPortal.test.com 第二个应用程序 URL:appsPortal.test.com/SecondApp 当我将第二个应用程序放在它自己的域名 (secondApp.test.com) 上时,重定向工作正常。你知道为什么吗?我认为 IS4 允许子域。 :(谢谢你给我的帮助!我很感激。
    • secondApp.test.com 是一个子域,因此可以确认 IS4 允许子域。而appsPortal.test.com/SecondApp 不是子域,而是appsPortal.test.com 域上的子目录或端点。
    • 对不起,我说错了。我仍然不知道为什么每次我去那个端点时 IS4 都会不断重定向。
    【解决方案2】:

    尝试围绕Skoruba IdentityServer 4 Admin 模板构建您的解决方案。当用户登录到管理中心时,会有一个带有 Grants 的部分(用户授权的应用程序)。您可以修改该部分并在此处添加应用程序图标和链接。

    【讨论】:

    • 我看了这个,我很感兴趣,我将不得不在下周安装它并为 ID4 服务器的管理员尝试它。感谢您的链接!
    • 如果您需要帮助,请告诉我。
    猜你喜欢
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 2018-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多