Symfony应用基于外部用户数据库与API的用户认证方案咨询
Symfony外部用户API认证方案咨询
我需要构建一个Symfony应用,用户数据不会存储在本地数据库中,而是通过独立域名下的外部用户数据库的API实现认证。目前我已完成以下工作:
- 实现了同时满足
UserInterface与PasswordAuthenticatedUserInterface接口的User类 - UserAuthenticator类采用标准实现
- 核心差异点在UserProvider类:它会向外部用户数据库发起HTTP请求获取用户信息,而非依赖本地数据库
我构思了两种实现思路,但不确定它们的安全性与是否符合最佳实践:
方案1(存在严重安全问题)
- 应用向外部用户数据库API发起请求,仅传递
username参数 - 外部API返回该用户的哈希密码(此做法风险极高)
- 应用在本地对输入的
password进行哈希处理,与返回的哈希值比对,匹配则登录用户 - 认证成功后,从外部API获取剩余用户数据(不确定如何实现,除非需要附带正确密码)
方案2
- 应用向外部用户数据库API发起请求,传递
username与password参数 - 外部API验证凭据后,返回认证状态(成功或失败),若认证成功则附带用户数据
- 疑问:尽管使用HTTPS加密传输,将明文密码传递给第三方服务是否符合最佳实践?
内容的提问来源于stack exchange,提问作者Mikamatto
相关产品推荐
相关产品推荐

