OAuth client_id 是否应该保密?

信息安全 oauth
2021-09-07 21:36:01

我希望我的 OAuth 授权服务器所有者显示(有关)已注册客户端的信息。可以使用client_id作为公共客户端标识符还是client_id也应该是机密的(如client_secret)?我还会共享客户元数据 client_nameclient_uri显示已注册客户的列表,但这些都不是问题。当然,我可以通过管理公共客户端 ID 之间的内部映射来添加另一个间接,client_id但是从安全的角度来看,这实际上是必要的吗?

1个回答

client_id就像您用来向 OAuth 验证您的应用程序/服务的用户名或电子邮件地址。这并不完全是绝密的,但将其发布到公共领域也可能是不可取的。

尤其是如果您要将它与 一起组合在一个列表中client_nameredirect_uri它会变得有点危险。因为您提供了几乎所有客户端信息,所以它可能成为攻击者的有趣列表。如果他们想针对您列表中的任何应用程序/服务,他们已经掌握了大量信息,并且仍然只需要“破解”秘密即可将自己标识为您的客户。当然,破解这个秘密应该不是一件容易的事,但你基本上是在泄露一些通常不属于公共领域的免费信息。

当您决定继续执行此操作时,我建议您谨慎行事,例如没有像这样的页面/列表被搜索引擎索引(如果它是在线列表),存储在您的家庭/公司网络的公共文件夹中(如果它是数字列表)或躺在你的桌子上(当它是物理列表时)。