我一直在使用Auth0来构建我网站的前端用户身份验证部分,但我不确定是否应该完全遵循这些文档。
如果我想构建商业产品,我应该隐藏客户端ID和域吗?这会导致安全漏洞吗?
目前,任何人都可以查看我的Angular2源代码并查看客户端ID和域。
答案 0 :(得分:6)
客户标识符和您的域(我假设您指的是与[account].auth0.com
类似的已分配的Auth0域)都被视为信息这不需要保密。
域代表处理身份验证的实体;相当于您申请的accounts.google.com
。
客户标识符在OAuth 2.0规范中定义,明确指出该信息不是机密信息:
客户端标识符不是秘密;它暴露给资源所有者,不得单独用于客户端身份验证。
在基于浏览器或其他应用程序中,实际代码位于客户端环境中,为了进行身份验证,不可避免地将信息存储在那里。你只需要确保存储的信息可以像你给出的两个例子一样被公开。
另一方面,这些类型的应用程序无法安全地使用OAuth 2.0定义的客户端密钥,因为正如您所说,任何人都可以通过检查代码来看到它。