CAS单点登录(第7版)10.多因素身份验证

如有疑问,请看视频:CAS单点登录(第7版)

  1. 多因素身份验证
    1. 概述
      1. 多因素身份验证 (MFA)

多因素身份验证(Multifactor Authentication MFA)是一种安全机制,要求用户提供两种或更多种不同类型的验证信息,以增强账户的安全性。将MFA集成到CAS中,可以显著提高系统的安全性,防止未经授权的访问。

MFA 通常涉及以下三种类型的身份验证因素:

  1. 你知道的东西:如密码、PIN 码等。
  2. 你拥有的东西:如手机、硬件令牌、智能卡等。
  3. 你是谁:如指纹、面部识别、虹膜扫描等生物特征。

CAS 支持各种多因素身份验证提供程序和选项,同时允许用户设计自己的身份验证提供程序和选项。辅助身份验证因素始终在主要步骤之后启动,如果请求或触发器需要,将要求现有身份验证会话升级到所需的多因素身份验证因素。满意的身份验证上下文也会传回应用程序,以表示成功的多因素身份验证事件。

您至少需要回答以下问题:

  1. 我们使用哪些提供商进行多因素身份验证?
  2. 我们如何以及为谁触发多因素身份验证?
      1. 支持的提供商

CAS 支持以下多因子提供程序。

供应商

Id

指示

Duo Security

mfa-duo

请参阅本指南

YubiKey

mfa-yubikey

请参阅本指南

RSA/RADIUS

mfa-radius

请参阅本指南

谷歌身份验证器

mfa-gauth

请参阅本指南

FIDO2 WebAuthN

mfa-webauthn

请参阅本指南

CAS Simple

mfa-simple

请参阅本指南

Inwebo

mfa-inwebo

请参阅本指南

自定义

自定义

请参阅本指南

 Azure 多重

Microsoft 已删除外部 SSO 服务器使用 Azure MFA 的功能。要使用 Azure MFA,还必须让所有用户使用 Azure AD SSO 进行身份验证。你可能希望使用 CAS 的委托身份验证功能将身份验证请求路由到 Azure AD SSO。

      1. 配置

CAS 配置目录中提供了以下设置和属性:

必填

自选

签名和加密

Groovy 脚本

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.core.provider-selection.cookie.crypto.encryption.key=

加密密钥是一个 JWT,其长度由加密密钥大小设置定义。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.core.util.EncryptionJwtCryptoProperties.

如何配置此属性?

·  cas.authn.mfa.core.provider-selection.cookie.crypto.signing.key=

签名密钥是一个 JWT,其长度由签名密钥大小设置定义。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties.

如何配置此属性?

·  cas.authn.mfa.core.provider-selection.provider-selector-groovy-script.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.SpringResourceProperties.

如何配置此属性?

显示 1 到 3 个条目中的 3 个

上一页1下一页

      1. 触发器

可以通过多个触发器激活 Multi-Factor Authentication。要了解更多信息,请参阅本指南。

      1. 绕过规则

每个 MultiFactor Provider 都配备了允许 MFA Bypass的选项。要了解更多信息,请参阅本指南。

      1. 故障模式

如果无法访问所请求的提供程序,CAS 将查阅当前配置,以确定如何继续。要了解更多信息,请参阅本指南。

      1. 提供商选择

有一些选项和控件可用于允许 CAS 选择多因素身份验证提供程序,以防多个触发器和条件激活多个提供程序。要了解更多信息,请参阅本指南。

    1. 供应商
      1. Duo安全
        1. 概述
          1. Duo Security 身份验证

Duo Security 是一项两步验证服务,为访问机构和个人数据提供额外的安全性。

Duo 提供了多种用户身份验证选项:

移动推送通知和一键式身份验证到智能手机(需要免费的 Duo Mobile 应用程序)

在智能手机上生成的一次性代码

由 Duo 生成并通过 SMS 文本消息发送到手机的一次性代码

来自该机构的电话呼叫将提示您验证登录请求

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-duo"}

          1. 配置

CAS 配置目录中提供了以下设置和属性:

必填

自选

签名和加密

Groovy 脚本

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.duo[0].bypass.groovy.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.SpringResourceProperties.

如何配置此属性?

·  cas.authn.mfa.duo[0].bypass.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.RestEndpointProperties.

如何配置此属性?

·  cas.authn.mfa.duo[0].duo-api-host=

Duo API 主机和 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.duo.DuoSecurityMultifactorAuthenticationProperties.

如何配置此属性?

·  cas.authn.mfa.duo[0].duo-integration-key=

Duo 集成密钥。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.duo.DuoSecurityMultifactorAuthenticationProperties.

如何配置此属性?

·  cas.authn.mfa.duo[0].duo-secret-key=

Duo 密钥。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.duo.DuoSecurityMultifactorAuthenticationProperties.

如何配置此属性?

显示 1 到 5 的 7 个条目

上一页12下一页

            1. Bypass

CAS 配置目录中提供了以下设置和属性:

必填

自选

Groovy 脚本

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.duo[0].bypass.groovy.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.SpringResourceProperties.

如何配置此属性?

·  cas.authn.mfa.duo[0].bypass.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.RestEndpointProperties.

如何配置此属性?

显示 1 到 2 的 2 个条目

上一页1下一页

          1. 执行器端点

CAS 提供以下端点:

  GET

/cas/actuator/duoPing 

Ping Duo Security 给出了提供商 ID。

  GET

/cas/actuator/duoAccountStatus/{username} 

  GET

/cas/actuator/health 

  GET

/cas/actuator/health/{path} 

  GET

/cas/actuator/duoAdmin/{username} 

  POST

/cas/actuator/duoAdmin/bypassCodes 

  PUT

/cas/actuator/duoAdmin/{username} 

          1. 多个实例

对 Duo Security 的 CAS 多因素身份验证支持允许为多个 Duo 提供程序配置不同的 ID,每个 ID 都可以连接到具有不同配置的单独 Duo Security 实例。此行为允许更敏感的应用程序连接到具有更严格和安全身份验证策略的 Duo 实例。

要使此行为正常运行,需要将您自己选择的单独唯一 ID 分配给每个 Duo Securityprovider。每个提供程序实例都向 CAS 注册,并根据需要在 authenticationflows 中激活。如果只有一个 Duo 实例可用,则无需定义提供程序 ID。

          1. 帐户配置文件管理

与 Duo Security 的集成能够将用户设备注册信息提供给 CAS 中的账户配置文件管理功能。有关更多详细信息,请参阅本指南。

          1. 健康状况

CAS 能够按需联系 Duo Security,以便使用 Duo Security 的 ping API 查询服务的运行状况。操作结果使用 CAS 监控终端节点提供的health终端节点进行记录和报告。当然,整个 Duo 身份验证流程中的相同结果也用于确定故障模式。

          1. 通用提示

通用提示是使用 Duo OIDC 身份验证 API 的 Duo Multifactor Authentication 的变体。这是一个基于 OIDC 标准的 API,用于向 CAS 添加强双重身份验证。此选项不再在 CAS 控制和拥有的 iFrame 中显示 Duo 提示。相反,该提示现在托管在 Duo 的服务器上,并通过浏览器重定向显示。来自 Duo Security 的响应将作为浏览器重定向传递到 CAS,CAS 将开始协商和交换该响应,以支持包含多因素身份验证用户配置文件详细信息的 JWT。

通用提示不再要求您生成和使用 applicationkey 值。相反,它需要客户端 ID 和客户端密钥,这是已知的,并使用集成密钥和密钥配置设置教给 CAS。将 CAS 注册为受保护的应用程序时,您需要从 Duo Security 获取集成密钥、密钥和 APIhostname。

          1. 非浏览器 MFA

CAS 的 Duo Security 模块还能够支持非基于浏览器的多因素身份验证请求。为了触发此行为,应用程序(即 curl、REST API 等)需要指定一个特殊的Content-Type,以向 CAS 发出请求是从非基于 Web 的环境提交的信号。多因素身份验证请求以auto模式提交给 Duo Security,这实际上可能会转换为 Duo 推荐的带外因素(推送或电话),作为用户设备的最佳选择。

为了成功完成身份验证流程,还必须为 CAS 配置一种主身份验证方法,该方法能够支持非基于 Web 的环境,例如基本身份验证。

下面是一个使用 curl 的示例,它尝试通过首先执行基本身份验证来对服务进行身份验证,同时将请求内容类型标识为 application/cas。假设以下服务在 CAS 中配置了特殊的多因素策略,该策略也强制流通过 Duo Security。

1

curl --location --header "Content-Type: application/cas" https://apps.example.org/myapp -L -u casuser:Mellon

          1. REST 协议凭证提取

如果 CAS REST 协议已打开,则会将特殊凭证提取器注入 REST 身份验证引擎,以便识别凭证并作为 REST 请求的一部分对其进行验证。请求正文中的预期参数名称是passcode,可以从 Duo Security 的移动应用程序中找到或通过 SMS 接收。

          1. 无密码身份验证

与 Duo Security 的集成还可以充当无密码身份验证的帐户存储。需要在符合条件的 Multifactor Authentication Provider 的 CAS 设置中显式启用此行为。

          1. 故障排除

要启用其他日志记录,请配置 log4j 配置文件以添加以下级别:

1

2

3

4

5

6

...<Logger name="com.duosecurity" level="debug" additivity="false">

    <AppenderRef ref="casConsole"/>

    <AppenderRef ref="casFile"/></Logger>

...

您还应该使用 NTP 来确保 CAS 服务器的时间正确。此外,CAS 通常通过 TCP 端口 443 与 Duo 的服务通信。Duo Security 不建议使用使用目标 IP 地址或 IP 地址范围的规则来限制对 Duo 服务的出站访问的防火墙配置,因为这些配置可能会随着时间的推移而改变,以保持我们服务的高可用性。

        1. 用户注册
          1. Duo Security 用户注册

如果用户未向 Duo Security 注册或通过直接绕过允许通过,则 CAS 将先验地向 Duo Security 查询用户帐户,以了解用户是否已注册或配置为直接绕过。如果帐户配置为直接绕过,或者用户帐户尚未注册,则新用户注册策略允许用户跳过注册,则 CAS 将完全绕过 Duo Security,不会质询用户,也不会将启用多因素身份验证的上下文报告回应用程序。

 YMMV

在最近与 Duo Security 的对话中,事实证明 API 行为发生了变化(出于安全原因),它可能无法再准确报告帐户状态。这意味着,即使上述条件成立,CAS 也可以继续将用户路由到从 API 获得资格状态的 Duo Security。据报道,Duo Security 正在努力修复以更安全的方式恢复 API 行为。与此同时,YMMV.

如果您不想依赖 Duo Security 的内置注册流程,而是拥有自己的允许用户注册和注册 Duo Security 的注册应用程序,则可以指示 CAS重定向到您的注册应用程序(如果用户的账户状态被确定为需要注册)。这通常意味着您必须在 CAS 中打开用户账户状态检查,以便它可以直接使用 Duo Security 验证用户的账户状态。您还必须确保在 Duo Security 的管理仪表板中选择的集成类型是允许 CAS 执行此类请求的正确类型,当然,相关用户之前不得在 Duo Security 的任何地方加入、注册或创建。

指向注册应用程序的重定向 URL 可能包含一个特殊的 principal 参数,该参数包含用户的身份 JWT。必须先在 Duo Security 注册的 CAS 设置中启用密码操作和设置,然后才能构建此参数并将其添加到最终 URL。

CAS 配置目录中提供了以下设置和属性:

必填

自选

签名和加密

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.duo[0].registration.crypto.encryption.key=

加密密钥是一个 JWT,其长度由加密密钥大小设置定义。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.core.util.EncryptionJwtCryptoProperties.

如何配置此属性?

·  cas.authn.mfa.duo[0].registration.crypto.signing.key=

签名密钥是一个 JWT,其长度由签名密钥大小设置定义。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties.

如何配置此属性?

显示 1 到 2 的 2 个条目

上一页1下一页

        1. YubiKey
          1. 概述
            1. YubiKey 身份验证

Yubico 是一项基于云的服务,通过其旗舰产品 YubiKey 使用一次性密码实现强大、易于使用且经济实惠的双因素身份验证。获得 Yubico client-id 和 secret-key 后,即可使用配置 YubiKey 设备作为 CAS 服务器可用于验证用户的主要身份验证源。

要配置 YubiKey 帐户并获取 API 密钥,请参阅文档。

YubiKey 身份验证组件是通过在 WAR 覆盖中包含以下依赖项来启用的:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-yubikey"}

              1. 执行器端点

CAS 提供以下端点:

  DELETE

/cas/actuator/yubikeyAccountRepository/{username} 

删除 username 的 Yubikey 帐户。

  DELETE

/cas/actuator/yubikeyAccountRepository 

  GET

/cas/actuator/yubikeyAccountRepository/{username} 

  GET

/cas/actuator/yubikeyAccountRepository 

  GET

/cas/actuator/yubikeyAccountRepository/export 

  POST

/cas/actuator/yubikeyAccountRepository/import 

              1. 配置

CAS 配置目录中提供了以下设置和属性:

必填

自选

签名和加密

Hibernate 和 JDBC

Groovy 脚本

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.yubikey.bypass.groovy.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.support.mfa.GroovyMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

·  cas.authn.mfa.yubikey.bypass.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.RestfulMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

·  cas.authn.mfa.yubikey.client-id=0

Yubikey 客户端 ID。

 org.apereo.cas.configuration.model.support.mfa.yubikey.YubiKeyMultifactorAuthenticationProperties.

如何配置此属性?

·  cas.authn.mfa.yubikey.crypto.encryption.key=

加密密钥是一个 JWT,其长度由加密密钥大小设置定义。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.core.util.EncryptionJwtCryptoProperties.

如何配置此属性?

·  cas.authn.mfa.yubikey.crypto.signing.key=

签名密钥是一个 JWT,其长度由签名密钥大小设置定义。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties.

如何配置此属性?

显示 1 到 5 的 37 个条目

上一页12345...8下一页

默认情况下,允许用户的所有 YubiKey 账户进行身份验证。需要授权进行身份验证的设备需要遵循带外注册过程,其中它们的记录位于以下存储后端之一中。身份验证后,CAS 将开始在配置的注册数据库中搜索已验证的用户和设备的匹配记录,以便成功进行验证事件。

存储

描述

JSON 格式

请参阅本指南

REST

请参阅本指南

许可的

请参阅本指南

JPA

请参阅本指南

Redis

请参阅本指南

DynamoDb

请参阅本指南

MongoDb 数据库

请参阅本指南

自定义

请参阅本指南

                1. Bypass

CAS 配置目录中提供了以下设置和属性:

必填

自选

Groovy 脚本

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.yubikey.bypass.groovy.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.support.mfa.GroovyMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

·  cas.authn.mfa.yubikey.bypass.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.RestfulMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

显示 1 到 2 的 2 个条目

上一页1下一页

              1. 设备/账户验证

如果应该注册新的 YubiKey,则可能需要在将帐户注册到底层 store 之前执行额外的验证过程。默认情况下,设备注册步骤仅验证设备令牌。如果您希望扩展此行为,您可以设计自己的验证器,根据替代来源和数据库交叉检查帐户的有效性和授权:

1

2

3

4

5

6

7

8

9

10

11

package org.apereo.cas.support.yubikey;

@AutoConfiguration@EnableConfigurationProperties(CasConfigurationProperties.class)public class MyYubiKeyConfiguration {

  @Bean

  public YubiKeyAccountValidator yubiKeyAccountValidator() {

      ...

  }}

请参阅本指南,了解有关如何将配置注册到 CAS 运行时的更多信息。

              1. REST 协议凭证提取

如果 CAS REST 协议已打开,则会将特殊凭据提取器注入 REST 身份验证引擎,以便识别 YubiKey 凭据并作为 REST 请求的一部分对其进行身份验证。请求正文中的预期参数名称为 yubikeyotp。

          1. 设备注册
            1. JSON格式
              1. JSON YubiKey 注册

如果在 CAS 设置中指定了文件路径,则可以在 JSON 文件中跟踪注册记录。

JSON 结构是用户 ID 到代表任何特定设备的 yubikey 公共 ID 的映射:

1

2

3

4

{

  "uid1": ["yubikeyPublicId1"],

  "uid2": ["yubikeyPublicId2"]}

CAS 配置目录中提供了以下设置和属性:

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。

Show  entries

搜索:

·  cas.authn.mfa.yubikey.json=

将设备注册记录保存在静态 JSON 资源中。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.yubikey.YubiKeyMultifactorAuthenticationProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

          1. JPA
            1. JPA YubiKey 注册

通过在 WAR 覆盖中包含以下依赖项来启用支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-yubikey-jpa"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

Hibernate 和 JDBC

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.yubikey.jpa.driver-class=org.hsqldb.jdbcDriver

用于连接到数据库的 JDBC 驱动程序。

 org.apereo.cas.configuration.model.support.mfa.yubikey.YubiKeyJpaMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.yubikey.jpa.password=

数据库连接密码。

 org.apereo.cas.configuration.model.support.mfa.yubikey.YubiKeyJpaMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.yubikey.jpa.url=jdbc:hsqldb:mem:cas-hsql-database

数据库连接 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.yubikey.YubiKeyJpaMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.yubikey.jpa.user=sa

数据库用户必须具有足够的权限,才能在需要时处理架构更改和更新。

 org.apereo.cas.configuration.model.support.mfa.yubikey.YubiKeyJpaMultifactorProperties.

如何配置此属性?

显示 1 到 4 的 4 个条目

上一页1下一页

由 CAS 自动创建和配置的预期数据库架构包含一个作为 YubiKeyAccount 的表,其中包含以下字段:

描述

id

唯一记录标识符,充当主键。

publicId

用于身份验证的设备的公共标识符/密钥。

username

设备已注册的用户名。

          1. DynamoDb
            1. DynamoDb YubiKey 注册

通过在 WAR 覆盖中包含以下依赖项来启用支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-yubikey-dynamodb"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.yubikey.dynamo-db.credential-access-key=

