如何在WSO2 IS 5.8版本中实现无密码身份认证
WSO2 IS v5.8 结合AD/LDAP实现无密码认证的可行方案
以下方案均不需要修改现有AD/LDAP的核心存储结构与原有认证逻辑,可和现有用户名密码认证并行使用,用户侧可自主选择认证方式:
方案1:OTP验证码无密码认证 (最易落地,兼容性最好)
- 首先登录WSO2 IS管理控制台,进入
Service Providers > 你的业务服务提供者 > Local & Outbound Authentication Configuration,选择Advanced Configuration,调整认证步骤:删除原有用户名密码认证步骤,添加Identifier First(用户名首验)作为第一步,OTP认证器作为第二步。 - 配置AD/LDAP字段映射:进入
User Stores > 你配置的AD/LDAP用户存储 > Attribute Mapping,将AD中存储用户手机号、邮箱的字段,分别映射到WSO2的http://wso2.org/claims/mobile、http://wso2.org/claims/emailaddress系统声明,确保WSO2可直接读取AD中的用户联系方式,无需额外做数据同步。 - 配置OTP发送通道:进入
Identity Providers > Resident > Account Management > One Time Password,按需配置内置的邮件服务器、短信网关参数;如果需要对接现有业务的短信/邮件/企业IM推送通道,可以自定义OTP发送适配器替换内置实现。 - 可选配置:可自定义OTP的有效期、长度、重试次数限制,适配不同业务的安全要求。
方案2:FIDO2/WebAuthn无密码认证 (安全性最高,支持生物识别/安全密钥)
- 开启FIDO2功能:进入
Identity Providers > Resident > Identity Server > FIDO2 Configuration,配置你的业务域名作为可信依赖方ID(RP ID),开启FIDO2认证能力。 - 配置FIDO凭证存储:因为AD/LDAP默认无FIDO公钥存储字段,优先选择将FIDO凭证存储在WSO2 IS内置的JDBC数据库中,无需修改AD Schema;如果有统一存储要求,也可扩展AD自定义字段存储凭证,WSO2 IS支持两种存储模式。
- 调整认证流程:在对应服务提供者的高级认证配置中,替换原有认证步骤为
Identifier First + FIDO2的组合,用户输入用户名后即可触发指纹/人脸/安全密钥校验,完成认证。 - 用户绑定引导:首次使用的用户需要先完成FIDO设备和AD账号的绑定,可在业务系统中添加绑定入口,调用WSO2 FIDO2注册API完成绑定即可。
方案3:魔法链接无密码认证 (适合移动端/网页端轻量场景)
- 自定义魔法链接认证器:基于WSO2 IS提供的
AbstractLocalAuthenticator抽象类开发自定义认证器,核心逻辑为:用户输入用户名/邮箱 → 系统生成带一次性有效Token的认证链接 → 发送到用户绑定邮箱 → 用户点击链接后WSO2校验Token有效性,匹配对应AD用户后完成认证。 - Token存储与规则配置:魔法链接的Token可直接存储在WSO2内置数据库中,可自定义配置Token有效期、单次有效的规则,避免被复用。
- 认证流程配置:替换原有用户名密码认证步骤为自定义的魔法链接认证器即可。
注意:所有无密码认证的关联数据默认都可存储在WSO2 IS内置存储中,完全不会影响现有AD/LDAP的正常运行,原有用户名密码认证可保留作为备选方案,不需要下线。
内容的提问来源于stack exchange,提问作者Java
相关产品推荐
相关产品推荐

