代码之家  ›  专栏  ›  技术社区  ›  Collin Barrett

在实施IProfileService时支持“两个帐户”登录

  •  0
  • Collin Barrett  · 技术社区  · 7 年前

    我们正在尝试将IdentityServer4集成到我们希望合并两个登录帐户(而不是传统意义上的2FA)的设施中。用户将在固定在大楼物理位置的计算机上预先登录Windows“服务”帐户。他们将自动通过IS4身份验证,服务帐户为 IS4 Windows Authentication . 然后,用户将在web应用程序窗体(如IS4 quickstart登录窗体)中使用其个人Active Directory凭据登录。这将使我们能够根据用户的身份和位置授予更细粒度的权限。

    我们正在努力实施 IProfileService 调用需要两个帐户ID的内部API。我们发布的声明来自于 GetProfileDataAsync() 应该是两个帐户权限重叠的结果。 IsUserActiveAsync() 应验证服务帐户和用户帐户都处于活动状态。

    我们如何从实现中访问这两个帐户ID ? 类型的子参数 ClaimsPrincipal 传递给 IProfileService 方法似乎只支持单个帐户。IS4开箱即用支持这种类型的环境,还是需要一些定制?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Collin Barrett    7 年前

    这些只是假设,但在我看来,服务帐户实际上不是真正的用户帐户,而是计算机帐户。因此,它实际上不是识别用户,而是识别计算机。从你所写的来看,似乎只有位置才是最重要的。

    extension grants 也许这就是你的答案。因为您可以为计算机/用户创建自定义登录。将信息合并到一个访问令牌中。

    另一种方法是查看ip地址。但这仅在计算机具有固定且已知的ip地址时有效。

    这两个选项都将用户绑定到该位置。

    PolicyServer )处理权限的。在这种情况下,您可以使用计算机的Windows用户名(如果已验证并且是令牌的一部分)或ip地址以及用户id来获取该位置的用户权限。

        2
  •  0
  •   Collin Barrett    7 年前

    Principal IProfileService