使用 AWS 提供的访问密钥进行身份验证。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.yubikey.YubiKeyDynamoDbMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.yubikey.dynamo-db.credential-secret-key=

使用 AWS 提供的密钥进行身份验证。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.yubikey.YubiKeyDynamoDbMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.yubikey.dynamo-db.dax.url=

Cluster url 的 URL 中。例如,dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com。

 org.apereo.cas.configuration.model.support.dynamodb.DynamoDbDaxProperties.

如何配置此属性?

·  cas.authn.mfa.yubikey.dynamo-db.endpoint=

AWS 自定义终端节点。

 org.apereo.cas.configuration.model.support.mfa.yubikey.YubiKeyDynamoDbMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.yubikey.dynamo-db.region=

使用的 AWS 区域。

 org.apereo.cas.configuration.model.support.mfa.yubikey.YubiKeyDynamoDbMultifactorProperties.

如何配置此属性?

显示 1 到 5 个条目中的 5 个

上一页1下一页

          1. MongoDb 数据库
            1. MongoDb YubiKey 注册

通过在 WAR 覆盖中包含以下依赖项来启用支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-yubikey-mongo"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.yubikey.mongo.client-uri=

mongodb 实例的连接 URI。这通常采用 mongodb://user:psw@ds135522.somewhere.com:35522/db 的形式。如果未指定,将回退到其他单个设置。如果指定,则接管所有其他设置(如果适用)。

 org.apereo.cas.configuration.model.support.mfa.yubikey.YubiKeyMongoDbMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.yubikey.mongo.collection=

要获取和/或创建的 MongoDb 数据库集合名称。

 org.apereo.cas.configuration.model.support.mfa.yubikey.YubiKeyMongoDbMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.yubikey.mongo.database-name=

MongoDb 数据库实例名称。

 org.apereo.cas.configuration.model.support.mfa.yubikey.YubiKeyMongoDbMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.yubikey.mongo.host=localhost

用于身份验证的 MongoDb 数据库主机。可以定义多个主机地址,用逗号分隔。如果定义了多个主机,则假定每个主机也包含端口(如果有)。否则,配置可能会回退到定义的端口。

 org.apereo.cas.configuration.model.support.mfa.yubikey.YubiKeyMongoDbMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.yubikey.mongo.password=

用于身份验证的 MongoDb 数据库密码。

 org.apereo.cas.configuration.model.support.mfa.yubikey.YubiKeyMongoDbMultifactorProperties.

如何配置此属性?

显示 1 到 5 的 7 个条目

上一页12下一页

注册记录保存在您选择的单个 MongoDb 集合中,该集合将由 CAS 自动创建。此集合的结构如下:

描述

id

唯一记录标识符,充当主键。

publicId

用于身份验证的设备的公共标识符/密钥。

username

设备已注册的用户名。

          1. 许可的
            1. 宽容的 YubiKey 注册

注册记录可以通过 CAS 设置以映射的形式静态指定,该映射将注册的用户名与 YubiKey 设备的公共 ID 链接起来。

CAS 配置目录中提供了以下设置和属性:

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。

Show  entries

搜索:

·  cas.authn.mfa.yubikey.allowed-devices=

每个用户允许的允许设备的集合。这是使用键值结构完成的,其中键是用户,值是允许的 yubikey 设备 ID 集合。

 org.apereo.cas.configuration.model.support.mfa.yubikey.YubiKeyMultifactorAuthenticationProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

          1. Redis
            1. Redis YubiKey 注册

通过在 WAR 覆盖中包含以下依赖项来启用支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-yubikey-redis"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.yubikey.redis.cluster.nodes[0].host=

服务器的主机地址。

 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties.

如何配置此属性?

·  cas.authn.mfa.yubikey.redis.cluster.nodes[0].port=

服务器的端口号。

 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties.

如何配置此属性?

·  cas.authn.mfa.yubikey.redis.cluster.nodes[0].replica-of=

设置 master 节点的 id。

 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties.

如何配置此属性?

·  cas.authn.mfa.yubikey.redis.cluster.nodes[0].type=

指示此节点的类型/角色。接受的值为 MASTER, REPLICA 。

 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties.

如何配置此属性?

·  cas.authn.mfa.yubikey.redis.cluster.password=

集群连接的密码。

 org.apereo.cas.configuration.model.support.redis.RedisClusterProperties.

如何配置此属性?

显示 1 到 5 个条目,共 14 个条目

上一页123下一页

          1. REST
            1. REST YubiKey 注册

可以使用外部 REST API 跟踪注册记录。

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.yubikey.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.yubikey.YubiKeyRestfulMultifactorProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

以下端点应由 REST API 提供和实施:

方法

端点

描述

GET

/

获取所有已注册的记录。

GET

/{user}

获取用户的所有已注册记录。

DELETE

/

删除所有已注册的记录。

DELETE

/{user}

删除用户的所有已注册记录。

DELETE

/{user}/{id}

从用户的注册记录中按其 ID 删除已注册的设备。

POST

/

存储作为请求正文传递的注册记录。

          1. 自定义
            1. 自定义 YubiKey 注册

如果您希望插入一个自定义注册表实现来确定允许哪些用户使用他们的 YubiKey 帐户进行身份验证,您可以插入 YubiKeyAccountRegistry 的自定义实现,该实现允许您提供用户名和 YubiKey 公钥之间的映射。

1

2

3

4

5

6

7

8

9

10

11

package org.apereo.cas.support.yubikey;

@AutoConfiguration@EnableConfigurationProperties(CasConfigurationProperties.class)public class MyYubiKeyConfiguration {

  @Bean

  public YubiKeyAccountRegistry yubiKeyAccountRegistry() {

      ...

  }}

        1. RSA/半径
          1. RADIUS 身份验证

RADIUS 支持仅通过在覆盖中包括以下依赖项来启用:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

implementation "org.apereo.cas:cas-server-support-radius:${project.'cas.version'}"

          1. 配置

CAS 配置目录中提供了以下设置和属性:

必填

自选

Groovy 脚本

密码编码

主体转换

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.radius.client.inet-address=localhost

用于连接和建立会话的服务器地址。

 org.apereo.cas.configuration.model.support.radius.RadiusClientProperties.

如何配置此属性?

·  cas.authn.radius.client.shared-secret=N0Sh@ar3d$ecReT

用于初始绑定的密钥/密码。

 org.apereo.cas.configuration.model.support.radius.RadiusClientProperties.

如何配置此属性?

·  cas.authn.radius.password-encoder.encoding-algorithm=

要使用的编码算法,例如 MD5。当使用的类型为 DEFAULT 或 GLIBC_CRYPT 时相关。当与 PasswordEncoderTypes#PBKDF2 一起使用时,它应该是 PBKDF2WithHmacSHA1、PBKDF2WithHmacSHA256 或 PBKDF2WithHmacSHA512 之一。

 org.apereo.cas.configuration.model.core.authentication.PasswordEncoderProperties.

如何配置此属性?

·  cas.authn.radius.password-encoder.type=NONE

可以使用以下类型:

NONE:不进行密码编码(即纯文本)。

DEFAULT:使用 CAS 的 DefaultPasswordEncoder。对于通过 character-encoding 和 encoding-algorithm 的消息摘要算法。

BCRYPT根据提供的强度和可选密钥使用 BCryptPasswordEncoder。

SCRYPT使用 SCryptPasswordEncoder。

PBKDF2:根据提供的强度和可选的密钥使用 Pbkdf2PasswordEncoder。

STANDARD根据提供的密钥使用 StandardPasswordEncoder。

SSHA使用 LdapShaPasswordEncoder 支持 Ldap SHA 和 SSHA (salted-SHA)。这些值采用 base-64 编码,并在编码的哈希前面加上标签 {SHA} 或 {SSHA}。

GLIBC_CRYPT:根据编码encoding-algorithm、提供的强度和可选的密钥使用 GlibcCryptPasswordEncoder。

org.example.MyEncoder:您自己选择的 PasswordEncoder 实现。

file:///path/to/script.groovy:负责处理密码编码操作的 Groovy 脚本的路径。

 org.apereo.cas.configuration.model.core.authentication.PasswordEncoderProperties.

如何配置此属性?

·  cas.authn.radius.principal-transformation.groovy.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.core.authentication.GroovyPrincipalTransformationProperties.

如何配置此属性?

显示 1 到 5 个条目中的 5 个

上一页1下一页

          1. RSA 半径 MFA

RSA RADIUS OTP 对 MFA 的支持是通过仅在覆盖中包含以下依赖项来启用的:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-radius-mfa"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

Groovy 脚本

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.radius.bypass.groovy.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.support.mfa.GroovyMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

·  cas.authn.mfa.radius.bypass.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.RestfulMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

·  cas.authn.mfa.radius.client.inet-address=localhost

用于连接和建立会话的服务器地址。

 org.apereo.cas.configuration.model.support.radius.RadiusClientProperties.

如何配置此属性?

·  cas.authn.mfa.radius.client.shared-secret=N0Sh@ar3d$ecReT

用于初始绑定的密钥/密码。

 org.apereo.cas.configuration.model.support.radius.RadiusClientProperties.

如何配置此属性?

显示 1 到 4 的 4 个条目

上一页1下一页

          1. Bypass

CAS 配置目录中提供了以下设置和属性:

必填

自选

Groovy 脚本

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.radius.bypass.groovy.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.support.mfa.GroovyMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

·  cas.authn.mfa.radius.bypass.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.RestfulMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

显示 1 到 2 的 2 个条目

上一页1下一页

        1. 谷歌身份验证器
          1. 概述
            1. Google Authenticator 身份验证

Google Authenticator 会在您的手机上生成两步验证码。使用两步验证时,除了主要身份验证外,登录还需要 Google Authenticator 应用程序生成的验证码。在此处了解有关该主题的更多信息。

请注意,此处介绍的功能还应与 LastPass Authenticator 等兼容。

            1. 配置

通过在覆盖中包含以下模块来启用支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-gauth"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

签名和加密

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.gauth.core.issuer=CASIssuer

处理设备注册事件时在条形码中使用的颁发者。在注册 URL 中用于标识 CAS。

 org.apereo.cas.configuration.model.support.mfa.gauth.CoreGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.core.label=CASLabel

处理设备注册事件时条形码中使用的标签。在注册 URL 中用于标识 CAS。

 org.apereo.cas.configuration.model.support.mfa.gauth.CoreGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.core.scratch-codes.encryption.key=

加密密钥。默认情况下,除非另有指定,否则加密密钥必须是随机生成的字符串,其长度由加密密钥大小设置定义。

 org.apereo.cas.configuration.model.core.util.EncryptionRandomizedCryptoProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.crypto.encryption.key=

加密密钥是一个 JWT,其长度由加密密钥大小设置定义。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.core.util.EncryptionJwtCryptoProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.crypto.signing.key=

签名密钥是一个 JWT,其长度由签名密钥大小设置定义。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties.

如何配置此属性?

显示 1 到 5 个条目中的 5 个

上一页1下一页

              1. Bypass

CAS 配置目录中提供了以下设置和属性:

必填

自选

Groovy 脚本

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.gauth.bypass.groovy.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.support.mfa.GroovyMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.bypass.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.RestfulMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

显示 1 到 2 的 2 个条目

上一页1下一页

            1. 执行器端点

CAS 提供以下端点:

  DELETE

/cas/actuator/gauthCredentialRepository/{username} 

删除用户的帐户。

  DELETE

/cas/actuator/gauthCredentialRepository 

  GET

/cas/actuator/gauthCredentialRepository/export 

  GET

/cas/actuator/gauthCredentialRepository/{username} 

  GET

/cas/actuator/gauthCredentialRepository 

  POST

/cas/actuator/gauthCredentialRepository/import 

            1. Token 存储库

为了防止重复使用颁发的令牌,CAS 将尝试跟踪成功用于验证用户的令牌。定期扫描和清理保存注册记录和令牌的存储库,以便可以删除过期和以前使用的令牌。

CAS 配置目录中提供了以下设置和属性:

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。

Show  entries

搜索:

·  cas.authn.mfa.gauth.cleaner.schedule.cron-expression=

一个类似 cron 的表达式,扩展了通常的 UN*X 定义,以包括秒、分钟、小时、月日、月和星期几的触发器。例如,0 * * * * MON-FRI 表示工作日每分钟一次(在分钟的顶部 - 第 0 秒),或 0 0 0 * * * 表示每天午夜。* 请注意,定义 cron 表达式时,必须删除 start delay 和 repeat interval 设置并将其设置为空白。

 org.apereo.cas.configuration.model.support.quartz.SchedulingProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.cleaner.schedule.cron-time-zone=

将解析 cron 表达式的时区。默认情况下,此属性为空(即将使用调度程序的时区)。

 org.apereo.cas.configuration.model.support.quartz.SchedulingProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.cleaner.schedule.enabled-on-host=.*

如果此属性与 CAS 服务器的主机名不匹配,则覆盖 SchedulingProperties#enabled 属性值 true。如果在 statefulset 中部署带有镜像的 CAS,其中所有名称都是可预测的,但很难为不同的服务器使用不同的配置,那么这可能很有用。该值可以是确切的主机名,也可以是将用于匹配主机名的正则表达式。

此设置支持正则表达式模式。[?].

 org.apereo.cas.configuration.model.support.quartz.SchedulingProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.cleaner.schedule.enabled=true

是否应启用计划程序来计划作业运行。

 org.apereo.cas.configuration.model.support.quartz.SchedulingProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.cleaner.schedule.repeat-interval=PT2M

为数据存储实施重新加载数据的重复间隔的字符串表示形式。这是连续任务执行之间的超时。

此设置支持java.time.Duration 语法 [?]。

 org.apereo.cas.configuration.model.support.quartz.SchedulingProperties.

如何配置此属性?

显示 1 到 5 的 6 个条目

上一页12下一页

            1. 注册

默认情况下,包含一个账户注册表实现,用于收集用户设备注册并将其保存到内存中。颁发的令牌也会被捕获到自清理缓存中,以防止令牌在可配置的时间段内重复使用。此选项应仅用于演示和测试目的。此功能的生产部署将需要单独实现能够将账户注册到持久存储的注册表。

请注意,允许每个个人账户注册多个设备,以便稍后用于多因素身份验证。在鉴权流程中,如果找到多条设备注册记录,系统会要求用户选择合适的设备进行鉴权。可以通过 CAS 设置来控制处理多个设备注册记录的能力。

存储

描述

JPA

请参阅本指南

MongoDb 数据库

请参阅本指南

DynamoDb

请参阅本指南

Redis

请参阅本指南

LDAP 协议

请参阅本指南

REST

请参阅本指南

JSON 格式

请参阅本指南

            1. REST 协议凭证提取

如果 CAS REST 协议已打开,则会将特殊凭证提取器注入 REST 身份验证引擎,以便识别凭证并作为 REST 请求的一部分对其进行验证。请求正文中的预期参数名称为 gauthotp。还可以使用请求正文中的 gauthacct 参数传递帐户标识符。

            1. 帐户配置文件管理

与 Google Authenticator 的集成能够将用户设备注册信息提供给 CAS 中的账户配置文件管理功能。有关更多详细信息,请参阅本指南。

          1. 设备注册
            1. JPA
              1. JPA Google Authenticator 注册

注册记录和令牌可以通过以下模块保存在数据库实例中:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-gauth-jpa"}

要了解如何配置数据库驱动程序,请参阅本指南。

CAS 配置目录中提供了以下设置和属性:

必填

自选

Hibernate 和 JDBC

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.gauth.jpa.driver-class=org.hsqldb.jdbcDriver

用于连接到数据库的 JDBC 驱动程序。

 org.apereo.cas.configuration.model.support.mfa.gauth.JpaGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.jpa.password=

数据库连接密码。

 org.apereo.cas.configuration.model.support.mfa.gauth.JpaGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.jpa.url=jdbc:hsqldb:mem:cas-hsql-database

数据库连接 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.gauth.JpaGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.jpa.user=sa

数据库用户必须具有足够的权限,才能在需要时处理架构更改和更新。

 org.apereo.cas.configuration.model.support.mfa.gauth.JpaGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

显示 1 到 4 的 4 个条目

上一页1下一页

            1. JSON格式
              1. JSON Google 身份验证器注册

所有用户的注册记录也可以保存在单个 JSON 文件中。仅当提供了 JSON 数据存储文件的路径时,才会激活该行为,否则 CAS 可能会回退到将记录保留在内存中。此功能在开发和演示期间最有用。

CAS 配置目录中提供了以下设置和属性:

必填

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.gauth.json.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.support.mfa.gauth.JsonGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

            1. LDAP协议
              1. LDAP Google 身份验证器注册

注册记录可以通过以下模块保存在 LDAP/AD 系统内:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-gauth-ldap"}

帐户注册记录作为 JSON blob 保存在指定的可配置多值属性中。解析属性值以加载、保存、更新或删除帐户。如有必要,可以对每个属性值的内容进行签名/加密。

CAS 配置目录中提供了以下设置和属性:

必填

自选

LDAP & Active Directory

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.gauth.ldap.account-attribute-name=casGAuthRecord

将 GAuth 帐户/凭证保存为 JSON 的 LDAP 属性的名称。

 org.apereo.cas.configuration.model.support.mfa.gauth.LdapGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.ldap.base-dn=

要使用的基本 DN。在某些情况下,单个 LDAP 树的不同部分可能被视为 base-dns。可以使用特殊的分隔符指定每个条目并将其连接在一起,而不是为每个单独的 base-dn 复制 LDAP 配置块。用户 DN 按定义的顺序使用所有 base-dn 和 DN 解析程序的组合进行检索。如果找到多个 DN,则 DN 解析应失败。否则,将返回找到的第一个 DN。通常的语法是:subtreeA,dc=example,dc=net|subtreeC,dc=example,dc=net。

 org.apereo.cas.configuration.model.support.mfa.gauth.LdapGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.ldap.bind-credential=

连接到 LDAP 时要使用的绑定凭证。

 org.apereo.cas.configuration.model.support.mfa.gauth.LdapGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.ldap.bind-dn=

连接到 LDAP 时要使用的绑定 DN。注入 LDAP 连接池的 LDAP 连接配置可以使用以下参数进行初始化:

bindDn/bindCredential provided - 在初始化连接时使用提供的凭证进行绑定。

bindDn/bindCredential 设置为 * - 使用快速绑定策略初始化池。

bindDn/bindCredential 设置为空白 - 跳过连接初始化;匿名执行操作。

提供的 SASL 机制 - 初始化连接时使用给定的 SASL 机制进行绑定。

 org.apereo.cas.configuration.model.support.mfa.gauth.LdapGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.ldap.ldap-url=

服务器的 LDAP URL。可以指定多个,用空格和/或逗号分隔。

 org.apereo.cas.configuration.model.support.mfa.gauth.LdapGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

显示 1 到 5 的 6 个条目

上一页12下一页

            1. MongoDb 数据库
              1. MongoDb Google Authenticator 注册

注册记录和令牌可以通过以下模块保存在 MongoDb 实例中:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-gauth-mongo"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.gauth.mongo.client-uri=

mongodb 实例的连接 URI。这通常采用 mongodb://user:psw@ds135522.somewhere.com:35522/db 的形式。如果未指定,将回退到其他单个设置。如果指定,则接管所有其他设置(如果适用)。

 org.apereo.cas.configuration.model.support.mfa.gauth.MongoDbGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.mongo.collection=

要获取和/或创建的 MongoDb 数据库集合名称。

 org.apereo.cas.configuration.model.support.mfa.gauth.MongoDbGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.mongo.database-name=

MongoDb 数据库实例名称。

 org.apereo.cas.configuration.model.support.mfa.gauth.MongoDbGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.mongo.host=localhost

用于身份验证的 MongoDb 数据库主机。可以定义多个主机地址,用逗号分隔。如果定义了多个主机,则假定每个主机也包含端口(如果有)。否则,配置可能会回退到定义的端口。

 org.apereo.cas.configuration.model.support.mfa.gauth.MongoDbGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.mongo.password=

用于身份验证的 MongoDb 数据库密码。

 org.apereo.cas.configuration.model.support.mfa.gauth.MongoDbGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

显示 1 到 5 的 8 个条目

上一页12下一页

            1. DynamoDb
              1. DynamoDb Google Authenticator 注册

注册记录和令牌可以通过以下模块保存在 DynamoDb 实例中:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

implementation "org.apereo.cas:cas-server-support-gauth-dynamodb:${project.'cas.version'}"

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.gauth.dynamo-db.credential-access-key=

使用 AWS 提供的访问密钥进行身份验证。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.gauth.DynamoDbGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.dynamo-db.credential-secret-key=

使用 AWS 提供的密钥进行身份验证。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.gauth.DynamoDbGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.dynamo-db.dax.url=

Cluster url 的 URL 中。例如,dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com。

 org.apereo.cas.configuration.model.support.dynamodb.DynamoDbDaxProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.dynamo-db.endpoint=

AWS 自定义终端节点。

 org.apereo.cas.configuration.model.support.mfa.gauth.DynamoDbGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.dynamo-db.region=

使用的 AWS 区域。

 org.apereo.cas.configuration.model.support.mfa.gauth.DynamoDbGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

显示 1 到 5 个条目中的 5 个

上一页1下一页

            1. Redis
              1. Redis Google Authenticator 注册

注册记录和令牌可以通过以下模块保存在 Redis 实例中:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-gauth-redis"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.gauth.redis.cluster.nodes[0].host=

服务器的主机地址。

 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.redis.cluster.nodes[0].port=

服务器的端口号。

 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.redis.cluster.nodes[0].replica-of=

设置 master 节点的 id。

 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.redis.cluster.nodes[0].type=

指示此节点的类型/角色。接受的值为 MASTER, REPLICA 。

 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.redis.cluster.password=

集群连接的密码。

 org.apereo.cas.configuration.model.support.redis.RedisClusterProperties.

如何配置此属性?

显示 1 到 5 个条目,共 14 个条目

上一页123下一页

            1. REST
              1. REST Google Authenticator 注册

注册记录也可以传递到 REST 端点。仅当提供端点 URL 时,才会激活该行为。

方法

预期响应

行为

GET

username

200. 用户正文中的帐户记录。

获取用户记录

GET

id

200. 用户正文中的帐户记录。

获取给定标识符的记录。

GET

id、username

200. 用户正文中的帐户记录。

获取给定标识符的用户记录。

GET

不适用

200. 当前注册的账户记录。

获取所有记录

DELETE

不适用

200

删除所有记录。

DELETE

username

200. 计算已删除的记录。

删除分配给用户的所有记录

DELETE

id

200

删除分配给给定标识符的所有记录。

POST

username, validationCode, secretKey, scratchCodes, name

200. 正文中的 true/false。

保存用户记录

列出用户的设备注册记录的示例有效负载可能是:

1

2

3

4

5

6

7

8

9

10

11

12

[

    "java.util.ArrayList", [{

        "@class": "org.apereo.cas.gauth.credential.GoogleAuthenticatorAccount",

        "scratchCodes": ["java.util.ArrayList", [14883628,81852839,40126334,86724930,54355266] ],

        "id": 123456,

        "secretKey": "UM6ALPJU34CBNFTBBLRFMKBNANMFAIBW",

        "validationCode": 565889,

        "username": "casuser",

        "name": "required-account-name",

        "registrationDate": "2018-06-20T09:47:31.761155Z"

    }]]

以下端点也需要可用:

方法

端点

预期响应

行为

GET

count

不适用

200. 数字计数

对所有记录进行计数

GET

count

username

200. 数字计数

对用户的所有记录进行计数

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.gauth.rest.token-url=

REST 资源的端点 URL,用于保留用于防止重放攻击的令牌。

 org.apereo.cas.configuration.model.support.mfa.gauth.RestfulGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.gauth.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.gauth.RestfulGoogleAuthenticatorMultifactorProperties.

如何配置此属性?

显示 1 到 2 的 2 个条目

上一页1下一页

        1. 简单
          1. 概述
            1. 简单的多因素身份验证

允许 CAS 自行充当多因素身份验证提供商,颁发令牌并通过预定义的通信渠道(如电子邮件或短信)将其发送给最终用户。

            1. 配置

通过在覆盖中包含以下模块来启用支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-simple-mfa"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

Groovy 脚本

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.simple.bypass.groovy.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.support.mfa.GroovyMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

·  cas.authn.mfa.simple.bypass.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.RestfulMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

·  cas.authn.mfa.simple.phone.attribute-name=phone

指示此语音消息的目标电话号码的主体属性名称。该属性必须已解析并可供 CAS 主体使用。

 org.apereo.cas.configuration.model.support.phone.PhoneProperties.

如何配置此属性?

·  cas.authn.mfa.simple.phone.from=

邮件的发件人地址。

 org.apereo.cas.configuration.model.support.phone.PhoneProperties.

如何配置此属性?

·  cas.authn.mfa.simple.phone.text=

电话呼叫消息的正文。

 org.apereo.cas.configuration.model.support.phone.PhoneProperties.

如何配置此属性?

显示 1 到 5 个条目中的 5 个

上一页1下一页

              1. Bypass

CAS 配置目录中提供了以下设置和属性:

必填

自选

Groovy 脚本

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.simple.bypass.groovy.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.support.mfa.GroovyMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

·  cas.authn.mfa.simple.bypass.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.RestfulMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

·  cas.authn.mfa.simple.token.bypass.groovy.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.support.mfa.GroovyMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

·  cas.authn.mfa.simple.token.bypass.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.RestfulMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

显示 1 到 4 的 4 个条目

上一页1下一页

            1. 注册

注册应作为带外过程进行。最终,CAS 希望从配置的属性源中获取必要的属性,以确定电子邮件和/或 SMS 的通信渠道。采用者应使用足够的信息填充用户记录,以指示电话号码和/或电子邮件地址,然后可以将 CAS 配置为获取和检查这些属性以共享生成的令牌。

            1. 沟通策略

请参阅本指南。

            1. 速率限制

请参阅本指南。

            1. Token 管理

请参阅本指南。

            1. 执行器端点

CAS 提供以下端点:

  GET

/cas/actuator/mfaSimple 

生成简单的多因素身份验证令牌。

            1. REST 协议凭证提取

如果 CAS REST 协议已打开,则会将特殊凭证提取器注入 REST 身份验证引擎,以识别简单的多因素凭证并将其作为 REST请求的一部分进行验证。请求正文中的预期参数名称为 sotp。

          1. 沟通策略
            1. 简单的多因素身份验证 - 通信策略

用户可能会通过短信和/或电子邮件收到 CAS 颁发的令牌通知。经过身份验证的 CAS 主体应携带足够的属性,可通过 CAS 设置进行配置,以便 CAS 能够正确地向最终用户发送文本消息和/或电子邮件。令牌也可以通过 Google Firebase 等平台返回的通知策略共享。

要了解有关可用选项的更多信息,请参阅本指南或本指南,或本指南。

CAS 配置目录中提供了以下设置和属性:

必填

自选

电子邮件服务器

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.simple.mail.attribute-name=

指示此邮件的目标电子邮件地址的主体属性名称。这些属性必须已解析并可供 CAS 主体使用。当指定了多个属性时,将根据可用的 CAS 主体检查每个属性,以查找电子邮件地址值,这可能会导致发送多封电子邮件。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.email.EmailProperties.

如何配置此属性?

·  cas.authn.mfa.simple.mail.from=

电子邮件发件人地址。

 org.apereo.cas.configuration.model.support.email.EmailProperties.

如何配置此属性?

·  cas.authn.mfa.simple.mail.subject=

主题可以定义为 verbaitm,也可以使用语法 #{subject-language-key} 指向语言包中的消息键。此键应指向在相应语言包中定义的有效消息,然后通过活动区域设置选取该消息。如果语言代码无法解析实际主题,则将使用默认主题值。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.email.EmailProperties.

如何配置此属性?

·  cas.authn.mfa.simple.sms.attribute-name=

指示此 SMS 消息的目标电话号码的主体属性名称。该属性必须已解析并可供 CAS 主体使用。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.sms.SmsProperties.

如何配置此属性?

·  cas.authn.mfa.simple.sms.from=

邮件的发件人地址。

 org.apereo.cas.configuration.model.support.sms.SmsProperties.

如何配置此属性?

显示 1 到 5 的 6 个条目

上一页12下一页

          1. 速率限制
            1. 简单的多因素身份验证 - 速率限制

CAS 能够通过 Bucket4j 项目支持基于 token-bucketalgorithm 的 Token 请求的速率限制。这意味着在时间窗口内达到特定可配置容量的令牌请求可能会被阻止或限制以减慢速度。这样做是为了防止系统过载,从而允许您引入一个场景,允许每分钟 CAS 120 个令牌请求,重新填充速率为每秒 10 个请求,该速率将在容量存储桶中不断增加。请注意,存储桶分配策略特定于客户端 IP 地址。

CAS 配置目录中提供了以下设置和属性:

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。

Show  entries

搜索:

·  cas.authn.mfa.simple.bucket4j.bandwidth=

描述可用带宽和总体限制。多个带宽允许每个度量单位使用不同的策略。(即每 1 分钟允许 1000 个令牌,但通常不允许每 1 秒 50 个令牌)。

 org.apereo.cas.configuration.model.support.mfa.simple.CasSimpleMultifactorAuthenticationBucket4jProperties.

如何配置此属性?

·  cas.authn.mfa.simple.bucket4j.bandwidth[0].capacity=120

可在时间窗口内使用的令牌/请求数。

 org.apereo.cas.configuration.model.support.bucket4j.Bucket4jBandwidthLimitProperties.

如何配置此属性?

·  cas.authn.mfa.simple.bucket4j.bandwidth[0].duration=PT60S

允许容量的时间窗口。

此设置支持java.time.Duration 语法 [?]。

 org.apereo.cas.configuration.model.support.bucket4j.Bucket4jBandwidthLimitProperties.

如何配置此属性?

·  cas.authn.mfa.simple.bucket4j.bandwidth[0].initial-tokens=

默认情况下,存储桶的初始大小等于容量。但有时,您可能希望具有较小的初始大小,例如在冷启动的情况下,以防止拒绝服务。

 org.apereo.cas.configuration.model.support.bucket4j.Bucket4jBandwidthLimitProperties.

如何配置此属性?

·  cas.authn.mfa.simple.bucket4j.bandwidth[0].refill-count=10

在指定的重新填充持续时间下,应用于重新填充存储桶的令牌数。

 org.apereo.cas.configuration.model.support.bucket4j.Bucket4jBandwidthLimitProperties.

如何配置此属性?

显示 1 到 5 的 9 个条目

上一页12下一页

          1. Token管理
            1. Default
              1. 简单的多因素身份验证 - 令牌管理

令牌管理和发行可以由 CAS 直接处理,也可以外包给外部系统和服务。

默认情况下,使用 ticket registry跟踪 CAS 颁发的令牌,并为其分配一个可配置的过期策略,该策略通过 CAS 设置进行控制。在此选项中,CAS 本身负责使用预配置的策略和组件管理和验证令牌。

CAS 配置目录中提供了以下设置和属性:

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。

Show  entries

搜索:

·  cas.authn.mfa.simple.token.core.time-to-kill-in-seconds=30

应将 CAS 令牌视为在 CAS 服务器中的实时时间(以秒为单位)。

 org.apereo.cas.configuration.model.support.mfa.simple.CoreCasSimpleMultifactorAuthenticationTokenProperties.

如何配置此属性?

·  cas.authn.mfa.simple.token.core.token-length=6

生成的 Token 的长度。

 org.apereo.cas.configuration.model.support.mfa.simple.CoreCasSimpleMultifactorAuthenticationTokenProperties.

如何配置此属性?

显示 1 到 2 的 2 个条目

上一页1下一页

            1. REST
              1. 简单的多因素身份验证 - REST 令牌管理

令牌验证和管理也可以外包给外部 REST API。

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.simple.token.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.simple.RestfulCasSimpleMultifactorAuthenticationTokenProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

API 服务主要响应两个操作:颁发令牌以便与最终用户共享令牌,以及在最终用户将令牌返回给 CAS 后验证令牌。

              1. 生成 Token

当需要生成令牌时,将通过 POST 调用此 API 端点来创建票证标识符。请求正文将包含通过多因素身份验证流放置的经过身份验证的主体,并且应为其生成令牌的请求应用程序将通过service参数传递给 API。

终端节点应响应位于 /new URL 路径后缀的令牌生成请求,并应生成 2xx状态代码,其中响应正文应包含令牌标识符。

              1. 存储 Token

生成的令牌(与最终用户共享)可以使用 POST 通过 REST API 端点进行存储。请求的正文将包含实际的令牌定义和应存储的详细信息。API 服务应在操作成功时生成 2xx 状态代码。

              1. 验证令牌

生成的令牌将传递到此 API 进行验证,其中令牌将附加到 URL 端点并充当路径变量。返回到 POST 调用的响应必须附有 2xx 状态代码,其中正文应包含 id 和 attributes 字段,后者是可选的,它们表示 CAS 的已验证主体:

1

2

3

4

5

6

7

8

9

10

{

  "@class": "org.apereo.cas.authentication.principal.SimplePrincipal",

  "id": "casuser",

  "attributes": {

    "@class": "java.util.LinkedHashMap",

    "names": [

      "java.util.List", ["cas", "user"]

    ]

  }}

              1. 获取令牌

生成的令牌将传递到此 API 进行检索和查询,其中令牌将附加到 URL 端点并充当路径变量。返回给 GET 调用的响应必须附有 2xx 状态代码,其中正文应包含 id 和 attributes 字段,后者是可选的,它们表示 CAS 的已验证主体:

1

2

3

4

5

6

7

8

9

10

{

  "@class": "org.apereo.cas.authentication.principal.SimplePrincipal",

  "id": "casuser",

  "attributes": {

    "@class": "java.util.LinkedHashMap",

    "names": [

      "java.util.List", ["cas", "user"]

    ]

  }}

            1. 自定义

简单的多因素身份验证 - 自定义令牌管理

您可以使用以下 bean 定义并通过实现CasSimpleMultifactorAuthenticationService来定义自己的多因素身份验证服务:

1

2

3

4

@Beanpublic CasSimpleMultifactorAuthenticationService casSimpleMultifactorAuthenticationService() {

    return new MyCasSimpleMultifactorAuthenticationService();}

请参阅本指南,了解有关如何将配置注册到 CAS 运行时的更多信息。

        1. FIDO2 WebAuthn
          1. 概述
            1. FIDO2 WebAuthn 多因素身份验证

WebAuthn 是一个 API,它使依赖方(如 Web 服务)能够非常轻松地使用所有主流浏览器和平台内置的支持将强身份验证集成到应用程序中。这意味着 Web 服务现在可以轻松地为用户提供强身份验证,并可以选择身份验证器(如安全密钥)或内置平台身份验证器(如生物识别读取器)。

通过在 WAR 覆盖中包含以下模块来启用支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-webauthn"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

签名和加密

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.web-authn.core.application-id=

启动身份验证操作时要为 appid 扩展设置的扩展输入。如果设置了此成员,则启动断言操作将自动设置 appid 扩展输入,完成断言操作将调整其验证逻辑,以也接受此 AppID 作为 RP ID 的替代项。默认情况下,未设置此项。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnMultifactorAuthenticationCoreProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.core.relying-party-id=

启动注册操作时将设置为 rp 参数的 id,以及将比较的 id 哈希值。这是一个必需的参数。成功的注册或身份验证操作要求 rp id 哈希值与此 id 成员的 SHA-256 哈希值完全相等。或者,如果存在应用程序 ID 的 SHA-256 哈希值,则它可能等于应用程序 ID 的 SHA-256 哈希值。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnMultifactorAuthenticationCoreProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.core.relying-party-name=

Relaying Party 的人类可口名称。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnMultifactorAuthenticationCoreProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.crypto.encryption.key=

加密密钥是一个 JWT,其长度由加密密钥大小设置定义。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.core.util.EncryptionJwtCryptoProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.crypto.signing.key=

签名密钥是一个 JWT,其长度由签名密钥大小设置定义。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties.

如何配置此属性?

显示 1 到 5 个条目中的 5 个

上一页1下一页

              1. Bypass

CAS 配置目录中提供了以下设置和属性:

必填

自选

Groovy 脚本

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.web-authn.bypass.groovy.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.support.mfa.GroovyMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.bypass.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.RestfulMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

显示 1 到 2 的 2 个条目

上一页1下一页

            1. 可发现凭证

可以允许 WebAuthN 充当主身份验证的独立身份验证策略。使用这种方法,已向 CAS 注册的用户帐户和支持 FIDO2 的设备可以选择使用其支持 FIDO2 的设备登录,以获得无密码身份验证体验。

可发现凭证意味着私钥和关联的元数据存储在身份验证器的持久内存中,而不是加密并存储在依赖方服务器上。

设备注册可以使用可用的 CAS API 进行带外进行,也可以通过允许用户通过注册流程作为典型多因素身份验证的一部分进行。有关设备注册的详细信息,请参阅下文。

          1. 鉴证信托
            1. FIDO2 WebAuthn 多因素身份验证 - 证明信任和元数据

CAS 中的 WebAuthn 支持可以处理验证器证明,这为 Web 服务提供了一种方法来请求用户正在使用的验证器的加密证明。

可以使用以下策略将认证信任元数据教给 CAS。

JSON 格式

FIDO

WebAuthn 认证信任元数据可以从 JSON 文件加载,默认情况下,CAS 附带并启用了 Yubico 提供的元数据,适用于同样主要由 Yubico 提供的一系列设备。

此 JSON 文件的结构如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

{

  "identifier": "...",

  "version": 1,

  "vendorInfo": {

    "url": "...",

    "imageUrl": "...",

    "name": "..."

  },

  "trustedCertificates": [ "..." ],

  "devices": [

    {

      "deviceId": "...",

      "displayName": "...",

      "transports": 4,

      "deviceUrl": "...",

      "imageUrl": ".",

      "selectors": [

        {

          "type": "x509Extension",

          "parameters": {

            "key": "...",

            "value": {

              "type": "hex",

              "value": "..."

            }

          }

        }

      ]

    }

  ]}

CAS 配置目录中提供了以下设置和属性:

必填

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.web-authn.core.trust-source.trusted-device-metadata.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.SpringResourceProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

          1. 二维码
            1. FIDO2 WebAuthn 多因素身份验证 - QR 码

CAS 可以配置为支持使用 QR 码的 FIDO2 WebAuthn 身份验证。启用后,此功能允许用户通过扫描 CAS 提供的 QR 码,使用支持 FIDO2 的设备进行身份验证。此身份验证流程主要在 primaryauthentication 设备(例如笔记本电脑)与用于 FIDO2authentication 的设备(例如移动电话)分开的情况下非常有用。该流程遵循以下步骤:

系统会提示用户在其主身份验证设备(即笔记本电脑)上使用支持 FIDO2 的设备。

用户在此处决定在主设备上进行 FIDO2 身份验证是不可能的或不切实际的。

CAS 同时在主设备上显示一个 QR 码,然后由用户的辅助支持 FIDO2 的设备(即手机)进行扫描。

扫描的 QR 码包含一个链接,提示用户使用 CAS 完成 FIDO 身份验证尝试。

此尝试直接在用户的辅助设备上处理,与主设备完全分开。

用户在辅助设备上建立会话后,主身份验证设备会收到通知,并将恢复流程。

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.web-authn.core.application-id=

启动身份验证操作时要为 appid 扩展设置的扩展输入。如果设置了此成员,则启动断言操作将自动设置 appid 扩展输入,完成断言操作将调整其验证逻辑,以也接受此 AppID 作为 RP ID 的替代项。默认情况下,未设置此项。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnMultifactorAuthenticationCoreProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.core.relying-party-id=

启动注册操作时将设置为 rp 参数的 id,以及将比较的 id 哈希值。这是一个必需的参数。成功的注册或身份验证操作要求 rp id 哈希值与此 id 成员的 SHA-256 哈希值完全相等。或者,如果存在应用程序 ID 的 SHA-256 哈希值,则它可能等于应用程序 ID 的 SHA-256 哈希值。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnMultifactorAuthenticationCoreProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.core.relying-party-name=

Relaying Party 的人类可口名称。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnMultifactorAuthenticationCoreProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.core.trust-source.fido.legal-header=

"Retrieval and use of this BLOB indicates acceptance of the appropriate agreement located at https://fidoalliance.org/metadata/metadata-legal-terms/"

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnMultifactorAttestationTrustSourceFidoProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.core.trust-source.fido.metadata-blob-url=https://mds.fidoalliance.org/

从 FIDO 网站下载元数据 BLOB。这是当前的 FIDO 元数据服务 BLOB 下载 URL。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnMultifactorAttestationTrustSourceFidoProperties.

如何配置此属性?

显示 1 到 5 的 8 个条目

上一页12下一页

          1. 设备注册
            1. 概述

FIDO2 WebAuthn 多因素身份验证 - 注册

设备注册流程会自动融入 CAS 中。还会自动安排后台清理进程,以定期扫描存储库并根据配置的参数删除过期的设备注册记录。在默认设置中,设备在用户注册其设备后的固定时间段后过期。

CAS 配置目录中提供了以下设置和属性:

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。

Show  entries

搜索:

·  cas.authn.mfa.web-authn.cleaner.schedule.cron-expression=

一个类似 cron 的表达式,扩展了通常的 UN*X 定义,以包括秒、分钟、小时、月日、月和星期几的触发器。例如,0 * * * * MON-FRI 表示工作日每分钟一次(在分钟的顶部 - 第 0 秒),或 0 0 0 * * * 表示每天午夜。* 请注意,定义 cron 表达式时,必须删除 start delay 和 repeat interval 设置并将其设置为空白。

 org.apereo.cas.configuration.model.support.quartz.SchedulingProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.cleaner.schedule.cron-time-zone=

将解析 cron 表达式的时区。默认情况下,此属性为空(即将使用调度程序的时区)。

 org.apereo.cas.configuration.model.support.quartz.SchedulingProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.cleaner.schedule.enabled-on-host=.*

如果此属性与 CAS 服务器的主机名不匹配,则覆盖 SchedulingProperties#enabled 属性值 true。如果在 statefulset 中部署带有镜像的 CAS,其中所有名称都是可预测的,但很难为不同的服务器使用不同的配置,那么这可能很有用。该值可以是确切的主机名,也可以是将用于匹配主机名的正则表达式。

此设置支持正则表达式模式。[?].

 org.apereo.cas.configuration.model.support.quartz.SchedulingProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.cleaner.schedule.enabled=true

是否应启用计划程序来计划作业运行。

 org.apereo.cas.configuration.model.support.quartz.SchedulingProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.cleaner.schedule.repeat-interval=PT2M

为数据存储实施重新加载数据的重复间隔的字符串表示形式。这是连续任务执行之间的超时。

此设置支持java.time.Duration 语法 [?]。

 org.apereo.cas.configuration.model.support.quartz.SchedulingProperties.

如何配置此属性?

显示 1 到 5 的 6 个条目

上一页12下一页

 清洁剂的使用

在群集 CAS 部署中,最好仅在一个指定的 CAS 节点上运行清理程序,并通过 CAS 设置在所有其他节点上将其关闭。保持清理程序在所有节点上运行可能会导致严重的性能和锁定问题。

默认情况下,包含一个存储库实现,用于收集用户设备注册并将其保存到内存中。此选项应仅用于演示和测试目的。

执行器端点

CAS 提供以下端点:

  DELETE

/cas/actuator/webAuthnDevices/{username}/{credentialId} 

删除用户名和凭据 ID 的设备注册。

  DELETE

/cas/actuator/webAuthnDevices/{username} 

  GET

/cas/actuator/webAuthnDevices/{username} 

  GET

/cas/actuator/webAuthnDevices/export 

  POST

/cas/actuator/webAuthnDevices/import 

  POST

/cas/actuator/webAuthnDevices/{username} 

设备存储库

还可以使用以下任一策略管理设备注册。

存储

描述

JSON 格式

请参阅本指南

MongoDb 数据库

请参阅本指南

LDAP 协议

请参阅本指南

JPA

请参阅本指南

Redis

请参阅本指南

DynamoDb

请参阅本指南

REST

请参阅本指南

            1. JSON 格式

JSON FIDO2 WebAuthn 多因素注册

一种设备存储库实现,用于收集用户设备注册并将其保存到 JSON 文件中,该文件的路径通过设置教给 CAS。这是一个非常适度的选项,应主要用于演示和测试目的。不用说,这个 JSON 资源充当一个数据库,必须可供集群中的所有 CAS 服务器节点使用。

CAS 配置目录中提供了以下设置和属性:

必填

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.web-authn.json.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnJsonMultifactorProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

            1. DynamoDb

DynamoDb FIDO2 WebAuthn 多重注册

通过在 WAR 覆盖中包含以下模块,可以将设备注册保留在 DynamoDb 实例中:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-webauthn-dynamodb"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.web-authn.dynamo-db.credential-access-key=

使用 AWS 提供的访问密钥进行身份验证。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnDynamoDbMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.dynamo-db.credential-secret-key=

使用 AWS 提供的密钥进行身份验证。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnDynamoDbMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.dynamo-db.dax.url=

Cluster url 的 URL 中。例如,dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com。

 org.apereo.cas.configuration.model.support.dynamodb.DynamoDbDaxProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.dynamo-db.endpoint=

AWS 自定义终端节点。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnDynamoDbMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.dynamo-db.region=

使用的 AWS 区域。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnDynamoDbMultifactorProperties.

如何配置此属性?

显示 1 到 5 个条目中的 5 个

上一页1下一页

            1. JPA

JPA FIDO2 WebAuthn 多因子注册

通过在 WAR 覆盖中包含以下模块,可以将设备注册保存在关系数据库实例中:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-webauthn-jpa"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

Hibernate 和 JDBC

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.web-authn.jpa.driver-class=org.hsqldb.jdbcDriver

用于连接到数据库的 JDBC 驱动程序。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnJpaMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.jpa.password=

The database connection password.

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnJpaMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.jpa.url=jdbc:hsqldb:mem:cas-hsql-database

The database connection URL.

 This setting supports the Spring Expression Language.

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnJpaMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.jpa.user=sa

The database user must have sufficient permissions to be able to handle schema changes and updates, when needed.

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnJpaMultifactorProperties.

如何配置此属性?

显示 1 到 4 的 4 个条目

上一页1下一页

            1. LDAP 协议

LDAP FIDO2 WebAuthn 多因素注册

通过在 WAR 覆盖中包含以下模块,可以将设备注册保存在 LDAP 目录中:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-webauthn-ldap"}

设备注册记录作为 JSON blob 保存在指定的可配置多值属性中。解析属性值以加载、保存、更新或删除帐户。如有必要,可以对每个 attributevalue 的内容进行签名/加密。

CAS 配置目录中提供了以下设置和属性:

必填

自选

LDAP & Active Directory

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.web-authn.ldap.account-attribute-name=casWebAuthnRecord

将 WebAuthn 帐户/凭据保存为 JSON 的 LDAP 属性的名称。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnLdapMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.ldap.base-dn=

要使用的基本 DN。在某些情况下,单个 LDAP 树的不同部分可能被视为 base-dns。可以使用特殊的分隔符指定每个条目并将其连接在一起,而不是为每个单独的 base-dn 复制 LDAP 配置块。用户 DN 按定义的顺序使用所有 base-dn 和 DN 解析程序的组合进行检索。如果找到多个 DN,则 DN 解析应失败。否则,将返回找到的第一个 DN。通常的语法是:subtreeA,dc=example,dc=net|subtreeC,dc=example,dc=net。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnLdapMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.ldap.bind-credential=

连接到 LDAP 时要使用的绑定凭证。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnLdapMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.ldap.bind-dn=

连接到 LDAP 时要使用的绑定 DN。注入 LDAP 连接池的 LDAP 连接配置可以使用以下参数进行初始化:

bindDn/bindCredential provided - 在初始化连接时使用提供的凭证进行绑定。

bindDn/bindCredential 设置为 * - 使用快速绑定策略初始化池。

bindDn/bindCredential 设置为空白 - 跳过连接初始化;匿名执行操作。

提供的 SASL 机制 - 初始化连接时使用给定的 SASL 机制进行绑定。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnLdapMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.ldap.ldap-url=

服务器的 LDAP URL。可以指定多个,用空格和/或逗号分隔。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnLdapMultifactorProperties.

如何配置此属性?

显示 1 到 5 的 6 个条目

上一页12下一页

            1. MongoDb 数据库

MongoDb FIDO2 WebAuthn 多因素注册

通过在 WAR 覆盖中包含以下模块,可以将设备注册保留在 MongoDb 实例中:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-webauthn-mongo"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.web-authn.mongo.client-uri=

mongodb 实例的连接 URI。这通常采用 mongodb://user:psw@ds135522.somewhere.com:35522/db 的形式。如果未指定,将回退到其他单个设置。如果指定,则接管所有其他设置(如果适用)。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnMongoDbMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.mongo.collection=

要获取和/或创建的 MongoDb 数据库集合名称。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnMongoDbMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.mongo.database-name=

MongoDb 数据库实例名称。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnMongoDbMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.mongo.host=localhost

用于身份验证的 MongoDb 数据库主机。可以定义多个主机地址,用逗号分隔。如果定义了多个主机,则假定每个主机也包含端口(如果有)。否则,配置可能会回退到定义的端口。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnMongoDbMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.mongo.password=

用于身份验证的 MongoDb 数据库密码。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnMongoDbMultifactorProperties.

如何配置此属性?

显示 1 到 5 的 7 个条目

上一页12下一页

            1. Redis

Redis FIDO2 WebAuthn 多重注册

通过在 WAR 覆盖中包含以下模块,可以将设备注册保存在 Redis 数据库实例中:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-webauthn-redis"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.web-authn.redis.cluster.nodes[0].host=

服务器的主机地址。

 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.redis.cluster.nodes[0].port=

服务器的端口号。

 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.redis.cluster.nodes[0].replica-of=

设置 master 节点的 id。

 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.redis.cluster.nodes[0].type=

指示此节点的类型/角色。接受的值为 MASTER, REPLICA 。

 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties.

如何配置此属性?

·  cas.authn.mfa.web-authn.redis.cluster.password=

集群连接的密码。

 org.apereo.cas.configuration.model.support.redis.RedisClusterProperties.

如何配置此属性?

显示 1 到 5 个条目,共 14 个条目

上一页123下一页

            1. REST

REST FIDO2 WebAuthn 多因子注册

设备注册可以使用外部 REST API 进行管理,方法是在 WAR 覆盖中包含以下模块:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-webauthn-rest"}

传递以下参数:

操作

参数

描述

结果

GET

不适用

检索所有记录。

200 状态代码;正文中 JSON 记录的集合。

GET

username

检索用户的所有记录。

200 状态码 body 中 JSON 记录的集合。

POST

以 JSON 正文形式收集记录

存储/更新已注册的设备。

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.web-authn.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.webauthn.WebAuthnRestfulMultifactorProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

        1. Inwebo
          1. Inwebo/TrustBuilder 多因素身份验证

您可以使用 Inwebo 提供的第二个因素保护您的 CAS 服务器。

 TrustBuilder 与 inWebo

2023 年,在 inWebo 战略收购 TrustBuilder 一年后,两家公司现已正式合二为一,并更名为 TrustBuilder

可以在 Inwebo 文档网站上找到此集成的完整文档。

除了此 CAS 集成之外,请注意,此身份提供商还可以提供更通用的身份验证解决方案。

通过在覆盖中包含以下模块来启用支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-inwebo-mfa"}

该集成增加了对推送移动/桌面和浏览器身份验证(Virtual Authenticator 或 mAccess WEB)的支持。

          1. 配置

CAS 配置目录中提供了以下设置和属性:

必填

自选

Groovy 脚本

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.inwebo.bypass.groovy.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.support.mfa.GroovyMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

·  cas.authn.mfa.inwebo.bypass.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.RestfulMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

·  cas.authn.mfa.inwebo.client-certificate.certificate.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.SpringResourceProperties.

如何配置此属性?

·  cas.authn.mfa.inwebo.client-certificate.passphrase=

客户端证书的密码。

 org.apereo.cas.configuration.model.core.util.ClientCertificateProperties.

如何配置此属性?

·  cas.authn.mfa.inwebo.service-id=

Inwebo 服务 ID。

 org.apereo.cas.configuration.model.support.mfa.InweboMultifactorAuthenticationProperties.

如何配置此属性?

显示 1 到 5 的 6 个条目

上一页12下一页

          1. Bypass

CAS 配置目录中提供了以下设置和属性:

必填

自选

Groovy 脚本

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.inwebo.bypass.groovy.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.support.mfa.GroovyMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

·  cas.authn.mfa.inwebo.bypass.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.RestfulMultifactorAuthenticationProviderBypassProperties.

如何配置此属性?

显示 1 到 2 的 2 个条目

上一页1下一页

        1. 自定义

自定义 Multifactor Authentication

要创建自己的自定义多因素身份验证提供程序,您需要设计组件,这些组件主要在唯一标识符下将自定义身份验证流注册到 CAS webflow 引擎中。稍后,您还需要考虑触发自定义 MultiFactor 身份验证提供程序的策略。

 记得

设计自定义多因素身份验证提供程序可能是一项具有挑战性的任务,特别是如果您不熟悉 CAS 编程模型、API 以及实现此目的的底层框架和技术,例如 Spring Webflow。

提供程序 ID

每个多因素提供商都分配有一个唯一标识符,该标识符通常被映射或等于底层 webflow。唯一标识符可以是您选择的任意字符串,前提是它保持独特和合理,因为它可以根据用例在其他系统中使用,并被其他应用程序用作触发器。

在本指南中,我们选择 mfa-custom 作为提供商 ID。

注册 Webflow 配置

自定义提供程序本身是其自己的独立 webflow,然后注册到主身份验证流中。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

public class CustomAuthenticatorWebflowConfigurer extends AbstractCasMultifactorWebflowConfigurer {

    public static final String MFA_EVENT_ID = "mfa-custom";

      

    /*

        Define the appropriate constructor based on the parent class

        public CustomAuthenticatorWebflowConfigurer(...) {

        }

    */  

    @Override

    protected void doInitialize() throws Exception {

        registerMultifactorProviderAuthenticationWebflow(getLoginFlow(),

                MFA_EVENT_ID, yourCustomMfaFlowDefinitionRegistry);

    }}

CustomAuthenticatorWebflowConfigurer 必须能够使用 CAS 提供的 API 动态构建 webflow 定义。请参阅 CAS 代码库以查看和学习其他实现

设计提供商

CAS 中的多因素身份验证提供程序以 MultifactorAuthenticationProvider 实例的形式表示。下面简要显示了提供程序的轮廓,并且删除了它的大部分行为以支持默认值。

1

2

3

public class CustomMultifactorAuthenticationProvider extends AbstractMultifactorAuthenticationProvider {

    private static final long serialVersionUID = 4789727148634156909L;}

注册提供商

自定义 webflow 配置需要向 CAS 注册。配置注册的概述示例和摘要如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

package org.example.cas;

@AutoConfigurationpublic class CustomAuthenticatorSubsystemConfiguration {

    ...

    @Bean

    public FlowDefinitionRegistry customFlowRegistry() {

        var builder = new FlowDefinitionRegistryBuilder(applicationContext, flowBuilderServices);

        builder.addFlowBuilder(new FlowModelFlowBuilder(

            new DefaultFlowModelHolder(new DynamicFlowModelBuilder())),

            "mfa-custom");

        return builder.build();

    }

    @Bean

    public MultifactorAuthenticationProvider customAuthenticationProvider() {

        var p = new CustomMultifactorAuthenticationProvider();

        p.setId("mfa-custom");

        return p;

    }

    @Bean

    public CasWebflowConfigurer customWebflowConfigurer() {

        return new CustomAuthenticatorWebflowConfigurer(...);

    }

    @Bean

    public CasWebflowExecutionPlanConfigurer customWebflowExecutionPlanConfigurer() {

        return plan -> plan.registerWebflowConfigurer(customWebflowConfigurer());

    }

    ...}

不要忘记向 CAS 注册配置类。有关更多详细信息,请参阅本指南。

触发器

可以使用任何支持的选项触发自定义身份验证 webflow。

    1. 触发器和激活
      1. 概述

多因素身份验证触发器

触发器可用于激活和指示 CAS 导航到多因素身份验证流程。如果未找到用于其激活和执行的适用配置,则每个触发器都应正确尝试忽略身份验证请求。另请注意,各种 CAS 模块提供自己的内部触发器并将其注入 CAS 应用程序运行时,以便将特定于协议的身份验证请求(例如 SAML2 或 OpenID Connect 提供的请求)转换为多因素身份验证流。

 服务要求

大多数多因素身份验证触发器都要求提交给 CAS 的原始身份验证请求包含 service 参数。如果不这样做,将导致初始身份验证尝试成功,其中带有相关参数的后续请求将提升身份验证上下文并在以后触发多因素身份验证。如果您需要测试特定触发器,请记住适当地提供 service 参数以查看触发器的运行情况。

通常,触发机制应完全忽略多因素身份验证;它所关心的只是以非常通用的方式找到链中的下一个事件。这意味着从技术上讲,可以组合多个触发器,每个触发器都可能在身份验证流中产生不同的事件。在这种情况下,在选择了最终候选事件后,能够支持和响应生成的事件的相应组件和模块将接管并适当地路由身份验证流。

以下触发器可用:

触发

描述

全球

请参阅此页面

每个应用程序

请参阅此页面

Groovy Per Application

请参阅此页面

全局主体属性

请参阅此页面

全局主体属性谓词

请参阅此页面

全局身份验证属性

请参阅此页面

适应的

请参阅此页面

Grouper

请参阅此页面

Groovy

请参阅此页面

REST

请参阅此页面

选择加入请求参数/标头

请参阅此页面

每个应用程序的 Principal 属性

请参阅此页面

实体 ID 请求参数

请参阅此页面

自定义

请参阅此页面

      1. 全球

全局多因素身份验证触发器

无论单个设置如何,都可以为所有应用程序和用户触发 MFA。换句话说,如果您希望为所有请求、应用程序和用户激活多因素提供商,则只能启用此触发器。

CAS 配置目录中提供了以下设置和属性:

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。

Show  entries

搜索:

·  cas.authn.mfa.triggers.global.global-provider-id=

无论单个设置如何,都可以为所有应用程序和用户触发 MFA。此设置保留 MFA 提供程序的值,无论如何,都应为所有请求激活该提供程序。此处可以通过逗号分隔的语法指定多个提供商标识符,这可能会强制 CAS 进入提供商选择和解析流程。

 org.apereo.cas.configuration.model.support.mfa.GlobalMultifactorAuthenticationProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

      1. 每个应用程序

按应用程序 - 多因素身份验证触发器

可以为在 CAS 服务注册表中注册的特定应用程序触发 MFA。

1

2

3

4

5

6

7

8

9

10

11

12

{

  "@class" : "org.apereo.cas.services.CasRegisteredService",

  "serviceId" : "^(https|imaps)://.*",

  "id" : 100,

  "name": "test",

  "multifactorPolicy" : {

    "@class" : "org.apereo.cas.services.DefaultRegisteredServiceMultifactorPolicy",

    "multifactorAuthenticationProviders" : [ "java.util.LinkedHashSet", [ "mfa-duo" ] ],

    "bypassEnabled": false,

    "forceExecution": true

  }}

策略定义接受以下字段

描述

multifactorAuthenticationProviders

应为此应用程序触发的多因子提供程序 ID 集。

script

用于动态触发多因素身份验证的脚本(无论是外部还是内部)的路径。

bypassEnabled

是否应为此服务绕过多因素身份验证

forceExecution

是否应强制触发多因素身份验证,即使无需 MFA 即可满足现有身份验证上下文。

      1. Groovy Per Application

Groovy Per Application - 多因素身份验证触发器

您可以使用 Groovy 脚本确定已注册服务的多因素身份验证策略。

要准备 CAS 以支持 Apache Groovy 并与之集成,请查看本指南。

传递的参数如下:

参数

描述

registeredService

表示注册表中相应服务定义的对象。

authentication

表示 Authentication 对象的对象。

httpRequest

表示 HTTP servlet 请求的对象。

service

表示与此 http 请求关联的服务请求的对象。

applicationContext

表示 Spring 应用程序上下文的对象。

logger

负责发出日志消息的对象,例如 logger.info(...)

如果此触发器应跳过多因素身份验证,则脚本的预期结果为 null,或者应考虑激活的多重提供程序的标识符。

文件

内嵌

可以使用其完整路径在服务定义中定义脚本:

1

2

3

4

5

6

7

8

9

10

{

  "@class" : "org.apereo.cas.services.CasRegisteredService",

  "serviceId" : "^(https|imaps)://.*",

  "id" : 100,

  "name": "test",

  "multifactorPolicy" : {

    "@class" : "org.apereo.cas.services.DefaultRegisteredServiceMultifactorPolicy",

    "script" : "file:///etc/cas/config/mfa-policy.groovy"

  }}

脚本本身可以按如下方式设计:

1

2

3

4

5

6

def run(final Object... args) {

    def (authentication,registeredService,httpRequest,service,applicationContext,logger) = args

    logger.debug("Determine mfa provider for ${registeredService.name} and ${authentication.principal.id}")

    def memberOf = authentication.principal.attributes['memberOf'] as List

    return memberOf.contains('CN=NEED-MFA') ? 'mfa-duo' : null}

script 属性支持 Spring 表达式语言语法。

要准备 CAS 以支持 Apache Groovy 并与之集成,请查看本指南。

      1. Principal 属性

Groovy 主体属性 - 多因素身份验证触发器

对于携带与以下条件之一匹配的特定属性的所有用户/主题,都可以触发 MFA。

根据其值与正则表达式模式匹配的 principal 属性触发 MFA。请注意,仅当仅配置了单个 MFA 提供程序时,此行为才适用,因为这将允许 CAS知道下次要激活的提供程序。

根据其值与 MFA 提供程序完全匹配的 principal 属性触发 MFA。如果您配置了多个提供程序,或者您可以灵活地将提供程序 ID 作为值分配给属性,则此选项更相关。

不用说,在此步骤之前,需要为主体解析属性。

要准备 CAS 以支持 Apache Groovy 并与之集成,请查看本指南。

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.triggers.principal.global-principal-attribute-predicate.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.SpringResourceProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

      1. Principal Attribute 谓词

Groovy 主体属性谓词 - 多因素身份验证触发器

这是上述触发器的更通用的变体。在应用程序运行时中配置了多个提供程序且可用,并且您需要设计一个策略来动态决定应为请求激活的提供程序时,它可能很有用。

该决定被移交给 Groovy 脚本中定义的 Predicate 实现,该脚本的位置被教给 CAS。脚本中 test 函数的职责是确定要触发的提供程序的资格。如果谓词通过返回true 来确定多个提供程序符合条件,则将选择按提供程序顺序排名的排序结果集中的第一个提供程序进行响应。

要准备 CAS 以支持 Apache Groovy 并与之集成,请查看本指南。

Groovy 脚本谓词可以设计成这样:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

import org.apereo.cas.authentication.*import java.util.function.*import org.apereo.cas.services.*

class PredicateExample implements Predicate<MultifactorAuthenticationProvider> {

    def service

    def principal

    def providers

    def logger

    public PredicateExample(service, principal, providers, logger) {

        this.service = service

        this.principal = principal

        this.providers = providers

        this.logger = logger

    }

    @Override

    boolean test(final MultifactorAuthenticationProvider p) {

        ...

    }}

传递的参数如下:

参数

描述

service

表示注册表中相应服务定义的对象。

principal

表示已验证的主体的对象。

providers

应从中进行选择的 MultifactorAuthenticationProvider的集合。

logger

负责发出日志消息的对象,例如 logger.info(...)

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.triggers.principal.global-principal-attribute-predicate.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.SpringResourceProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

例如,以下谓词示例将开始测试每个多因素身份验证提供程序,如果给定的提供程序是 mfa-duo,则只要可以访问该提供程序,它就会将其接受为有效触发器。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

import org.apereo.cas.authentication.*import java.util.function.*import org.apereo.cas.services.*

class PredicateExample implements Predicate<MultifactorAuthenticationProvider> {

    def service

    def principal

    def providers

    def logger

    public PredicateExample(service, principal, providers, logger) {

        this.service = service

        this.principal = principal

        this.providers = providers

        this.logger = logger

    }

    @Override

    boolean test(final MultifactorAuthenticationProvider p) {

        logger.info("Testing provider {}", p.getId())

        if (p.matches("mfa-duo")) {

           logger.info("Provider {} is available. Checking eligibility...", p.getId())

           if (p.isAvailable(this.service)) {

               logger.info("Provider {} matched. Good to go!", p.getId())

               return true;

           }

           logger.info("Skipping provider {}. Match failed.", p.getId())

           return false;

        }

        logger.info("Provider {} cannot be reached", p.getId())

        return false

    }}

      1. 身份验证属性

Groovy 身份验证属性 - 多因素身份验证触发器

对于其身份验证事件/元数据已解析与以下条件之一匹配的特定属性的所有用户/主题,都可以触发 MFA:

根据其值与正则表达式模式匹配的身份验证属性触发 MFA。请注意,仅当仅配置了单个 MFA 提供程序时,此行为才适用,因为这将允许 CAS知道下次要激活的提供程序。

根据其值与 MFA 提供程序完全匹配的身份验证属性触发 MFA。如果您配置了多个提供程序,或者您可以灵活地将提供程序 ID 作为值分配给属性,则此选项更相关。

不用说,在此步骤之前,需要解析身份验证事件的属性。当底层身份验证引擎向 CAS 发出信号以执行额外的凭证验证时,此触发器通常很有用。此信号可能被 CAS 捕获为作为身份验证事件元数据一部分的属性,然后可以触发其他多因素身份验证事件。

要准备 CAS 以支持 Apache Groovy 并与之集成,请查看本指南。

此方案的一个示例是 RADIUS 服务器生成的“Access Challenge 响应”。

CAS 配置目录中提供了以下设置和属性:

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。

Show  entries

搜索:

·  cas.authn.mfa.triggers.authentication.global-authentication-attribute-name-triggers=

不用说,在此步骤之前,需要解析身份验证事件的属性。当底层身份验证引擎向 CAS 发出信号以执行其他凭据验证时,此触发器通常很有用。CAS 可能会将此信号捕获为作为身份验证事件元数据一部分的属性,然后可以触发其他多因素身份验证事件。

此设置支持正则表达式模式。[?].

 org.apereo.cas.configuration.model.support.mfa.AuthenticationAttributeMultifactorAuthenticationProperties.

如何配置此属性?

·  cas.authn.mfa.triggers.authentication.global-authentication-attribute-value-regex=

与 authentication 属叉匹配的正则表达式,用于确定账户是否符合多因素身份验证的条件。

此设置支持正则表达式模式。[?].

 org.apereo.cas.configuration.model.support.mfa.AuthenticationAttributeMultifactorAuthenticationProperties.

如何配置此属性?

显示 1 到 2 的 2 个条目

上一页1下一页

      1. 适应的

自适应 - 多因素身份验证触发器

可以根据可能被视为非法的请求的特定性质触发 MFA。例如,您可能希望强制从特定 IP 模式或特定地理位置提交的所有请求都经过 MFA。CAS 能够适应传入请求的各种属性,并将流路由到执行 MFA。有关更多信息,请参阅本指南。

      1. Grouper

Grouper - 多因素身份验证触发器

MFA 可由已验证委托人分配到的 Grouper 组触发。组由 CAS 收集,然后根据所有可用/配置的 MFA 提供程序进行交叉检查。必须在 CAS 中定义组的比较因子才能激活此行为,并且可以基于组的名称、显示名称等,其中与提供程序 ID 的成功匹配应激活所选的 MFA 提供程序。

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-grouper"}

您还需要确保 grouper.client.properties 在 Classpath 上可用,并具有以下配置的属性:

1

2

3

grouperClient.webService.url = http://192.168.99.100:32768/grouper-ws/servicesRestgrouperClient.webService.login = bandersongrouperClient.webService.password = password

CAS 配置目录中提供了以下设置和属性:

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。

Show  entries

搜索:

·  cas.authn.mfa.triggers.grouper.grouper-group-field=

MFA 可由已验证委托人分配到的 Grouper 组触发。组由 CAS 收集,然后根据所有可用/配置的 MFA 提供程序进行交叉检查。必须在 CAS 中定义组的比较因子才能激活此行为,并且可以基于组的名称、显示名称等,其中与提供程序 ID 的成功匹配应激活所选的 MFA 提供程序。

 org.apereo.cas.configuration.model.support.mfa.GrouperMultifactorAuthenticationProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

您还可以考虑通过修改 /src/main/resources/grouper.client.properties 来外部化 Grouper 客户端配置文件,以包含以下内容:

1

grouperClient.config.hierarchy = classpath:/grouper.client.base.properties,file:/etc/cas/config/grouper.client.properties

…其中 /etc/cas/config/grouper.client.properties 将包含实际的 Grouper 相关设置。

故障排除

要启用其他日志记录,请配置 log4j 配置文件以添加以下级别:

1

2

3

4

5

6

...<Logger name="edu.internet2.middleware" level="debug" additivity="false">

    <AppenderRef ref="casConsole"/>

    <AppenderRef ref="casFile"/></Logger>

...

      1. Groovy

Groovy - 多因素身份验证触发器

MFA 可以根据您自己设计的 groovy 脚本的结果触发。脚本的结果应确定 CAS 应尝试激活的 MFA 提供程序 ID。

要准备 CAS 以支持 Apache Groovy 并与之集成,请查看本指南。

Groovy 脚本的大纲如下所示:

1

2

3

4

5

6

7

8

9

import java.util.*

class SampleGroovyEventResolver {

    def run(final Object... args) {

        def (service,registeredService,authentication,httpRequest,logger) = args

        ...

        return "mfa-duo"

    }}

传递的参数如下:

参数

描述

service

表示请求中提供的传入服务的对象(如果有)。

registeredService

表示注册表中相应服务定义的对象。

authentication

表示已建立的身份验证事件的对象,包含主体。

httpRequest

表示 HttpServletRequest 的对象。

logger

负责发出日志消息的对象,例如 logger.info(...)

例如,如果https://www.example.com 且经过身份验证的主体包含值包含 email@example.org 的 mail 属性,则以下脚本通过 Duo Security 触发多因素身份验证。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

import java.util.*

class MyExampleScript {

    String run(final Object... args) {

        def (service,registeredService,authentication,httpRequest,logger) = args

        if (service.id == "https://www.example.com") {

            logger.info("Evaluating principal attributes [{}]", authentication.principal.attributes)

            def mail = authentication.principal.attributes['mail']

            if (mail.contains("email@example.org")) {

                logger.info("Found mail attribute with value [{}]", mail)

                return "mfa-duo"

            }

        }

        return null

    }}

CAS 配置目录中提供了以下设置和属性:

必填

Groovy 脚本

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

·  cas.authn.mfa.groovy-script.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.SpringResourceProperties.

如何配置此属性?

搜索:

显示 1 到 1 的 1 个条目

上一页1下一页

要准备 CAS 以支持 Apache Groovy 并与之集成,请查看本指南。

      1. REST

REST - 多因素身份验证触发器

MFA 可以根据设计的远程 REST 终端节点的结果触发。如果配置了端点,CAS 应发出 POST,在请求正文中提供经过身份验证的用户名作为 principalId,将 serviceId 作为服务 url。

