【发布时间】:2017-03-14 06:38:00
【问题描述】:
我一直在使用 Auth0 来构建我网站的前端用户身份验证部分,但我不确定我是否应该完全按照文档进行操作。
如果我想构建一个商业产品,我应该隐藏客户 ID 和域吗?这会导致安全漏洞吗?
目前任何人都可以查看我的 Angular2 源代码并查看客户端 ID 和域。
【问题讨论】:
我一直在使用 Auth0 来构建我网站的前端用户身份验证部分,但我不确定我是否应该完全按照文档进行操作。
如果我想构建一个商业产品,我应该隐藏客户 ID 和域吗?这会导致安全漏洞吗?
目前任何人都可以查看我的 Angular2 源代码并查看客户端 ID 和域。
【问题讨论】:
客户端标识符和您的域(我假设您指的是分配的 Auth0 域,类似于 [account].auth0.com)都被视为不需要的信息保密。
域代表处理身份验证的实体;相当于您的应用程序的accounts.google.com。
客户端标识符在 OAuth 2.0 规范中定义,清楚地表明它不是机密信息:
客户端标识符不是秘密;它向资源所有者公开,不得单独用于客户端身份验证。
在实际代码位于客户端环境中的基于浏览器的应用程序或其他应用程序中,不可避免地会在其中存储用于身份验证的信息。您只需要确保存储的信息可以像您提供的两个示例一样被披露。
另一方面,这些类型的应用程序无法安全地使用 OAuth 2.0 定义的客户端密码,因为正如您所说,任何人都可以通过检查代码看到它。
【讨论】: