FIWARE-Keyrock:如果 OAuth2 凭据不控制访问,为什么与应用程序相关?

FIWARE-Keyrock: Why are the OAuth2 credentials related to apps if they do not control access?

我们有一个场景,我想用 Wilma PEP 代理保护服务 X。服务 X 已在 Keyrock 中注册。 Wilma PEP 代理包含在 Keyrock 中为服务 X 生成的 PEP 凭据。应用程序 Y 使用为此特定服务生成的正确 OAuth2 凭据(client_id 和 client_secret 来自服务 X)访问服务 X。没关系。但是有一个问题:应用程序 Z 也可以使用不同的 OAuth2 凭据(而不是服务 X 凭据)访问服务 X!

如果这是可能的,为什么我们的应用程序在 Keyrock 中生成了特定的 OAuth2 凭据,如果它们不控制任何东西?!没有意义!

这是一个很大的安全问题,因为一个入侵者可以在 Keyrock 中注册一些应用程序,并且使用为这个特定应用程序生成的令牌(使用它自己的 OAuth2 凭据)这个入侵者可以访问在这个 Keyrock 实例中注册的所有应用程序!

如您在 PEP Proxy documentation 中所见,级别 1 仅检查身份验证。因此,每个拥有有效令牌(即在 Keyrock 中进行身份验证)的用户都将被重定向到服务器应用程序。如果您还想检查授权,您必须配置具有基本或高级安全授权级别的 AuthZForce 服务器。

另一方面,在令牌验证响应中,您将获得一个字段 application_id,指示您创建令牌的范围。