端点必须设计为接受/处理 application/json。如果状态代码成功 200,则响应正文应为 CAS 应激活的 MFA 提供程序 ID。

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.triggers.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.RestfulMultifactorAuthenticationProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

      1. 选择加入请求

选择加入请求参数/标头 - 多因素身份验证触发器

可以为特定身份验证请求触发 MFA,前提是对 CAS /login 终端节点的初始请求包含指示所需 MFA 身份验证流程的参数/标头。参数/标头名称是可配置的,但其值必须与上述可用 MFA 提供程序的身份验证提供程序 ID 匹配。

CAS 配置目录中提供了以下设置和属性:

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。

Show  entries

搜索:

·  cas.authn.mfa.triggers.http.request-header=authn_method

如果对 CAS /login 终端节点的初始请求包含指示所需 MFA 身份验证流程的请求标头,则可以为特定身份验证请求触发 MFA。标头名称是可配置的,但其值必须与可用 MFA 提供商的身份验证提供商 ID 匹配。

 org.apereo.cas.configuration.model.support.mfa.MultifactorAuthenticationHttpTriggerProperties.

如何配置此属性?

·  cas.authn.mfa.triggers.http.request-parameter=authn_method

如果对 CAS /login 终端节点的初始请求包含指示所需 MFA 身份验证流程的参数,则可以为特定身份验证请求触发 MFA。参数名称是可配置的,但其值必须与可用 MFA 提供商的身份验证提供商 ID 匹配。

 org.apereo.cas.configuration.model.support.mfa.MultifactorAuthenticationHttpTriggerProperties.

如何配置此属性?

·  cas.authn.mfa.triggers.http.session-attribute=authn_method

可以为特定的身份验证请求触发 MFA,前提是该请求包含指示所需 MFA 身份验证流程的 session/request 属性。属性名称是可配置的,但其值必须与可用 MFA 提供商的身份验证提供商 ID 匹配。

 org.apereo.cas.configuration.model.support.mfa.MultifactorAuthenticationHttpTriggerProperties.

如何配置此属性?

显示 1 到 3 个条目中的 3 个

上一页1下一页

根据请求参数触发身份验证流的示例请求为:

1

https://.../cas/login?service=...&<PARAMETER_NAME>=<MFA_PROVIDER_ID>

相同的策略也适用于基于 request/session 属性的触发器,这些属性往往用于 API 和 CAS 组件之间的内部通信,尤其是在设计扩展时。

      1. 每个应用程序的 Principal 属性

每个应用程序的主体属性 - 多因素身份验证触发器

作为混合选项,可以为在 CAS 服务注册表中注册的特定应用程序触发 MFA,前提是经过身份验证的主体携带与配置的属性值匹配的属性。attributevalue 可以是任意正则表达式模式。请参阅下文,了解如何配置 MFA 设置。

1

2

3

4

5

6

7

8

9

10

11

12

{

  "@class" : "org.apereo.cas.services.CasRegisteredService",

  "serviceId" : "^(https|imaps)://.*",

  "id" : 100,

  "name": "test",

  "multifactorPolicy" : {

    "@class" : "org.apereo.cas.services.DefaultRegisteredServiceMultifactorPolicy",

    "multifactorAuthenticationProviders" : [ "java.util.LinkedHashSet", [ "mfa-duo" ] ],

    "principalAttributeNameTrigger" : "memberOf",

    "principalAttributeValueToMatch" : "faculty|allMfaMembers"

  }}

      1. 实体 ID

实体 ID 请求参数 - 多因素身份验证触发器

在将身份验证委托给 CAS 的情况下(最常见的是通过 Shibboleth 身份提供程序),实体 ID 可以作为请求参数传递给 CAS,以被视为 CAS 注册服务。这允许根据注册的实体 ID 激活多因素身份验证策略这允许根据在 CAS 服务注册表中注册的实体 ID 激活多因素身份验证策略。作为附带好处,实体 ID 可以利用所有其他 CAS 功能,例如访问策略和授权规则,因为它只是 CAS 已知的另一个服务定义。

要了解有关集成选项的更多信息,并了解如何从 Shibboleth 身份提供商将身份验证委托给 CAS,请参阅本指南。

通过在 WAR 覆盖中包含以下依赖项来启用支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-shibboleth"}

entityId 参数可以按如下方式传递:

1

https://.../cas/login?service=http://idp.example.org&entityId=the-entity-id-passed

      1. 自定义

多因素身份验证自定义触发器

要创建自己的自定义 Multifactor Authentication 触发器,您需要设计一个能够解析 CAS 身份验证链中事件的组件。触发器(即事件解析程序)的工作是检查一组条件和要求,并向 CAS 提供一个事件 ID,以指示身份验证流程中的下一步。

例如,典型的自定义触发器可能是:

如果客户端浏览器的 IP 地址与模式 123.+ 匹配,则激活由 mfa-duo 标识的 MFA 提供程序。

请注意:

你本身真的没有做任何定制的事情。所有内置 CAS 触发器在尝试解析下一个事件时的行为方式完全相同。

正如您将在下面观察到的,事件解决机制完全忽略了多因素身份验证;它所关心的只是以非常通用的方式找到链中的下一个事件。当然,我们的自定义实现希望让下一个事件通过提供程序处理某种形式的 MFA,但理论上我们可以将下一个事件解析为 hello-world。

要求

您需要对 Overlay 中的以下模块具有编译时访问权限:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-core-webflow"}

这些是默认随 CAS 一起提供的模块,您应该在构建配置中使用 compile 或 provided scope 标记它们。

设计触发器

下面的示例演示了自定义事件解析程序的合理概述:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

package org.apereo.cas.custom.mfa;

public class ExampleMultifactorAuthenticationTrigger implements MultifactorAuthenticationTrigger {

    @Autowired

    private CasConfigurationProperties casProperties;

   @Override

   public Optional<MultifactorAuthenticationProvider> isActivated(final Authentication authentication,

                                                                  final RegisteredService registeredService,

                                                                  final HttpServletRequest httpServletRequest,

                                                                  final Service service) {

       return Optional.empty();

   }}

注册触发器

然后需要注册事件解析程序触发器。有关更多详细信息,请参阅本指南。

下面的示例演示了自定义事件解析程序的合理概述:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

package org.apereo.cas.custom.config;

@AutoConfiguration@EnableConfigurationProperties(CasConfigurationProperties.class)public class SomethingConfiguration {

    @Bean

    public MultifactorAuthenticationTrigger exampleMultifactorAuthenticationTrigger() {

        return new ExampleMultifactorAuthenticationTrigger();

    }

    

    @Bean

    public CasWebflowEventResolver exampleMultifactorAuthenticationWebflowEventResolver(

        @Qualifier(CasDelegatingWebflowEventResolver.BEAN_NAME_INITIAL_AUTHENTICATION_EVENT_RESOLVER)

        final CasDelegatingWebflowEventResolver initialEventResolver) {

        val resolver = new DefaultMultifactorAuthenticationProviderEventResolver(

            authenticationSystemSupport.getObject(),

            centralAuthenticationService.getObject(),

            servicesManager.getObject(),

            ticketRegistrySupport.getObject(),

            warnCookieGenerator.getObject(),

            authenticationRequestServiceSelectionStrategies.getObject(),

            multifactorAuthenticationProviderSelector.getObject(),

            exampleMultifactorAuthenticationTrigger());

        initialEventResolver.addDelegate(resolver);

        return resolver;

    }}

不要忘记向 CAS 注册配置类。有关更多详细信息,请参阅本指南。

    1. Bypass
      1. 多因素身份验证绕过

每个多因素提供商都配备了允许Bypass的选项。选择提供商来接受身份验证请求后,将查阅绕过规则以计算提供商是否应忽略请求并有条件地跳过 MFA。

      1. 默认旁通

所有提供商都会在咨询任何其他已配置的Bypass提供商之前,先查阅此策略以获取Bypass事件。

绕过规则允许每个提供商使用以下选项:

根据指定的主体属性名称跳过多因素身份验证。

…[和可选]根据指定的主体属性值跳过 MultiFactor 身份验证。

跳过基于指定身份验证属性名称的多因素身份验证。

…[和可选]根据指定的身份验证属性值跳过 Multifactor 身份验证。

根据主要身份验证执行的方法/形式跳过多因素身份验证。

根据 http 请求的属性(如远程 addr/host 和/或标头名称)跳过多因素身份验证。

以下是一些示例:

触发 MFA,除非委托人携带值为 alum 或 member 的 affiliation 属性。

触发 MFA,除非主体带有 superAdmin 属性。

触发 MFA,除非主身份验证的方法是 SPNEGO。

触发 MFA,除非用于主身份验证的凭证是 org.example.MyCredential 类型。

请注意,除了上述选项之外,如果经过身份验证的主体不完全“有资格”进行多因素身份验证,则某些 Multifactor 身份验证提供程序还可能跳过并绕过身份验证请求。请参阅每个特定提供商的文档以了解更多信息。

        1. 配置

为每个提供商 ID 定义多因素身份验证绕过配置。要了解有关可用设置的更多信息,请检查您选择的 Multifactor Authentication Provider 的配置。

请注意,如果给定提供商绕过了多因素身份验证,则票证验证请求应成功通过。在这种情况下,不会将任何身份验证上下文传递回应用程序,并且会替换其他属性,以让应用程序知道提供程序绕过了多因素身份验证。

        1. 按服务绕过

可以通过 CAS 服务注册表按应用程序覆盖 MFA 绕过规则。当 MFA 可以为所有应用程序和服务全局开启,但需要选择性地排除一些时,这非常有用。其访问应绕过 MFA 的服务可以在 CAS 服务注册表中定义如下:

1

2

3

4

5

6

7

8

9

10

{

  "@class" : "org.apereo.cas.services.CasRegisteredService",

  "serviceId" : "^(https|imaps)://.*",

  "id" : 100,

  "multifactorPolicy" : {

    "@class" : "org.apereo.cas.services.DefaultRegisteredServiceMultifactorPolicy",

    "multifactorAuthenticationProviders" : [ "java.util.LinkedHashSet", [ "mfa-duo" ] ],

    "bypassEnabled" : "true"

  }}

        1. 按主体属性和服务Bypass

这与上述选项类似,不同之处在于,如果经过身份验证的主体包含具有指定值的属性,则仅对已注册的应用程序激活Bypass。

1

2

3

4

5

6

7

8

9

10

11

{

  "@class" : "org.apereo.cas.services.CasRegisteredService",

  "serviceId" : "^(https|imaps)://.*",

  "id" : 100,

  "multifactorPolicy" : {

    "@class" : "org.apereo.cas.services.DefaultRegisteredServiceMultifactorPolicy",

    "bypassPrincipalAttributeName": "attributeForBypass",

    "bypassPrincipalAttributeValue": "^bypass-value-[A-Z].+"

    "bypassIfMissingPrincipalAttribute": false

  }}

匹配和比较操作不区分大小写。

 记得

在此处设置 bypassEnabled 标志是不必要的,并且可能会导致副作用。定义主体属性名称和匹配值后,bypassEnabled 都应为 true。

      1. 其他Bypass提供程序

除了可配置的默认绕过规则之外,还可以在计算默认绕过规则后定义和执行以下绕过提供程序。

请记住,以下绕过策略是针对 MultiFactor Authentication Provider 定义的。您需要指示 CAS 根据下面列出的选项为相关多因素身份验证激活绕过策略。每个提供程序都应该有自己的专用设置和属性,允许您控制自己的绕过规则。

Groovy

REST

可以使用您自己设计的 Groovy 脚本来确定多因素身份验证绕过。如果为 true,则脚本的结果表示应继续对请求的提供程序进行 multifactorauthentication。否则,false 表示应跳过并绕过此提供程序的多因素身份验证。

要准备 CAS 以支持 Apache Groovy 并与之集成,请查看本指南。

脚本的大纲可能如下所示:

1

2

3

4

5

6

7

8

9

import java.util.*

boolean run(final Object... args) {

    def (authentication,principal,registeredService,provider,logger,httpRequest) = args

    

    // Stuff happens...

    return false;}

传递的参数如下:

参数

描述

authentication

表示已建立的身份验证事件的对象。

principal

表示已验证的主体的对象。

service

表示注册表中相应服务定义的对象。

provider

表示请求的 Multifactor Authentication Provider 的对象。

logger

负责发出日志消息的对象,例如 logger.info(...)

httpRequest

负责捕获 http 请求的对象。

例如,如果请求多因素身份验证的应用程序在 CAS 服务注册表中以名称 MyApplication 注册,则以下脚本会跳过多因子身份验证,并且仅当提供程序是 Duo Security 且经过身份验证的主体包含名为 mustBypassMfa 且其值包含 true 的属性时,才会跳过多因子身份验证。

1

2

3

4

5

6

7

8

9

10

11

12

13

boolean run(final Object... args) {

    def (authentication,principal,service,provider,logger,httpRequest) = args

    if (service.name == "MyApplication") {

        logger.info("Evaluating principal attributes ${principal.attributes}")

        def bypass = principal.attributes['mustBypassMfa']

        if (bypass.contains("true") && provider.id == "mfa-duo") {

            logger.info("Skipping bypass for principal ${principal.id}")

            return false

        }

    }

    return true}

    1. 故障模式
      1. 多因素身份验证 - 故障模式

可以在这些位置配置故障模式,CAS 将按以下顺序使用第一个定义的故障模式:

已注册的服务多因素身份验证策略

多因素身份验证提供程序配置

全局多因素身份验证配置

如果未遇到可操作的失败模式,则用户将看到一条通用的“Authentication Failed”消息。

      1. 每项服务

给定应用程序的故障模式可以设置为服务定义的 multifactorPolicy 的一部分,这将覆盖在任何其他位置设置的故障模式。

1

2

3

4

5

6

7

8

9

10

{

  "@class" : "org.apereo.cas.services.CasRegisteredService",

  "serviceId" : "^(https|imaps)://.*",

  "id" : 100,

  "multifactorPolicy" : {

    "@class" : "org.apereo.cas.services.DefaultRegisteredServiceMultifactorPolicy",

    "multifactorAuthenticationProviders" : [ "java.util.LinkedHashSet", [ "mfa-duo" ] ],

    "failureMode" : "CLOSED"

  }}

可以接受以下故障模式:

模式

描述

OPEN

禁止 MFA,继续进行身份验证,但不将 MFA 状态/上下文传达给依赖方。

CLOSED

禁止 MFA 并阻止身份验证。

PHANTOM

禁止 MFA,继续进行身份验证并将 MFA 传达给依赖方。

NONE

“I am Feeling lucky” 选项,其中 CAS 根本不会检查失败。

UNDEFINED

默认值表示根本没有设置失败模式。

    1. 提供商选择
      1. 多因素身份验证 - 提供商选择

如果为多因素身份验证事务确定了多个多因素身份验证提供程序,则 CAS 会提供允许手动或动态进行选择的选项。选择策略包括通过排名、以脚本方式选择多因素身份验证提供程序,或允许用户查看选择菜单。

      1. 配置

CAS 配置目录中提供了以下设置和属性:

必填

自选

签名和加密

Groovy 脚本

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.core.provider-selection.cookie.crypto.encryption.key=

加密密钥是一个 JWT,其长度由加密密钥大小设置定义。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.core.util.EncryptionJwtCryptoProperties.

如何配置此属性?

·  cas.authn.mfa.core.provider-selection.cookie.crypto.signing.key=

签名密钥是一个 JWT,其长度由签名密钥大小设置定义。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties.

如何配置此属性?

·  cas.authn.mfa.core.provider-selection.provider-selector-groovy-script.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.SpringResourceProperties.

如何配置此属性?

显示 1 到 3 个条目中的 3 个

上一页1下一页

      1. 排名提供商

有时,当需要升级身份验证时,CAS 需要确定正确的提供商。考虑一下 CASalready 已经建立了一个有/没有提供程序的 SSO 会话,并且已经达到了身份验证级别。另一个 incomingrequest 尝试使用不同且经常相互竞争的身份验证要求来执行该 SSO 会话,该要求可能与 CAS 已建立的身份验证级别不同。具体来说,示例可能是:

CAS 已实现 SSO 会话,但单独的请求现在需要使用 DuoSecurity 进行升级身份验证。

CAS 已实现具有 DuoSecurity 满足的身份验证级别的 SSO 会话,但单独的请求现在需要使用 YubiKey 进行升级身份验证。

默认情况下,CAS 将尝试对身份验证级别进行排名并相互比较。如果 CAS 已达到高于传入请求所需的级别,则不会执行递升式身份验证。如果情况相反,CAS 会将身份验证流路由到所需的身份验证级别,并在成功后调整 SSO 会话,现在满足新的更高身份验证级别。

身份验证方法的排名是通过 CAS 设置中每个提供程序的特定属性完成的。请注意,等级值越高,它在安全等级上的排名就越高。权重值较高的提供商胜过权重值较高的提供商,并覆盖权重值较低的提供商。

      1. Groovy 选择

如果为多因素身份验证事务确定了多个多因素身份验证提供程序,则默认情况下,CAS 将尝试根据提供程序的排名对提供程序集合进行排序,并选择一个优先级最高的提供程序。如果定义了多个触发器,其中每个触发器都决定不同的 MultiFactor 身份验证提供程序,或者同一提供程序实例多次配置了多个实例,则可能会出现此用例。

供应商选择也可以使用 Groovy 脚本策略更动态地进行。

要准备 CAS 以支持 Apache Groovy 并与之集成,请查看本指南。

以下示例应作为如何根据 Groovy 脚本选择多因素提供程序的概述:

1

2

3

4

5

6

7

8

9

import java.util.*

class SampleGroovyProviderSelection {

    String run(final Object... args) {

        def (service,principal,providersCollection,logger) = args

        ...

        return "mfa-duo"

    }}

传递的参数如下:

参数

描述

service

表示请求中提供的传入服务的对象(如果有)。

principal

表示经过身份验证的主体及其属性的对象。

providersCollection

表示符合事务条件的候选多因子提供者集合的对象。

logger

负责发出日志消息的对象,例如 logger.info(...)

