【问题标题】:Restrict openid-connect userinfo request from unknown source限制来自未知来源的 openid-connect 用户信息请求
【发布时间】:2017-11-18 01:56:52
【问题描述】:

如何限制来自未知来源的 openid-connect 请求。

如果我们有可用的访问令牌,任何人都可以请求我们想要限制的用户信息(我们将用户信息和声明保存到用户信息中)。

意味着,我们应该只允许来自已知客户的请求。

注意:我们使用 Keycloak 作为身份服务器

请帮忙!!

【问题讨论】:

    标签: oauth-2.0 openid-connect keycloak userinfo


    【解决方案1】:

    首先,访问令牌必须与用户凭据一样受到保护。 OAuth2.0 框架给我们的是用动态生成的令牌替换基于用户名/密码的身份验证/授权的能力。因此,这些令牌必须受到保护。这就是为什么 TLS 是令牌传输的必要条件。

    RFC6749 section 10.3 - 访问令牌凭据(以及任何 机密访问令牌属性)必须在 中转和存储,只在授权之间共享 服务器,访问令牌对其有效的资源服务器,以及 向其颁发访问令牌的客户端。访问令牌 凭据必须仅使用 TLS 传输,如 第 1.6 节,使用 [RFC2818] 定义的服务器身份验证。

    因此,如果您担心访问令牌滥用,您必须首先担心采用基于令牌的通信。您的客户必须足够安全,不会滥用令牌。

    您还可以做的另一件事是启用 CORS 标头以限制对端点的访问。但是,这只是在保护令牌之后。!

    p.s 或者,可以将网络配置设置为仅允许已知/有效的 IP 地址与您的后端通信。但这超出了 OIDC 协议。

    【讨论】:

    • 谢谢!!但是,我没有得到实际答案,是的,我们正在保护访问令牌。实际上,如果任何用户通过未知来源或邮递员拥有访问令牌,他们都可以请求用户信息权限。我想限制这一点。如果请求仅来自我们的客户(微服务),请分享详细信息。
    • @Nick 正如您在示例中给出的那样,您不发送带有有效访问令牌的邮递员请求吗?这意味着如果您的访问令牌受到保护并且没有其他方可以获取它,他们将无法从 userinfo 端点获取信息。该协议的保护仅限于访问令牌(我的回答解释了原因)。或者,可以调整网络以将目标受众以外的 IP 地址列入黑名单。但这是从网络的角度来看。
    猜你喜欢
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    • 2017-03-11
    • 1970-01-01
    • 2023-03-09
    • 2013-08-23
    • 2016-06-06
    相关资源
    最近更新 更多