沈阳成创网站建设公司外链生成
如有疑问,请看视频:CAS单点登录(第7版)
CAS 也称为使用条款或 EULA,它允许用户在继续应用程序之前接受使用策略。此功能的生产级部署需要修改流,以便通过外部存储机制(如 LDAP 或 JDBC)处理策略的检索和/或接受。
通过在 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-aup-webflow"} |
通过修改 casAcceptableUsagePolicyView.html 来自定义策略。请参阅本指南以了解有关用户界面自定义的更多信息。请注意,如果您希望动态更改页面以呈现不同的文本等,则此处的视图应该具有对已解析的主体和属性的完全访问权限。
Webflow 序列
请记住,可接受使用策略在 CAS 已建立身份验证委托人的成功身份验证事件后执行,因为策略记录与已识别的用户记录紧密相关。在身份验证事件之前实现此功能需要对 CAS webflow 进行相当多的修改,以及存储和记住决策的替代方法,例如 cookie 或浏览器存储等。
CAS 配置目录中提供了以下设置和属性:
必填
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.acceptable-usage-policy.core.aup-attribute-name=aupAccepted AUP 属性来确定是否已接受策略。该属性应包含一个布尔值,其中 true 表示已接受策略,false 表示不接受策略。从配置的源中获取委托人的该属性,并比较正确的匹配项以确定策略状态。如果未找到该属性,则策略状态将被视为 denied。 org.apereo.cas.configuration.model.support.aup.AcceptableUsagePolicyCoreProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.core.enabled=true 允许在启动时关闭 AUP。 org.apereo.cas.configuration.model.support.aup.AcceptableUsagePolicyCoreProperties. 如何配置此属性? |
显示 1 到 2 的 2 个条目
上一页1下一页
可以按服务禁用和跳过 acceptable usage policy:
1 2 3 4 5 6 7 8 9 10 11 12 | { "@class": "org.apereo.cas.services.CasRegisteredService", "serviceId": "https://app.example.org", "name": "Example", "id": 1, "acceptableUsagePolicy": { "@class": "org.apereo.cas.services.DefaultRegisteredServiceAcceptableUsagePolicy", "enabled": true, "messageCode": "example.code", "text": "example text" }} |
分配给每个服务的策略包括以下功能:
田 | 描述 |
enabled | 控制此服务的策略是活动/非活动。默认值为 true。 |
messageCode | 链接到包含实际策略文本的 CAS 语言包的策略语言代码。 |
text | 应为此应用程序显示的策略文本。 |
使用策略用户决策通过以下方式存储和记住。
在几乎所有存储策略中,CAS 都允许部署者通过 CAS 单值boolean属性检测当前用户的策略选择。必须使用 CAS 属性解析策略解析该属性。如果该属性包含值 false,则 CAS 将尝试请求接受策略。接受策略后,结果将存储回存储中。
存储 | 描述 |
Default | 请参阅本指南。 |
Groovy | 请参阅本指南。 |
LDAP 协议 | 请参阅本指南。 |
MongoDb 数据库 | 请参阅本指南。 |
Redis | 请参阅本指南。 |
JDBC | 请参阅本指南。 |
REST | 请参阅本指南。 |
自定义 | 请参阅本指南。 |
上述存储选项也可用于获取可接受的使用策略,并将其传递给相应的视图,以便在属性 aupPolicy 下显示和接受。策略术语可以引用在 CAS 语言包中找到的特定消息代码,也可以包含将用于逐字显示的默认策略文本。
除非存储选项覆盖并专门化此功能,否则获取策略术语的默认行为基于 CAS 属性中定义的单值属性,该属性通常可能指示用户状态或成员身份。该属性值将附加到语言代码 screen.aup.policyterms 中,以允许 CAS 从语言包中查找特定策略文本。如果 CAS 语言捆绑包中没有此类密钥,则将显示在同一语言密钥下找到的默认策略文本。
当然,定义的属性必须可用于来自相关来源的已解析的已验证主体。
例如,如果将 policy terms 属性定义为值为 developer 的状态status,则包含策略文本的预期语言代码将为 screen.aup.policyterms.developer=<p>Policy for developers</p>
默认情况下,记住用户选择的任务默认保存在内存中,并且在容器重启和/或集群部署中会丢失。此选项仅在开发、测试和演示期间有用,根本不适合生产。
CAS 配置目录中提供了以下设置和属性:
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。
Show entries
搜索:
· cas.acceptable-usage-policy.in-memory.scope=GLOBAL 存储 aup 选择的映射范围。可用值如下: GLOBAL存储在全局内存映射中(在服务器的生命周期内)。 AUTHENTICATION存储 aup acceptance,以便在用户通过凭证进行身份验证时提示用户。 org.apereo.cas.configuration.model.support.aup.InMemoryAcceptableUsagePolicyProperties. 如何配置此属性? |
显示 1 到 1 的 1 个条目
上一页1下一页
默认存储机制的范围可以从默认的 GLOBAL(如上所述)调整为 AUTHENTICATION,这将导致用户必须在每个身份验证事件期间同意该策略。当 CAS 根据现有票证 grantingticket cookie 授予访问权限时,用户将不必同意该策略。
或者,可以将 CAS 配置为使用 Groovy 脚本来验证策略的状态并存储结果。
CAS 配置目录中提供了以下设置和属性:
必填
Groovy 脚本
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.acceptable-usage-policy.groovy.location= 在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。 org.apereo.cas.configuration.model.support.aup.GroovyAcceptableUsagePolicyProperties. 如何配置此属性? |
显示 1 到 1 的 1 个条目
上一页1下一页
要准备 CAS 以支持 Apache Groovy 并与之集成,请查看本指南。
该脚本应与以下内容匹配:
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 35 | import org.apereo.cas.authentication.principal.* import org.apereo.cas.authentication.* import org.apereo.cas.util.* import org.apereo.cas.aup.* import org.springframework.webflow.execution.* def verify(Object[] args) { def (requestContext,applicationContext,principal,logger) = args ... if (policyAccepted()) { return AcceptableUsagePolicyStatus.accepted(principal) } return AcceptableUsagePolicyStatus.denied(principal)} def submit(Object[] args) { def (requestContext,applicationContext,principal,logger) = args ... return true} /* A special callback function is implemented as an override to return an `AcceptableUsagePolicyTerms` object back to CAS to be re-purposed for acceptable usage policy flows. */def fetch(Object[] args) { def (requestContext,applicationContext,principal,logger) = args ... return AcceptableUsagePolicyTerms.builder() .defaultText("Hello, World") .code(AcceptableUsagePolicyTerms.CODE) .build()} |
传递的参数如下:
参数 | 描述 |
requestContext | 表示 Spring Webflow RequestContext 的对象。 |
applicationContext | 表示 Spring ApplicationContext 的对象。 |
principal | 表示经过身份验证的 Principal 的对象。 |
logger | 负责发出日志消息的对象,例如 logger.info(...) |
或者,可以将 CAS 配置为使用 LDAP 作为存储机制。接受策略后,结果将存储回 LDAP 并通过相同的属性记住。通过在 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-aup-ldap"} |
CAS 配置目录中提供了以下设置和属性:
必填
自选
LDAP & Active Directory
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.acceptable-usage-policy.ldap[0].base-dn= 要使用的基本 DN。在某些情况下,单个 LDAP 树的不同部分可能被视为 base-dns。可以使用特殊的分隔符指定每个条目并将其连接在一起,而不是为每个单独的 base-dn 复制 LDAP 配置块。用户 DN 按定义的顺序使用所有 base-dn 和 DNresolver 的组合进行检索。如果找到多个 DN,则 DN 解析应失败。否则,将返回找到的第一个 DN。通常的语法是:subtreeA,dc=example,dc=net|subtreeC,dc=example,dc=net。 org.apereo.cas.configuration.model.support.aup.LdapAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.ldap[0].bind-credential= 连接到 LDAP 时要使用的绑定凭证。 org.apereo.cas.configuration.model.support.aup.LdapAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.ldap[0].bind-dn= 连接到 LDAP 时要使用的绑定 DN。注入 LDAP 连接池的 LDAP 连接配置可以使用以下参数进行初始化: bindDn/bindCredential provided - 在初始化连接时使用提供的凭证进行绑定。 bindDn/bindCredential 设置为 * - 使用快速绑定策略初始化池。 bindDn/bindCredential 设置为空白 - 跳过连接初始化;匿名执行操作。 提供的 SASL 机制 - 初始化连接时使用给定的 SASL 机制进行绑定。 org.apereo.cas.configuration.model.support.aup.LdapAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.ldap[0].ldap-url= 服务器的 LDAP URL。可以指定多个,用空格和/或逗号分隔。 org.apereo.cas.configuration.model.support.aup.LdapAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.ldap[0].search-filter= 您还可以在 file:/path/to/GroovyScript.groovy的语法中提供外部 groovy 脚本,以动态地完全构建最终的过滤器模板。 org.apereo.cas.configuration.model.support.aup.LdapAcceptableUsagePolicyProperties. 如何配置此属性? |
显示 1 到 5 个条目中的 5 个
上一页1下一页
可以将 CAS 配置为使用 MongoDb 实例作为存储机制。接受策略后,采用者应提供一个集合名称,用于保存决策,并假定文档包含username列以及与定义的 AUP 属性名称匹配的列。
通过在 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-aup-mongo"} |
CAS 配置目录中提供了以下设置和属性:
必填
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.acceptable-usage-policy.mongo.client-uri= mongodb 实例的连接 URI。这通常采用 mongodb://user:psw@ds135522.somewhere.com:35522/db 的形式。如果未指定,将回退到其他单个设置。如果指定,则接管所有其他设置(如果适用)。 org.apereo.cas.configuration.model.support.aup.MongoDbAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.mongo.collection= 要获取和/或创建的 MongoDb 数据库集合名称。 org.apereo.cas.configuration.model.support.aup.MongoDbAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.mongo.database-name= MongoDb 数据库实例名称。 org.apereo.cas.configuration.model.support.aup.MongoDbAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.mongo.host=localhost 用于身份验证的 MongoDb 数据库主机。可以定义多个主机地址,用逗号分隔。如果定义了多个主机,则假定每个主机也包含端口(如果有)。否则,配置可能会回退到定义的端口。 org.apereo.cas.configuration.model.support.aup.MongoDbAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.mongo.password= 用于身份验证的 MongoDb 数据库密码。 org.apereo.cas.configuration.model.support.aup.MongoDbAcceptableUsagePolicyProperties. 如何配置此属性? |
显示 1 到 5 的 7 个条目
上一页12下一页
CAS 可以配置为使用 Redis 实例作为存储机制。决策映射到 CAS 用户名和指定的 AUP 属性名称的组合。
通过在 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-aup-redis"} |
CAS 配置目录中提供了以下设置和属性:
必填
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.acceptable-usage-policy.redis.cluster.nodes[0].host= 服务器的主机地址。 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.redis.cluster.nodes[0].port= 服务器的端口号。 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.redis.cluster.nodes[0].replica-of= 设置 master 节点的 id。 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.redis.cluster.nodes[0].type= 指示此节点的类型/角色。接受的值为 MASTER, REPLICA 。 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.redis.cluster.password= 集群连接的密码。 org.apereo.cas.configuration.model.support.redis.RedisClusterProperties. 如何配置此属性? |
显示 1 到 5 个条目,共 14 个条目
上一页123下一页
可以将 CAS 配置为使用数据库作为存储机制。接受策略后,采用者应提供一个表名,用于保存决策,并假定该表包含一个 username 列以及与定义的 AUP 属性名称匹配的列。
通过在 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-aup-jdbc"} |
CAS 配置目录中提供了以下设置和属性:
必填
自选
Hibernate 和 JDBC
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.acceptable-usage-policy.jdbc.driver-class=org.hsqldb.jdbcDriver 用于连接到数据库的 JDBC 驱动程序。 org.apereo.cas.configuration.model.support.aup.JdbcAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.jdbc.password= 数据库连接密码。 org.apereo.cas.configuration.model.support.aup.JdbcAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.jdbc.url=jdbc:hsqldb:mem:cas-hsql-database 数据库连接 URL。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.support.aup.JdbcAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.jdbc.user=sa 数据库用户必须具有足够的权限,才能在需要时处理架构更改和更新。 org.apereo.cas.configuration.model.support.aup.JdbcAcceptableUsagePolicyProperties. 如何配置此属性? |
显示 1 到 4 的 4 个条目
上一页1下一页
可以将 CAS 配置为使用 REST API 作为存储机制。接受策略后,API 将通过 POST 向 username 参数传递,该 POST 已接受策略以及活动locale。service参数也作为目标应用程序的指示符(如果可用)传递。预期的响应状态代码为 200。
确定用户是否接受策略的条件通常通过 configurable 属性进行控制。如果此属性不存在,或者 CAS 确定没有足够的证据来确定此属性的接受状态,则通过 GET 请求联系位于 ${REST_ENDPOINT}/status 的 API 终端节点,以确定策略接受状态。与以前一样,此 API 将传递 username、locale 和 service (如果可用) 参数,预期的响应状态代码(表示已接受状态)为 200。
通过在 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-aup-rest"} |
CAS 配置目录中提供了以下设置和属性:
必填
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.acceptable-usage-policy.rest.url= 用于联系和检索属性的终端节点 URL。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.support.aup.RestAcceptableUsagePolicyProperties. 如何配置此属性? |
显示 1 到 1 的 1 个条目
上一页1下一页
保单条款
CAS 将通过 GET 调用位于 ${REST_ENDPOINT}/policy 的 API 端点,以获取相应的策略术语。向 API 传递username、localeservice,预期的响应状态代码为 200。responseoutput body 应为 AcceptableUsagePolicyTerms 的实例,如下所示:
1 2 3 4 5 | { "@class": "org.apereo.cas.aup.AcceptableUsagePolicyTerms", "code": "screen.aup.policyterms.some.key", "defaultText": "Default policy text"} |
提供code可能指向 CAS 消息包中的语言键。附加到相关捆绑包中此密钥的文本最终会提取并由 CAS UI 进行处理。
如果您想设计自己的存储机制,您可以遵循以下方法:
1 2 3 4 5 6 7 8 9 10 11 12 | package org.apereo.cas.custom; @AutoConfiguration@EnableConfigurationProperties(CasConfigurationProperties.class)public class MyUsagePolicyConfiguration { @Bean public AcceptableUsagePolicyRepository acceptableUsagePolicyRepository() { ... } } |
请参阅本指南,了解有关如何将配置注册到 CAS 运行时的更多信息。