要准备 CAS 以支持 Apache Groovy 并与之集成,请查看本指南。

      1. User Selection 菜单

通过 CAS 设置启用多因子提供者选择后,用户将看到执行多因子身份验证请求的候选提供者列表。当然,只有在 CAS 中实际上有多个多因素身份验证提供程序可用并配置时,启用选择菜单才有意义。

    1. 受信任的设备
      1. 概述
        1. 多因素身份验证可信设备/浏览器

除了 CAS 的 MFA 功能提供的触发器之外,在某些情况下,您可能希望让用户决定是否应信任当前浏览器/设备,以便跳过后续的 MFA 请求。目标是让 CAS 在可配置的时间段内记住该决定,并且在决定被强制撤销或被视为过期之前不会用 MFA 打扰用户。

在 MFA 工作流中信任设备意味着会记住该设备的该位置的用户的最终决定。这些密钥安全地组合在一起并分配给最终决策。

在部署之前,您应该考虑以下事项:

是否应选择性地允许用户授权“当前”设备?

…还是 MFA 开始后必须自动发生?

应该如何记住用户的决定和选择?它们存储在哪里?

CAS 应该信任用户决策多长时间?

可信身份验证会话如何传回应用程序?

请注意,默认情况下启用此功能意味着,如果您启用了多个 MFA 提供程序,则它会全局应用于所有 MFA。可以选择禁用此功能,并仅将其应用于选定的一组提供程序。

        1. 配置

通过以下模块提供支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-trusted-mfa"}

        1. 执行器端点

CAS 提供以下端点:

  DELETE

/cas/actuator/multifactorTrustedDevices/{key} 

使用其密钥删除受信任的设备。

  DELETE

/cas/actuator/multifactorTrustedDevices 

  DELETE

/cas/actuator/multifactorTrustedDevices 

  GET

/cas/actuator/multifactorTrustedDevices 

  GET

/cas/actuator/multifactorTrustedDevices/{username} 

  GET

/cas/actuator/multifactorTrustedDevices/export/{username} 

  GET

/cas/actuator/multifactorTrustedDevices/export 

  POST

/cas/actuator/multifactorTrustedDevices/import 

        1. 设置

CAS 配置目录中提供了以下设置和属性:

必填

自选

签名和加密

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.trusted.crypto.encryption.key=

加密密钥是一个 JWT,其长度由加密密钥大小设置定义。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.core.util.EncryptionJwtCryptoProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.crypto.signing.key=

签名密钥是一个 JWT,其长度由签名密钥大小设置定义。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.device-fingerprint.cookie.crypto.encryption.key=

加密密钥是一个 JWT,其长度由加密密钥大小设置定义。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.core.util.EncryptionJwtCryptoProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.device-fingerprint.cookie.crypto.signing.key=

签名密钥是一个 JWT,其长度由签名密钥大小设置定义。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties.

如何配置此属性?

显示 1 到 4 的 4 个条目

上一页1下一页

        1. 身份验证上下文

如果由于可信身份验证决策而绕过 MFA 请求,则应用程序将收到一个特殊属性,作为指示此行为的验证负载的一部分。应用程序必须进一步考虑以下情况:它们请求 MFAmode,但在响应中没有收到 MFAmode 的确认,因为身份验证会话是受信任的并且绕过了 MFA。

        1. 设备指纹

请参阅本指南。

        1. Bypass

请参阅本指南。

        1. 存储

如果您什么都不做,默认情况下,记录将保留在运行时内存中,并缓存可配置的时间。如果您的部署非常小,用户群较小,或者您希望演示该功能,则此功能最有用。还会自动安排后台清理进程来清理过期的记录。

还可以使用以下任一策略管理设备注册。

存储

描述

JSON 格式

请参阅本指南

JDBC

请参阅本指南

MongoDb 数据库

请参阅本指南

DynamoDb

请参阅本指南

Redis

请参阅本指南

REST

请参阅本指南

      1. Bypass
        1. 绕过 - 多因素身份验证受信任的设备/浏览器

作为 MFA 工作流程的一部分,用户可以选择不向 CAS 注册受信任的设备。此外,可以按应用程序绕过 MFA 的受信任设备工作流程:

1

2

3

4

5

6

7

8

9

10

{

  "@class": "org.apereo.cas.services.CasRegisteredService",

  "serviceId": "^(https|imaps)://app.example.org",

  "name": "Example",

  "id": 1,

  "multifactorPolicy" : {

    "@class" : "org.apereo.cas.services.DefaultRegisteredServiceMultifactorPolicy",

    "bypassTrustedDeviceEnabled" : true

  }}

      1. 设备指纹
        1. 设备指纹 - 多因素身份验证受信任的设备/浏览器

为了区分受信任的设备,我们需要计算一个唯一标识各个设备的设备指纹。此设备指纹的计算可以利用请求中的多个组件的组合。

CAS 配置目录中提供了以下设置和属性:

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。

Show  entries

搜索:

·  cas.authn.mfa.trusted.device-fingerprint.core.component-separator=@

用于设备指纹的 Component Separator。

 org.apereo.cas.configuration.model.support.mfa.trusteddevice.DeviceFingerprintProperties.Core.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

        1. 策略

设备指纹的计算方法有以下几种:

客户端 IP 地址

随机生成的 Cookie 加上客户端 IP(默认)

GeoLocation 地址。您需要确保允许 CAS 查询和处理浏览器提供的地理数据。

User-agent 标头

通过客户端 Javascript 计算并在身份验证尝试期间收集的浏览器指纹。

客户端 IP

饼干

用户代理

浏览器

地理位置

CAS 配置目录中提供了以下设置和属性:

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。

Show  entries

搜索:

·  cas.authn.mfa.trusted.device-fingerprint.client-ip.enabled=false

此组件是否已启用。

 org.apereo.cas.configuration.model.support.mfa.trusteddevice.DeviceFingerprintProperties.ClientIp.

如何配置此属性?

·  cas.authn.mfa.trusted.device-fingerprint.client-ip.order=0

指示生成设备指纹时组件的顺序。

 org.apereo.cas.configuration.model.support.mfa.trusteddevice.DeviceFingerprintProperties.ClientIp.

如何配置此属性?

显示 1 到 2 的 2 个条目

上一页1下一页

      1. 清洗
        1. 多因素身份验证可信设备/浏览器 - 清理

必须记住用户的决定,并在以后的后续请求中进行处理。还会自动安排后台清理进程,以定期扫描选定的存储库/数据库/注册表,并根据配置的阈值参数删除过期的记录。

 清洁剂的使用

在群集 CAS 部署中,最好仅在一个指定的 CAS 节点上运行清理程序,并通过 CAS 设置在所有其他节点上将其关闭。保持清理程序在所有节点上运行可能会导致严重的性能和锁定问题。

CAS 配置目录中提供了以下设置和属性:

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。

Show  entries

搜索:

·  cas.authn.mfa.trusted.cleaner.schedule.cron-expression=

一个类似 cron 的表达式,扩展了通常的 UN*X 定义,以包括秒、分钟、小时、月日、月和星期几的触发器。例如,0 * * * * MON-FRI 表示工作日每分钟一次(在分钟的顶部 - 第 0 秒),或 0 0 0 * * * 表示每天午夜。* 请注意,定义 cron 表达式时,必须删除 start delay 和 repeat interval 设置并将其设置为空白。

 org.apereo.cas.configuration.model.support.quartz.SchedulingProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.cleaner.schedule.cron-time-zone=

将解析 cron 表达式的时区。默认情况下,此属性为空(即将使用调度程序的时区)。

 org.apereo.cas.configuration.model.support.quartz.SchedulingProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.cleaner.schedule.enabled-on-host=.*

如果此属性与 CAS 服务器的主机名不匹配,则覆盖 SchedulingProperties#enabled 属性值 true。如果在 statefulset 中部署带有镜像的 CAS,其中所有名称都是可预测的,但很难为不同的服务器使用不同的配置,那么这可能很有用。该值可以是确切的主机名,也可以是将用于匹配主机名的正则表达式。

此设置支持正则表达式模式。[?].

 org.apereo.cas.configuration.model.support.quartz.SchedulingProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.cleaner.schedule.enabled=true

是否应启用计划程序来计划作业运行。

 org.apereo.cas.configuration.model.support.quartz.SchedulingProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.cleaner.schedule.repeat-interval=PT2M

为数据存储实施重新加载数据的重复间隔的字符串表示形式。这是连续任务执行之间的超时。

此设置支持java.time.Duration 语法 [?]。

 org.apereo.cas.configuration.model.support.quartz.SchedulingProperties.

如何配置此属性?

显示 1 到 5 的 6 个条目

上一页12下一页

      1. 存储
        1. DynamoDb
          1. DynamoDb 设备存储 - 多因素身份验证可信设备/浏览器

用户决策也可以保留在 DynamoDb 实例中。

通过以下模块提供支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-trusted-mfa-dynamodb"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.trusted.dynamo-db.credential-access-key=

使用 AWS 提供的访问密钥进行身份验证。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.dynamodb.DynamoDbTrustedDevicesMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.dynamo-db.credential-secret-key=

使用 AWS 提供的密钥进行身份验证。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.dynamodb.DynamoDbTrustedDevicesMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.dynamo-db.dax.url=

Cluster url 的 URL 中。例如,dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com。

 org.apereo.cas.configuration.model.support.dynamodb.DynamoDbDaxProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.dynamo-db.endpoint=

AWS 自定义终端节点。

 org.apereo.cas.configuration.model.support.dynamodb.DynamoDbTrustedDevicesMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.dynamo-db.region=

使用的 AWS 区域。

 org.apereo.cas.configuration.model.support.dynamodb.DynamoDbTrustedDevicesMultifactorProperties.

如何配置此属性?

显示 1 到 5 个条目中的 5 个

上一页1下一页

        1. JDBC
          1. JDBC 设备存储 - 多因素身份验证可信设备/浏览器

用户决策也可以保存在您自己选择的常规 RDBMS 中。

通过以下模块提供支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-trusted-mfa-jdbc"}

要了解如何配置数据库驱动程序,请参阅本指南。

CAS 配置目录中提供了以下设置和属性:

必填

自选

Hibernate 和 JDBC

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.trusted.jpa.driver-class=org.hsqldb.jdbcDriver

用于连接到数据库的 JDBC 驱动程序。

 org.apereo.cas.configuration.model.support.mfa.trusteddevice.JpaTrustedDevicesMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.jpa.password=

数据库连接密码。

 org.apereo.cas.configuration.model.support.mfa.trusteddevice.JpaTrustedDevicesMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.jpa.url=jdbc:hsqldb:mem:cas-hsql-database

数据库连接 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.trusteddevice.JpaTrustedDevicesMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.jpa.user=sa

数据库用户必须具有足够的权限,才能在需要时处理架构更改和更新。

 org.apereo.cas.configuration.model.support.mfa.trusteddevice.JpaTrustedDevicesMultifactorProperties.

如何配置此属性?

显示 1 到 4 的 4 个条目

上一页1下一页

        1. JSON 格式
          1. JSON 设备存储 - 多因素身份验证可信设备/浏览器

记录可以保存在静态 json 资源中,其路径是通过 CAS 设置定义的。如果您的部署非常小,用户群较小,或者您希望演示该功能,这也最有用。

CAS 配置目录中提供了以下设置和属性:

必填

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.trusted.json.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.support.mfa.trusteddevice.JsonTrustedDevicesMultifactorProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

        1. MongoDb 数据库
          1. MongoDb 设备存储 - 多因素身份验证可信设备/浏览器

用户决策也可以保存在 MongoDb 实例中。

通过以下模块提供支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-trusted-mfa-mongo"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.trusted.mongo.client-uri=

mongodb 实例的连接 URI。这通常采用 mongodb://user:psw@ds135522.somewhere.com:35522/db 的形式。如果未指定,将回退到其他单个设置。如果指定,则接管所有其他设置(如果适用)。

 org.apereo.cas.configuration.model.support.mfa.trusteddevice.MongoDbTrustedDevicesMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.mongo.collection=

要获取和/或创建的 MongoDb 数据库集合名称。

 org.apereo.cas.configuration.model.support.mfa.trusteddevice.MongoDbTrustedDevicesMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.mongo.database-name=

MongoDb 数据库实例名称。

 org.apereo.cas.configuration.model.support.mfa.trusteddevice.MongoDbTrustedDevicesMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.mongo.host=localhost

用于身份验证的 MongoDb 数据库主机。可以定义多个主机地址,用逗号分隔。如果定义了多个主机,则假定每个主机也包含端口(如果有)。否则,配置可能会回退到定义的端口。

 org.apereo.cas.configuration.model.support.mfa.trusteddevice.MongoDbTrustedDevicesMultifactorProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.mongo.password=

用于身份验证的 MongoDb 数据库密码。

 org.apereo.cas.configuration.model.support.mfa.trusteddevice.MongoDbTrustedDevicesMultifactorProperties.

如何配置此属性?

显示 1 到 5 的 7 个条目

上一页12下一页

        1. Redis
          1. Redis 设备存储 - 多因素身份验证可信设备/浏览器

用户决策也可以保存在 Redis 实例中。

通过以下模块提供支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-trusted-mfa-redis"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.trusted.redis.cluster.nodes[0].host=

服务器的主机地址。

 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.redis.cluster.nodes[0].port=

服务器的端口号。

 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.redis.cluster.nodes[0].replica-of=

设置 master 节点的 id。

 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.redis.cluster.nodes[0].type=

指示此节点的类型/角色。接受的值为 MASTER, REPLICA 。

 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties.

如何配置此属性?

·  cas.authn.mfa.trusted.redis.cluster.password=

集群连接的密码。

 org.apereo.cas.configuration.model.support.redis.RedisClusterProperties.

如何配置此属性?

显示 1 到 5 个条目,共 14 个条目

上一页123下一页

        1. REST
          1. REST 设备存储 - 多因素身份验证可信设备/浏览器

如果您希望完全委托用户决策的管理、验证和持久性,您可以设计一个 REST API,CAS 应联系该 API 以验证用户决策并记住这些决策以备后用。

通过以下模块提供支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-trusted-mfa-rest"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.mfa.trusted.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.support.mfa.trusteddevice.RestfulTrustedDevicesMultifactorProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

检索可信记录

一个 GET 请求,返回所有有效且未过期的可信身份验证记录。

1

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET "${endpointUrl}/[principal|date]"

Response payload 可能会生成包含以下内容的对象集合:

1

2

3

4

5

6

7

8

9

10

[

    {

      "principal": "casuser",

      "deviceFingerprint": "...",

      "recordDate": "YYYY-MM-dd",  

      "expirationDate":  "YYYY-MM-dd",

      "name": "Office",

      "recordKey": "..."

    }]

存储可信记录

存储新受信任的设备记录的 POST 请求。

1

curl -H "Content-Type: application/json" -X POST -d '${json}' ${endpointUrl}

POST 数据将匹配以下块:

1

2

3

4

5

6

7

8

{

    "principal": "...",

    "deviceFingerprint": "...",

    "recordDate": "...",    

    "expirationDate":  "YYYY-MM-dd",

    "name": "...",

    "recordKey": "..."}

响应有效负载应生成 200 http 状态代码,以指示操作成功。

    1. 适应的
      1. 概述
        1. 自适应身份验证

CAS 中的自适应身份验证允许您根据客户端浏览器和/或设备的某些特征接受或拒绝身份验证请求。配置后,您将获得阻止某些浏览器代理提交的来自特定位置的身份验证请求的选项。例如,您可能认为从 London, UK 提交的身份验证请求被视为可疑的,或者您可能希望阻止从 Internet Explorer 提交的请求等。

自适应身份验证还可以配置为根据特定日期和时间触发多因素。例如,您可能希望在选定的日期触发多因子,或者当前时间在晚上 11 点之后或早上 6 点之前。每个规则块都可以分配给一个 mfa 提供程序,其中规则的成功匹配允许执行多因子触发器。

您可能还有兴趣查看基于风险的身份验证。

        1. 配置

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.adaptive.policy.require-timed-multifactor[0].provider-id=

应触发的 mfa 提供程序 ID。

 org.apereo.cas.configuration.model.core.authentication.TimeBasedAuthenticationProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

要启用自适应身份验证,您需要允许 CAS 对身份验证请求进行地理定位。要了解更多信息,请参阅本指南

        1. IP 情报

CAS 使您能够检查客户端 IP 地址并决定是否应授予访问权限。这对于检测机器人、代理或 VPN 流量并保护您的部署免受欺诈、自动攻击、爬虫等的侵害可能很有用。

要了解更多信息,请参阅本指南。

      1. 地理追踪
        1. 概述
          1. GeoTracking 身份验证请求

身份验证请求可以映射并转换为物理位置。

通过在 WAR 覆盖中包含以下依赖项来启用支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-geolocation"}

          1. 地理位置提供商

CAS 支持以下地理定位提供商:

存储

描述

谷歌地图

请参阅本指南

Maxmind

请参阅本指南

IP 地理位置

请参阅本指南

Groovy

请参阅本指南

        1. 谷歌地图
          1. GeoTracking 身份验证 - Google Maps

使用 Google Maps Geocoding API 将身份验证请求转换为地理位置。

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-geolocation-googlemaps"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.geo-location.google-maps.api-key=

通过 API 密钥对 google maps 进行身份验证。

 org.apereo.cas.configuration.model.support.geo.googlemaps.GoogleMapsProperties.

如何配置此属性?

·  cas.geo-location.google-maps.client-id=

通过客户端 ID 对 google maps 进行身份验证。

 org.apereo.cas.configuration.model.support.geo.googlemaps.GoogleMapsProperties.

如何配置此属性?

·  cas.geo-location.google-maps.client-secret=

通过客户端密钥对 google maps 进行身份验证。

 org.apereo.cas.configuration.model.support.geo.googlemaps.GoogleMapsProperties.

如何配置此属性?

显示 1 到 3 个条目中的 3 个

上一页1下一页

        1. Maxmind

GeoTracking 身份验证 - Maxmind

