2017-11-18 224 views
1

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

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

表示,我们应该允许来自已知客户端的请求。

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

请帮忙!!

回答

0

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

RFC6749 section 10.3 - 访问令牌凭据(以及任何 机密的访问令牌属性)必须在 运输和储存保密,只有授权 服务器之间共享,资源服务器的访问令牌是有效的,以及发放访问令牌的客户端 。访问令牌 只能使用TLS进行传输,如 第1.6节所述,服务器认证由[RFC2818]定义。

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

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

p.s或者,网络配置可以设置为只允许已知/有效的IP地址与您的后端进行通信。但是这不在OIDC协议中。

+0

谢谢!但是,我没有得到实际答案,是的,我们正在保护访问令牌。实际上,如果用户通过未知来源或邮递员访问令牌,任何用户都可以请求用户信息。我想限制这一点。并分享细节,如果请求来自我们的客户(微服务)只。 – Nick

+0

@Nick正如您在示例中给出的那样,您是不是使用有效访问令牌发送邮递员请求?这意味着如果您的访问令牌受到保护并且没有其他方可以获取它们,则它们将无法从userinfo端点获取信息。该协议的保护仅限于访问令牌(我的答案解释了原因)。或者,可以调整网络以将目标受众以外的IP地址列入黑名单。但是从网络角度来看。 –