You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询Apereo CAS 6.5 REST协议下双因素认证的启用方法

在Apereo CAS 6.5 REST协议中启用双因素认证

CAS REST协议完全支持双因素认证(MFA),但因为REST是无状态交互模式,流程和UI页面的会话引导逻辑不同,需要调整配置并遵循特定请求流程,才能实现生成TGT时要求双因素验证的需求。以下是具体实现步骤:

1. 确认依赖模块

确保CAS部署中已引入REST支持模块和Simple MFA模块的依赖(以Maven为例):

<dependency>
    <groupId>org.apereo.cas</groupId>
    <artifactId>cas-server-support-rest</artifactId>
    <version>6.5.x</version>
</dependency>
<dependency>
    <groupId>org.apereo.cas</groupId>
    <artifactId>cas-server-support-mfa-simple</artifactId>
    <version>6.5.x</version>
</dependency>

2. 配置MFA触发器与REST支持

在cas.properties中补充以下配置,确保全局MFA触发器对REST请求生效:

# 启用全局MFA触发器
cas.authn.mfa.global.trigger.enabled=true
# 允许REST请求触发MFA流程
cas.authn.mfa.global.trigger.rest.enabled=true
# 启用Simple MFA的REST验证支持
cas.authn.mfa.simple.rest.enabled=true
# 可选:设置Simple MFA令牌的有效期(单位:秒)
cas.authn.mfa.simple.token.validity.seconds=300

3. 执行REST MFA认证流程

REST模式下的MFA认证分为两步完成:

  • 第一步:提交用户名密码,触发MFA验证
    向/v1/tickets端点发送POST请求,携带username和password参数:

    curl -X POST -d "username=testuser&password=testpass" https://your-cas-server/v1/tickets
    

    若触发MFA,CAS会返回401 Unauthorized响应,同时在响应头的Location字段中给出临时MFA验证端点,格式类似:

    Location: https://your-cas-server/v1/mfa/tickets/ABC123-TEMP-MFA-TICKET
    
  • 第二步:提交双因素令牌,获取最终TGT
    向上述临时端点发送POST请求,携带token参数(即Simple MFA生成的双因素码):

    curl -X POST -d "token=123456" https://your-cas-server/v1/mfa/tickets/ABC123-TEMP-MFA-TICKET
    

    验证通过后,CAS会返回201 Created响应,响应体即为可用于后续操作的TGT字符串。

4. 注意事项

  • REST请求必须使用POST方法,参数需以application/x-www-form-urlencoded表单形式提交
  • 若无需全局触发MFA,可调整触发器规则(比如基于用户属性、客户端IP等),具体参数参考CAS 6.5官方文档中MFA触发器的配置项
  • 临时MFA ticket有有效期,需在令牌有效期内完成验证

内容的提问来源于stack exchange,提问作者user20439324

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 18:41:04