使用 Maxmind 将身份验证请求转换为地理位置。

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-geolocation-maxmind"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

·  cas.geo-location.maxmind.city-database=

包含城市的数据库文件位置的路径。

 org.apereo.cas.configuration.model.support.geo.maxmind.MaxmindProperties.

如何配置此属性?

·  cas.geo-location.maxmind.country-database=

包含国家/地区的数据库文件位置的路径。

 org.apereo.cas.configuration.model.support.geo.maxmind.MaxmindProperties.

如何配置此属性?

搜索:

显示 1 到 2 的 2 个条目

上一页1下一页

        1. Groovy
          1. GeoTracking 身份验证 - Groovy

使用 Groovy 脚本将身份验证请求转换为地理位置。

CAS 配置目录中提供了以下设置和属性:

必填

Groovy 脚本

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.geo-location.groovy.location=

在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。

 org.apereo.cas.configuration.model.SpringResourceProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

脚本的大纲可能如下所示:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

import org.apereo.cas.authentication.adaptive.geo.*import org.springframework.context.*

GeoLocationResponse locateByAddress(Object... args) {

    def (address,appContext,logger) = args

    logger.info("Requesting info on ${address.hostAddress}")

    return GeoLocationResponse

            .builder()

            .latitude(38)

            .longitude(-77)

            .build()

            .addAddress("USA")}

GeoLocationResponse locateByCoordinates(Object... args) {

    def (latitude,longitude,appContext,logger) = args

    return GeoLocationResponse

            .builder()

            .latitude(latitude)

            .longitude(longitude)

            .build()

            .addAddress("USA")}

可以传递的参数如下:

参数

描述

address

应进行地理位置定位的 IP 地址。

latitude

纬度地理坐标测量。

longitude

经度地理坐标测量。

appContext

Spring 应用程序上下文。

logger

负责发出日志消息的对象,例如 logger.info(...)

要准备 CAS 以支持 Apache Groovy 并与之集成,请查看本指南。

        1. IP 地理位置
          1. GeoTracking 身份验证 - IP GeoLocation

使用 IP GeoLocation API 将身份验证请求转换为地理位置。

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-geolocation-ip"}

CAS 配置目录中提供了以下设置和属性:

必填

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

·  cas.geo-location.ip-geo-location.api-key=

此集成所需的 API 密钥。

 org.apereo.cas.configuration.model.support.geo.ip.IPGeoLocationProperties.

如何配置此属性?

搜索:

显示 1 到 1 的 1 个条目

上一页1下一页

      1. IP 情报
        1. 自适应身份验证 - IP 智能

CAS 使您能够检查客户端 IP 地址并决定是否应授予访问权限。这对于检测爬虫程序、代理或 VPN 流量并保护您的部署免受欺诈、自动攻击、爬虫等的侵害可能很有用。

IP 地址检查的结果可能会禁止并请求请求,允许其通过,或提供分数以表明 IP 地址可能有问题的可能性。如果结果是 ranked score,则将其与配置的风险阈值进行比较,以确定请求是否可以继续。

禁止的 IP 地址可以在 CAS 设置中定义为模式,也可以使用下面列出的策略对其进行检查。

休息

槽的

黑点

客户端 IP 地址在 GET 请求下作为标头 clientIpAddress 提交到 REST 终端节点。预期结果状态代码如下:

法典

描述

401、403 页

IP 地址被禁止,请求将被拒绝。

200 元、202 元

允许 IP 地址,请求可以继续。

所有其他

响应正文应包含介于 1 和 0 之间的分数(1=Banned和 0=Allowed)。

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.adaptive.ip-intel.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

 org.apereo.cas.configuration.model.core.authentication.RestfulAdaptiveAuthenticationIPIntelligenceProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

      1. 风险评估
        1. 概述
          1. 基于风险的身份验证

基于风险的身份验证允许 CAS 根据过去的用户行为和收集的身份验证事件、统计数据等来检测可疑和看似欺诈的身份验证请求。在确定了主体的主要身份验证之后,通过许多可配置的标准和栅栏分析身份验证事务,以确定尝试的风险程度。评估步骤的结果是累积风险评分,然后根据 CAS 操作员设置的风险阈值对其进行权衡。如果认为身份验证尝试的风险远高于风险阈值,则可能允许 CAS 采取措施并减轻该风险。

总而言之,讲述的故事是:

如果身份验证请求至少有 [X%] 风险,请采取措施来降低该风险。

此功能的功能完全依赖于过去收集的统计信息和身份验证事件。没有数据,就没有什么可分析的,也没有风险可以检测。

请注意,对尝试的评估和风险缓解都记录在审核日志中。

 自适应身份验证

如果您需要根据请求的各种特征预先评估身份验证尝试,您可能会对本指南感兴趣。

需要记住的几点说明:

您必须允许并配置 CAS 以跟踪和记录身份验证事件。

您必须允许并配置 CAS 以对身份验证请求进行地理定位。

如果所选应急计划是强制用户进入多因素身份验证流程,则必须为多因素身份验证配置CAS和相关提供商。

          1. 配置

通过在覆盖中包含以下依赖项来启用支持:

Apache Maven

格拉德尔

BOM - 弹簧

好 - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

    /*

        The following platform references should be included automatically and are listed here for reference only.

        implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

        implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

        

    */

    implementation "org.apereo.cas:cas-server-support-electrofence"}

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show  entries

搜索:

·  cas.authn.adaptive.risk.core.threshold=0.6

风险阈值系数,超过该系数,身份验证事件可能被视为有风险。

 org.apereo.cas.configuration.model.core.authentication.risk.RiskBasedAuthenticationCoreProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

          1. 风险计算

您需要配置 CAS,使其能够根据过去的用户行为和收集的身份验证事件、统计信息等来检测可疑和看似欺诈的身份验证请求。

有关更多信息,请参阅本指南。

          1. 风险缓解

一旦身份验证尝试被认为有风险,您需要配置 CAS 以决定如何处理和响应身份验证尝试。

有关更多信息,请参阅本指南。

        1. 计算
          1. 风险计算

可以启用一个或多个风险计算器,以允许分析身份验证请求。

风险计算策略的高级说明如下:

如果主体根本没有记录的事件,则认为该请求可疑。

如果基于活动条件的主体记录的事件数与事件总数匹配,则认为请求是安全的。

IP地址

浏览器用户代理

地理位置

日期/时间

设备指纹

此计算器查看与客户端 IP 地址匹配的过去身份验证事件。如果您希望将来自未知 IP 地址的身份验证请求视为用户可疑,则适用。这里的故事是这样的:

查找与当前客户端 IP 地址匹配的所有过去身份验证事件,并计算平均分数。

CAS 配置目录中提供了以下设置和属性:

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。

Show  entries

搜索:

·  cas.authn.adaptive.risk.ip.enabled=false

启用 IP 地址检查和条件以计算有风险的身份验证尝试。

 org.apereo.cas.configuration.model.core.authentication.risk.RiskBasedAuthenticationIpAddressProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

        1. 缓解
          1. 风险缓解

一旦身份验证尝试被认为有风险,就可以启用应急计划来降低风险。如果配置并允许,CAS可以通过电子邮件和短信通知委托人和部署者。

政策决定包括以下类别:

您可以决定阻止身份验证流继续进行并禁止建立SSO会话。

您可以强制身份验证事件进入由提供者ID标识的多因素选择流。

以下设置和属性可从CAS配置曲库获得:

必填

可选

笔记

下面列出的配置设置在CAS配置元数据中标记为必需。此标志表示可能需要设置的存在来激活或影响CAS功能的行为,通常应该进行审查、可能拥有和调整。如果设置被分配了默认值,则不需要严格将设置放入配置副本中,但仍应审查它以确保它符合您的部署期望。

Show  entries

搜索:

·  cas.authn.adaptive.policy.require-timed-multifactor[0].provider-id=

应触发的mfa提供程序ID。

 org.apereo.cas.configuration.model.core.authentication.TimeBasedAuthenticationProperties.

如何配置此属性?

显示1到1个条目中的1个

上一个1下一个

          1. 消息和通知

当CAS对有风险的身份验证尝试做出反应和响应时,您可以选择通知主体和部署者有关CAS策略决定的信息。

以下设置和属性可从CAS配置曲库获得:

必填

可选

电子邮件服务器

笔记

下面列出的配置设置在CAS配置元数据中标记为必需。此标志表示可能需要设置的存在来激活或影响CAS功能的行为,通常应该进行审查、可能拥有和调整。如果设置被分配了默认值,则不需要严格将设置放入配置副本中,但仍应审查它以确保它符合您的部署期望。

Show  entries

搜索:

·  cas.authn.adaptive.risk.response.mail.attribute-name=

指示此邮件的目标电子邮件地址的主体属性名称。这些属性必须已经被解析并可供CAS主体使用。当指定多个属性时,然后根据可用的CAS主体检查每个属性以定位电子邮件地址值,这可能会导致发送多封电子邮件。

此设置支持Spring表达式语言。

 org.apereo.cas.configuration.model.support.email.EmailProperties.

如何配置此属性?

·  cas.authn.adaptive.risk.response.mail.from=

来自地址的电子邮件。

 org.apereo.cas.configuration.model.support.email.EmailProperties.

如何配置此属性?

·  cas.authn.adaptive.risk.response.mail.subject=

主题可以定义为verbaitm,也可以使用语法#{subject-language-key}指向语言包中的消息键。此键应指向在适当的语言包中定义的有效消息,然后通过活动语言环境获取该消息。如果语言代码无法解析真正的主题,则将使用默认主题值。

此设置支持Spring表达式语言。

 org.apereo.cas.configuration.model.support.email.EmailProperties.

如何配置此属性?

·  cas.authn.adaptive.risk.response.sms.attribute-name=

指示此SMS消息的目标电话号码的主体属性名称。该属性必须已被解析并可供CAS主体使用。

此设置支持Spring表达式语言。

 org.apereo.cas.configuration.model.support.sms.SmsProperties.

如何配置此属性?

·  cas.authn.adaptive.risk.response.sms.from=

消息的发件人地址。

 org.apereo.cas.configuration.model.support.sms.SmsProperties.

如何配置此属性?

显示6个条目中的1到5个

上一个12下一个

要了解有关可用选项的更多信息,请参阅本指南或本指南。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/970280.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode1706

LeetCode1706 目录 LeetCode1706题目描述示例题目理解问题描述 示例分析思路分析问题核心 代码段代码逐行讲解1. 获取网格的列数2. 初始化结果数组3. 遍历每个球4. 逐行模拟下落过程5. 检查是否卡住6. 记录结果7. 返回结果数组 复杂度分析时间复杂度空间复杂度 总结的知识点1. …

坐井说天阔---DeepSeek-R1

前言 DeepSeek-R1这么火&#xff0c;虽然网上很多介绍和解读&#xff0c;但听人家的总不如自己去看看原论文。于是花了大概一周的时间&#xff0c;下班后有进入了研究生的状态---读论文。 DeepSeek这次的目标是探索在没有任何监督数据的情况下训练具有推理能力的大模型&#…

moveable 一个可实现前端海报编辑器的 js 库

目录 缘由-胡扯本文实验环境通用流程1.基础移动1.1 基础代码1.1.1 data-* 解释 1.2 操作元素创建1.3 css 修饰1.4 cdn 引入1.5 js 实现元素可移动1.6 图片拖拽2.缩放3.旋转4.裁剪 懒得改文案了&#xff0c;海报编辑器换方案了&#xff0c;如果后面用别的再更。 缘由-胡扯 导火…

滑动窗口算法篇:连续子区间与子串问题

1.滑动窗口原理 那么一谈到子区间的问题&#xff0c;我们可能会想到我们可以用我们的前缀和来应用子区间问题&#xff0c;但是这里对于子区间乃至子串问题&#xff0c;我们也可以尝试往滑动窗口的思路方向去进行一个尝试&#xff0c;那么说那么半天&#xff0c;滑动窗口是什么…

resultType,jdbcType,parameterType区别

1. resultType 用途&#xff1a; 用于定义 SQL 查询结果的返回类型。 直接将查询结果映射到指定的 Java 类型&#xff08;基本类型、POJO 或 Map&#xff09;。 特点&#xff1a; 要求数据库字段名与 Java 对象的属性名完全一致&#xff08;或通过别名匹配&#xff09;。 …

数字化转型导师坚鹏:AI大模型DEEPSEEK使用方法及案例

AI大模型DEEPSEEK使用方法及案例 ——提升职场人士工作效率 打造数字化转型新利器 课程背景&#xff1a; 很多企业和员工存在以下问题&#xff1a; 不知道DEEPSEEK的发展现状及价值&#xff1f;不知道DEEPSEEK提示词设计方法论&#xff1f;不知道DEEPSEEK的针对性使用案例&…

Spring Boot项目接收前端参数的11种方式

大家好&#xff0c;我是。在前后端项目交互中&#xff0c;前端传递的数据可以通过HTTP请求发送到后端&#xff0c; 后端在Spring Boot中如何接收各种复杂的前端数据呢&#xff1f;这篇文章总结了11种在Spring Boot中接收前端数据的方式。 1 搭建项目 1.通过Spring Initializr…

Deesek:新一代数据处理与分析框架实战指南

Deesek&#xff1a;新一代数据处理与分析框架实战指南 引言 在大数据时代&#xff0c;高效处理和分析海量数据是企业和开发者面临的核心挑战。传统工具如Pandas、Spark等虽功能强大&#xff0c;但在实时性、易用性或性能上仍有提升空间。Deesek&#xff08;假设名称&#xff…

算法笔记 02 —— 入门模拟

本系列为胡凡编著的算法笔记当中代码部分的精简版整理&#xff0c;笔者也在同时准备Leetcode刷题和实习面试&#xff0c;希望为有一定编码和数据结构基础的同学提供一份系统型的参考&#xff0c;以方便遗忘时的算法查阅、期末复习总览以及C学习参照。 目录 01 简单模拟 Ⅰ害…

Node.js技术原理分析系列——Node.js调试能力分析

本文由体验技术团队屈金雄原创。 Node.js 是一个开源的、跨平台的 JavaScript 运行时环境&#xff0c;它允许开发者在服务器端运行 JavaScript 代码。Node.js 是基于 Chrome V8引擎构建的&#xff0c;专为高性能、高并发的网络应用而设计&#xff0c;广泛应用于构建服务器端应…

LLaMA-Factory DeepSeek-R1 模型 微调基础教程

LLaMA-Factory 模型 微调基础教程 LLaMA-FactoryLLaMA-Factory 下载 AnacondaAnaconda 环境创建软硬件依赖 详情LLaMA-Factory 依赖安装CUDA 安装量化 BitsAndBytes 安装可视化微调启动 数据集准备所需工具下载使用教程所需数据合并数据集预处理 DeepSeek-R1 可视化微调数据集处…

Spring Boot实战:拦截器

一.拦截器快速入门 1.1了解拦截器 什么是拦截器&#xff1a; 概念 &#xff1a;拦截器是Spring框架提供的核功能之, 主要来拦截的请求, 在指定法前后, 根据业务需要执预先设定的代码。 也就是说, 允许开发员提前预定义些逻辑, 在的请求响应前后执. 也可以在请求前阻其执. …

LabVIEW 用户界面设计基础原则

在设计LabVIEW VI的用户界面时&#xff0c;前面板的外观和布局至关重要。良好的设计不仅提升用户体验&#xff0c;还能提升界面的易用性和可操作性。以下是设计用户界面时的一些关键要点&#xff1a; 1. 前面板设计原则 交互性&#xff1a;组合相关的输入控件和显示控件&#x…

qt-C++笔记之QGraphicsScene和 QGraphicsView中setScene、通过scene得到view、通过view得scene

qt-C++笔记之QGraphicsScene和 QGraphicsView中setScene、通过scene得到view、通过view得scene code review! 文章目录 qt-C++笔记之QGraphicsScene和 QGraphicsView中setScene、通过scene得到view、通过view得scene1.`setScene` 方法2.通过 `scene` 获取它的视图 (`views()`)…

CI/CD部署打包方法

项目目前部署方式&#xff1a; 各地区服务器打包同一个runner&#xff08;需要互相排队&#xff0c;不并发&#xff09;各地区客户端可以并发打包&#xff0c;同个地区客户端打多个包需要排队 部署方法 下载gitlab-runner&#xff1a; https://docs.gitlab.com/runner/insta…

【含文档+源码】基于Web的在线课堂测试课程考评系统的开发与实现

项目介绍 本课程演示的是一款 基于Web的在线课堂测试课程考评系统的开发与实现&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套…

【vscode】VScode Remote SSH配置

VScode使用remote ssh 到服务器上的Docker容器中 1. 配置远程服务器docker容器的端口映射&#xff0c;例如将服务器的2222端口映射到container的22端口(默认) 1.1 在容器系统的sshd_config文件中配置参数 #配置文件 vim /etc/ssh/sshd_config #打开端口号 Port 221.2 建立容…

2月第九讲“探秘Transformer系列”

0.1 流程 使用Transformer来进行文本生成其实就是用模型来预测下一个词&#xff0c;完整流程包括多个阶段&#xff0c;如分词、向量化、计算注意力和采样&#xff0c;具体运作流程如下&#xff1a; 分词&#xff08;tokenize&#xff09;。把用户的输入文本&#xff08;此处假…

crewai框架(0.83.0)添加知识源

官方的文档如下 https://docs.crewai.com/concepts/knowledge但是不知道为什么&#xff0c;可能是版本的问题&#xff08;我用的是0.86.0&#xff09;&#xff0c;参考官方文档的配置我会报错&#xff0c;并且也导入不了数据库&#xff0c;也可能用的不是官方API。本文以常用的…

deepseek + embeding模型搭建本地知识库

上一篇文章讲了ollamadeepseek模型的本地化部署&#xff0c;具体能部署哪一款取决于你的土豪程度&#xff1a; 今天的目标是本地安装部署embeding模型&#xff0c;实现LLMembeding模型的rag知识库的本地化部署&#xff0c;包括&#xff1a; embeding模型的本地化部署anyhingL…