e4a能建设网站吗佛山网站营销推广
如有疑问,请看视频:CAS单点登录(第7版)
Apache Groovy 是一种功能强大的、可选的类型化动态语言,具有静态类型和静态编译功能,适用于 Java 平台,旨在通过简洁、熟悉且易于学习的语法来提高开发人员的工作效率。
通过在 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-core-scripting"} |
用法
如果您打算使用 Apache Groovy 和脚本实现任何类型的行为,请记住将上述模块包含在您的 CAS 构建中。这包括评估策略、发布属性、修改或自定义组件等。如果没有上面列出的模块,Apache Groovy 功能和库将无法拉入您的 CAS 项目,并且 CAS 很可能在运行时无法交付。
CAS 以嵌入式或外部脚本的形式利用 Apache Groovy,默认情况下,这些脚本允许动态构建结构、属性、访问策略等等。
例如,以下结构在 CAS 中称为嵌入式或内联 Groovy 脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 | { "@class": "org.apereo.cas.services.CasRegisteredService", "serviceId": "^https://example.app.org/login", "name": "Sample", "id": 1, "attributeReleasePolicy" : { "@class" : "org.apereo.cas.services.ReturnMappedAttributeReleasePolicy", "allowedAttributes" : { "@class" : "java.util.TreeMap", "name" : "groovy { return ['casuser'] }" } }} |
默认情况下,所有此类脚本都使用 Groovy 元对象协议动态评估和执行。还支持 thealternative,它允许 CAS 调整 Groovy 编译器以进行静态编译。在此模式下,在脚本中找到的所有方法、属性、文件、内部类等都将被类型检查。如果你希望总是使用 CompileStatic 脚本,你可以在运行 CAS 时指定以下系统属性:
1 | -Dorg.apereo.cas.groovy.compile.static=true |
当 CAS 在 CompileStatic 模式下运行时,很可能需要重写 Groovy 脚本以删除所有动态结构。例如,下面的 Groovy 脚本是使用 Groovy 编程语言的 dynamic/meta 方面的脚本:
1 2 3 4 5 | if (attributes['entitlement'].contains('admin')) { return [attributes['uid'].get(0).toUpperCase()]} else { return attributes['identifier']} |
CompileStatic 模式下,相同的脚本将被重写为:
1 2 3 4 5 6 | def attributes = (Map) binding.getVariable('attributes')if ((attributes.get('entitlement') as List).contains('admin')) { return [(attributes['uid'] as List).get(0).toString().toUpperCase()]} else { return attributes['identifier'] as List} |
CAS 为许多 SAML2 服务提供商提供内置集成支持。配置这些服务提供商是指在 CAS 配置以及下面的配置模块中声明相关属性。每个集成在配置得当时,都会将服务提供商作为 SAML SP 注册到 CAS 服务注册表中,并将遵循配方(由 SP 公开记录)来配置属性发布策略、名称 ID 和实体 ID。如果需要,您可以查看 CAS 服务注册表内的注册记录以调整选项。
注意:如果集成需要特殊属性和/或名称 ID,则需要确保所有此类属性都已正确解析并可供 CAS 主体使用。
记得
此处列出的 SAML2 服务提供商集成尝试根据供应商拥有的服务提供商提供的已知和记录的集成指南和配方来自动化 CAS 配置。随着时间的推移,这些配方可能会改变和破坏 CAS,不用说,它们需要经过适当和彻底的测试,因为项目本身没有订阅每个应用程序来测试正确性。YMMV。如果您在此处发现自动集成策略存在问题,请说出来。
通过在 WAR 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-support-saml-sp-integrations"} |
CAS 提供了以下 SAML SP 集成作为示例:
一次配置,随处运行
如果您已开发与 SAML 服务提供商集成的配方,请考虑将该配方贡献给项目,以便可以一次性使用其配置。让更改成为项目的一个功能,而不是您一个人必须维护的东西。
配置
允许 CAS 注册并启用许多内置的 SAML 服务提供商集成。
记得
此处列出的 SAML2 服务提供商集成尝试根据供应商拥有的服务提供商提供的已知和记录的集成指南和配方来自动化 CAS 配置。这些配方可能会随着时间的推移而改变和破坏 CAS。
为每个服务提供商定义的设置尝试自动创建 SAML 服务定义,仅此而已。如果您发现某些区域缺少适用的设置,最好回退到向 CAS 注册 SAML 服务提供商的本机配置策略,这将取决于您选择的服务注册表。
SAML2 服务提供商支持以下设置:
名字 | 描述 |
metadata | 服务提供商的元数据位置(即 URL、路径等) |
name | 在 service registry 中注册的服务提供商的名称。 |
description | 在 service registry 中注册的服务提供商的描述。 |
name-id-attribute | 为此服务提供商生成名称 ID 时使用的属性。 |
name-id-format | 强制的 NameID 格式标识符(即 urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress)。 |
attributes | 要释放给服务提供商的属性,这些属性实际上可以映射和重命名。 |
signature-location | 用于验证元数据的签名位置。 |
entity-ids | 此服务提供商允许的实体 ID 列表。 |
sign-responses | 指示是否应对响应进行签名。默认值为 true。 |
sign-assertions | 指示是否应对断言进行签名。默认值为 false。 |
激活服务提供商的自动配置的唯一必需设置是元数据的存在和定义。所有其他设置都是可选的。
CAS 配置目录中提供了以下设置和属性:
必填
自选
Groovy 脚本
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.saml-sp.academic-health-plans.metadata= 此服务提供商的元数据的位置。可以是 URL 或其他形式的资源。 org.apereo.cas.configuration.model.support.saml.sps.SamlServiceProviderProperties.AcademicHealthPlans. 如何配置此属性? |
· cas.saml-sp.adobe-cloud.metadata= 此服务提供商的元数据的位置。可以是 URL 或其他形式的资源。 org.apereo.cas.configuration.model.support.saml.sps.SamlServiceProviderProperties.AdobeCloud. 如何配置此属性? |
· cas.saml-sp.amazon.metadata= 此服务提供商的元数据的位置。可以是 URL 或其他形式的资源。 org.apereo.cas.configuration.model.support.saml.sps.SamlServiceProviderProperties.Amazon. 如何配置此属性? |
· cas.saml-sp.app-dynamics.metadata= 此服务提供商的元数据的位置。可以是 URL 或其他形式的资源。 org.apereo.cas.configuration.model.support.saml.sps.SamlServiceProviderProperties.AppDynamics. 如何配置此属性? |
· cas.saml-sp.arc-g-i-s.metadata= 此服务提供商的元数据的位置。可以是 URL 或其他形式的资源。 org.apereo.cas.configuration.model.support.saml.sps.SamlServiceProviderProperties.ArcGIS. 如何配置此属性? |
显示 1 到 5 的 58 个条目
上一页12345...12下一页
注意:对于 InCommon 和其他元数据聚合,可以指定多个实体 ID 来筛选 InCommon 元数据。EntityId 可以是正则表达式模式,并映射到注册表中 CAS 的 serviceId 字段。签名位置必须是用于对元数据进行签名的公钥。
reCAPTCHA 是一项 Google 服务,可保护您的 CAS 部署免受垃圾邮件和滥用的侵害。它使用先进的风险分析技术来区分人类和机器人。CAS 支持 reCAPTCHA API v2 和 v3。
通过在 WAR 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-support-captcha"} |
CAS 配置目录中提供了以下设置和属性:
必填
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.google-recaptcha.enabled=true 是否应启用 reCAPTCHA。 org.apereo.cas.configuration.model.support.captcha.GoogleRecaptchaProperties. 如何配置此属性? |
· cas.google-recaptcha.score=0.5 Google reCAPTCHA v3 返回一个分数(1.0 很可能是良好的交互,0.0 很可能是机器人)。reCAPTCHA 通过查看您网站上的真实流量来学习。因此,暂存环境中或实施后不久的分数可能与生产环境不同。由于 reCAPTCHA v3 永远不会中断用户流程,因此您可以先运行 reCAPTCHA 而不执行任何操作,然后通过在 Admin Console 中查看流量来决定阈值。默认情况下,您可以使用阈值 0.5。 org.apereo.cas.configuration.model.support.captcha.GoogleRecaptchaProperties. 如何配置此属性? |
· cas.google-recaptcha.secret= reCAPTCHA 站点密钥。 org.apereo.cas.configuration.model.support.captcha.GoogleRecaptchaProperties. 如何配置此属性? |
· cas.google-recaptcha.site-key= reCAPTCHA 站点密钥。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.support.captcha.GoogleRecaptchaProperties. 如何配置此属性? |
显示 1 到 4 的 4 个条目
上一页1下一页
用例
请注意,此特定集成适用于登录和身份验证尝试。其他几个 CAS 模块也支持针对其自身特殊流程的 reCAPTCHA集成,特别是在 reCAPTCHA 激活策略方面,与此处记录和可用的内容分开。
请记住禁用 Internet Explorer 的“兼容性视图”模式。reCAPTCHA在打开该模式时可能无法正确呈现。
某些 reCAPTCHA 设置可以通过专用属性按服务定义:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | { "@class" : "org.apereo.cas.services.CasRegisteredService", "serviceId" : "^https://.+", "name" : "sample service", "id" : 100, "properties" : { "@class" : "java.util.HashMap", "captchaEnabled" : { "@class" : "org.apereo.cas.services.DefaultRegisteredServiceProperty", "values" : [ "java.util.HashSet", [ "false" ] ] }, "captchaIPAddressPattern" : { "@class" : "org.apereo.cas.services.DefaultRegisteredServiceProperty", "values" : [ "java.util.HashSet", [ "pattern1", "pattern2" ] ] } }} |
CAS 为各种模块和功能提供并识别以下属性:
Show entries
搜索:
名字 | 默认值 | 类型 | 群 |
captchaEnabled | true | BOOLEAN | RECAPTCHA |
captchaIPAddressPattern | true | SET | RECAPTCHA |
显示 1 到 2 的 2 个条目
上一页1下一页
reCAPTCHA 激活策略通常通过 CAS 设置进行控制。还可以使用将在 @AutoConfiguration 类中注册的以下@Bean设计自己的激活策略并将其注入 CAS:
1 2 3 4 | @Beanpublic CaptchaActivationStrategy captchaActivationStrategy() { return new MyCaptchaActivationStrategy();} |
您的配置类需要向 CAS 注册。有关更多详细信息,请参阅本指南。
Google Analytics 可用于提供有用的统计数据。创建自定义维度和指标,以深入了解 CAS 和用户流量。
兼容性
Google Analytics 4 是新一代衡量解决方案,它已取代 CAS 中的 Universal Analytics。2023 年 7 月 1 日,标准 Universal Analytics 媒体资源将停止处理新的匹配。如果您仍然依赖 Universal Analytics,我们建议您准备在以后使用 Google Analytics 4。
通过在 WAR 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-support-google-analytics"} |
此外,CAS 还提供了在成功进行身份验证事件时放入特殊 Cookie 的功能,以便稍后由 Google Analytics 处理和使用。此 Cookie 的值确定为 principal/authentication 属性。
CAS 配置目录中提供了以下设置和属性:
必填
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.google-analytics.google-analytics-tracking-id= 跟踪 ID。在 UI 视图等的 CAS 中配置跟踪激活的 google analytics。 org.apereo.cas.configuration.model.support.analytics.GoogleAnalyticsProperties. 如何配置此属性? |
显示 1 到 1 的 1 个条目
上一页1下一页
身份验证请求可以映射并转换为物理位置。
通过在 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"} |
-
-
-
- 地理位置提供商
-
-
CAS 支持以下地理定位提供商:
存储 | 描述 |
谷歌地图 | 请参阅本指南。 |
迈斯迈德 | 请参阅本指南。 |
IP 地理位置 | 请参阅本指南。 |
Groovy | 请参阅本指南。 |
代理身份验证
默认情况下,对 CAS v1+ 协议的代理身份验证支持处于启用状态,因此利用代理身份验证功能完全是 CASclient 配置的问题。
服务配置
请注意,注册表中的每个已注册应用程序都必须显式配置为允许代理身份验证。请参阅本指南,了解如何在 Registry 中注册服务。
对于希望从安全策略的角度战略性地避免 proxyauthentication 的部署,建议禁用 proxy authentication 组件。
用例
代理身份验证的一个更常见的用例是能够获取同样受 CAS 保护的后端 [基于 REST] 服务的票证。场景通常是:
用户面对的是受 CAS 保护的应用程序 A。
后端的应用程序 A 需要联系服务 S 才能产生数据。
服务 S 本身受 CAS 本身保护。
由于 A 通过不涉及浏览器的服务器到服务方法与服务 S 联系,因此服务 S 将无法识别 SSO 会话已存在。在这些情况下,应用程序 A 需要执行代理才能获取服务 S 的代理票证。代理票证将传递给服务 S 的相关端点,以便它可以通过 CAS 检索和验证它,并最终生成响应。
跟踪路由可能如下所示:
浏览器导航到 A。
A 重定向到 CAS。
CAS 对 ST 进行身份验证并重定向回 ST。
A 尝试验证 ST并请求 PGT。
CAS 确认 ST 验证,并颁发代理授予票证 PGT。
A 要求 CAS 为服务 S 生成一个 PT,并在其请求中提供 PGT。
CAS 为服务 S 生成 PT。
A 联系服务 S 终端节点,并在请求中传递 PT。
服务 S 尝试通过 CAS 验证 PT。
CAS 验证 PT 并生成成功的响应。
服务 S 收到响应,并为 A 生成数据。
A 接收并在浏览器中显示数据。
有关详细信息,请参阅 CAS 协议。
处理启用 SSL 的代理 URL
默认情况下,CAS 附带一个捆绑的 HTTP 客户端,该客户端部分负责回调 URL 以进行代理身份验证。注意,此 URL 也需要经过 CAS 服务注册中心的授权后,才能进行回调。有关更多信息,请参阅本指南。
如果回调 URL 由服务注册表授权,并且终端节点在 HTTPS 下并受 SSL 证书保护,则 CAS 还将尝试验证终端节点证书的有效性,然后才能成功建立连接。如果证书无效、过期、链中缺少步骤、自签名或其他情况,则 CAS 将无法执行回调。
CAS 的 HTTP 客户端确实提供了一个类似于 Java 平台的本地信任库。建议使用此信任库来处理需要导入平台的所有证书的管理,以允许 CAS 成功执行回调 URL。虽然默认情况下,CAS 的本地信任存储区为空,但 CAS 仍将同时使用默认信任存储和本地信任存储区。当然,本地信任存储只应用于与 CAS 相关的功能,并且信任存储文件可以在 CAS 和 Java 升级之间转移,并且当然由应托管所有 CAS 配置的源代码控制系统进行管理。
CAS 配置目录中提供了以下设置和属性:
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。
Show entries
搜索:
· cas.http-client.allow-local-urls=false CAS 是否应接受本地 URL。例如 http(s)://localhost/logout。 org.apereo.cas.configuration.model.core.authentication.HttpClientProperties. 如何配置此属性? |
· cas.http-client.async-timeout=PT5S 指示异步操作的超时。 此设置支持java.time.Duration 语法 [?]。 org.apereo.cas.configuration.model.core.authentication.HttpClientProperties. 如何配置此属性? |
· cas.http-client.authority-validation-reg-ex-case-sensitive=true 使用 #authorityValidationRegex 指定的正则表达式应作为区分大小写 (true) 还是不区分大小写 (false) 处理。如果未设置 #authorityValidationRegex,则此值没有任何影响。 org.apereo.cas.configuration.model.core.authentication.HttpClientProperties. 如何配置此属性? |
· cas.http-client.authority-validation-regex= 如果指定,则正则表达式将用于验证 url 的权威性。 此设置支持正则表达式模式。[?]. org.apereo.cas.configuration.model.core.authentication.HttpClientProperties. 如何配置此属性? |
· cas.http-client.connection-timeout=PT5S 访问 URL 终端节点的所有操作的连接超时。 此设置支持java.time.Duration 语法 [?]。 org.apereo.cas.configuration.model.core.authentication.HttpClientProperties. 如何配置此属性? |
显示 1 到 5 个条目,共 14 个条目
上一页123下一页
验证响应中的 PGT
在不需要使用 CAS20ProxyHandler 的情况下,例如调用回调 URL 来接收代理授予票证不可行,可以将 CAS 配置为直接在验证响应中返回代理授予票证 ID。为了在 CAS 服务器和应用程序之间成功建立信任,客户端应用程序生成私钥/公钥对,然后在 CAS 内部分发和配置公钥。CAS 将使用公钥来加密授予票证 ID 的代理,并且只有在服务有权接收该属性时,才会在验证响应中发出新属性<proxyGrantingTicketId>。
请注意,如果 clientapplication 向 /p3/serviceValidate 端点(或 /p3/proxyValidate发出请求,则仅由 CAS 验证响应返回授予票证 ID 的代理。其他将属性返回给 CAS 的方法(如 SAML1)将不支持额外返回代理授予票证。
注意如果 CAS 配置为直接在验证响应中返回代理授予票证 ID,则响应中将省略 pgtIou 参数,并且不会对应用程序执行回调。
注册服务
从客户端应用程序所有者处收到公钥后,必须首先在 CAS 服务器的服务注册表中注册该公钥。持有上述公钥的服务还必须获得授权,以接收 PGT 作为所选给定属性发布策略的属性。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | { "@class" : "org.apereo.cas.services.CasRegisteredService", "serviceId" : "^https://.+", "name" : "test", "id" : 1, "evaluationOrder" : 0, "attributeReleasePolicy" : { "@class" : "org.apereo.cas.services.ReturnAllowedAttributeReleasePolicy", "authorizedToReleaseProxyGrantingTicket" : true }, "publicKey" : { "@class" : "org.apereo.cas.services.RegisteredServicePublicKeyImpl", "location" : "classpath:public.key", "algorithm" : "RSA" }} |
密钥对必须由希望获取 PGT 的应用程序本身生成。公钥与 CAS 共享。应用程序使用私钥解密 PGT。生成密钥对的示例说明如下:
1 2 3 | openssl genrsa -out private.key 4096 openssl rsa -pubout -in private.key -out public.key -inform PEM -outform DER openssl pkcs8 -topk8 -inform PEM -outform DER -nocrypt -in private.key -out private.p8 |
请注意,可能需要较大的密钥大小 4096 才能允许 CAS 加密冗长的代理授予票证。选择较小的密钥大小可能会阻止 CAS 正确加密票证,因为特定大小的加密算法可以处理的长度是有限的。
解密代理授予票证
客户端应用程序在 CAS 验证响应中收到 proxyGrantingTicket id 属性后,它可以通过自己的私钥对其进行解密。由于该属性默认是 base64 编码的,因此需要先对其进行解码,然后才能进行解密。下面是一个示例代码片段:
1 2 3 4 5 6 7 8 | var attributes = new HashMap<>();var encodedPgt = (String) attributes.get("proxyGrantingTicket");var privateKey = ...var cipher = Cipher.getInstance(privateKey.getAlgorithm());var cred64 = decodeBase64(encodedPgt);cipher.init(Cipher.DECRYPT_MODE, privateKey);var cipherData = cipher.doFinal(cred64);return new String(cipherData); |
身份验证事件
CAS 提供了一种使用身份验证事件并将其记录到持久性存储中的工具。此功能类似于 Audit log 保留的记录,不同之处在于功能和存储格式是通过 CAS 本身而不是 Audit Engine 控制的。此外,虽然审计数据可用于报告和监控,但通过此功能存储到存储中的事件稍后可能会以历史方式进行评估,以评估身份验证请求、评估与它们相关的风险并对其采取进一步措施。事件主要设计为供开发人员和后续 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-core-events"} |
要了解如何配置数据库驱动程序,请参阅本指南。
CAS 配置目录中提供了以下设置和属性:
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。
Show entries
搜索:
· cas.events.core.enabled=true 是否应启用事件跟踪和录制功能。 org.apereo.cas.configuration.model.core.events.CoreEventsProperties. 如何配置此属性? |
· cas.events.core.track-configuration-modifications=false CAS 是否应跟踪底层配置存储的更改。这取决于 store 是否提供此类功能。在 standalone 模式下运行时,这通常转换为 CAS 监控配置文件,并在有任何更改时有条件地重新加载上下文。 org.apereo.cas.configuration.model.core.events.CoreEventsProperties. 如何配置此属性? |
· cas.events.core.track-geolocation=false 是否应将地理位置作为收集的身份验证事件的一部分进行跟踪。这当然需要用户浏览器的同意才能收集位置统计数据。打开此设置将提示浏览器请求用户同意直接收集地理位置。如果使用此策略无法获得地理位置信息,则仍可能根据 CAS 记录和捕获事件时的客户端 IP 地址提取和确定该信息。 org.apereo.cas.configuration.model.core.events.CoreEventsProperties. 如何配置此属性? |
显示 1 到 3 个条目中的 3 个
上一页1下一页
记录的数据
启用后,事件机制会捕获和记录以下元数据:
田 | 描述 |
principalId | 已验证使用者的主体 ID |
timestamp | 此事件的时间戳 |
creationTime | 此身份验证事件的时间戳 |
clientIpAddress | 客户端 IP 地址 |
serverIpAddress | 服务器 IP 地址 |
agent | 浏览器的 User-Agent |
geoLatitude | 身份验证请求来源的地理纬度 |
geoLongitude | 身份验证请求来源的地理经度 |
geoAccuracy | 位置的准确性测量 |
geoTimestamp | 地理位置请求的时间戳 |
地理位置
CAS 通过允许浏览器请求用户同意来尝试记录身份验证请求的地理位置属性。 如果未获得同意或浏览器不支持地理位置,则 CAS 将在尝试记录事件时忽略地理位置数据。要了解更多信息,请查看本指南。
执行器端点
CAS 提供以下端点:
DELETE | /cas/actuator/events |
删除事件存储库中的所有 CAS 事件。
GET | /cas/actuator/events |
POST | /cas/actuator/events |
存储
以下选项可用于在 CAS 中存储事件。
存储 | 描述 |
MongoDb 数据库 | 请参阅本指南。 |
DynamoDb | 请参阅本指南。 |
Redis | 请参阅本指南。 |
JPA | 请参阅本指南。 |
InfluxDb | 请参阅本指南。 |
记忆 | 请参阅本指南。 |
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-events-dynamodb"} |
CAS 配置目录中提供了以下设置和属性:
笔记
配置元数据
本节中列出的配置属性集合是从包含实际字段定义、类型、描述、模块等的 CAS 源和组件自动生成的。这些元数据可能并不总是 100% 准确,或者可能缺乏细节和足够的解释。
有选择性
本部分仅供参考。请勿将整个设置集合复制/粘贴到 CAS 配置中;而是只选择您需要的属性。除非您确定设置的用途,否则不要启用设置,并且不要将设置复制到您的配置中以保留它们作为参考。所有这些想法都会导致升级头痛、维护噩梦和过早衰老。
YAGNI
请注意,对于几乎所有用例,声明和配置此处列出的属性就足够了。您不必显式修改 CAS XML/Java/etc配置文件来设计身份验证处理程序、创建属性发布策略等。CAS 在运行时将自动为您配置所有必需的更改。如果您不确定给定 CAS 设置的含义,请不要犹豫不决地打开它。查看代码库,或者更好的是,提出问题以阐明预期行为。
命名约定
属性名称可以用非常宽松的术语来指定。例如 cas.someProperty、cas.some-property cas.some_property 都是有效名称。虽然 CAS 接受 allforms,但某些组件(在 CAS 和其他使用的框架中)在运行时的激活以属性值为条件,其中需要使用 kebab 大小写在 CAS 配置中指定此属性。这既适用于 CAS 拥有的属性,也适用于可能通过外部库或框架(如 Spring Boot 等)呈现给系统的属性。
注意
如果可能,属性应以小写 kebab 格式存储,例如 cas.property-name=value。此规则唯一可能的例外是在命名 actuator endpoints 时;执行器端点的名称(即 ssoSessions)必须保持驼峰式命名法模式。
由 CAS 平台直接控制的设置和属性始终以前缀 cas.所有其他设置都通过其他底层框架进行控制并提供给 CAS,并且可能具有自己的架构和语法。请小心区分。无法识别的属性将被 CAS 和/或 CAS 所依赖的框架拒绝。这意味着,如果您以某种方式拼错了属性定义或未能遵守点表示法语法等,则 CAS 将完全拒绝您的设置,并且它可能控制的功能永远不会以您想要的方式激活。
验证
在 CAS 启动时自动验证配置属性,以报告配置绑定问题,尤其是在配置架构无法识别或验证定义的 CAS 设置时。其他验证过程也通过 Spring Boot 和系列在启动时自动应用的配置元数据和属性迁移来处理。
索引设置
能够接受多个值的 CAS 设置通常使用索引进行记录,例如 cas.some.setting[0]=value。索引 [0] 旨在由采用者递增,以允许不同的多个配置块。
Azure Maps 支持由 CAS 提供,以支持位置感知请求。Azure Maps Java SDK 包含支持搜索地址、获取特定 IP 地址的地理位置等操作的 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-azure"} |
CAS 配置目录中提供了以下设置和属性:
自选
Groovy 脚本
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。
Show entries
搜索:
· cas.geo-location.azure.client-id= Azure Maps 客户端 ID。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.support.geo.azure.AzureMapsProperties. 如何配置此属性? |
· cas.geo-location.azure.subscription-id= Azure Maps 订阅 ID。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.support.geo.azure.AzureMapsProperties. 如何配置此属性? |
· cas.geo-location.azure.tenant-id= 目录(租户)ID。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.support.geo.azure.AzureMapsProperties. 如何配置此属性? |
显示 1 到 3 个条目中的 3 个
上一页1下一页
使用 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下一页
使用 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下一页
使用 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 并与之集成,请查看本指南。
使用 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下一页
SCIM 标准旨在通过定义用于表示用户和组的架构以及用于所有必要 CRUD 操作的 REST API 来简化云中的用户管理和配置。SCIM 与 CAS 的集成允许部署人员将经过身份验证的 CAS 主体自动配置到 SCIM 服务器/目标,并额外支持将主体属性映射到用户资源的相应声明和属性。
由于 UnboundID 提供的 SDK,支持 SCIM v2。
启用 SCIM典型用例是及时将用户帐户同步到与 CAS 集成的服务和应用程序以进行单点登录。如果应用程序也有自己的帐户存储,则可能需要在 CAS 规范帐户存储(LDAP、JDBC 等)和应用程序之间映射用户帐户。为了解决这个问题,可以允许 CAS 通过 SCIM 将经过身份验证的主体配置到配置/身份/实体引擎,然后该引擎将用户配置文件动态同步到目标系统。
配置
通过在 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-scim"} |
CAS 配置目录中提供了以下设置和属性:
必填
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.scim.oauth-token= 通过预先生成的 OAuth 令牌对 SCIM 服务器/服务进行身份验证。 org.apereo.cas.configuration.model.support.scim.ScimProperties. 如何配置此属性? |
· cas.scim.password= 使用预定义的密码对 SCIM 服务器进行身份验证。 org.apereo.cas.configuration.model.support.scim.ScimProperties. 如何配置此属性? |
· cas.scim.target= SCIM 预置目标 URI。 org.apereo.cas.configuration.model.support.scim.ScimProperties. 如何配置此属性? |
· cas.scim.username= 使用预定义的用户名对 SCIM 服务器进行身份验证。 org.apereo.cas.configuration.model.support.scim.ScimProperties. 如何配置此属性? |
显示 1 到 4 的 4 个条目
上一页1下一页
映射属性
SCIM 用户资源是使用一对一映射规则从 CAS 身份验证的委托人填充的。例如,SCIM 架构中的 givenName属性是从为 CAS 主体找到的 givenName 属性映射和填充的。
映射的属性集如下所示:
属性 | 描述 |
userName | 设置为委托人 ID。 |
password | 设置为凭证密码(如果可用)。 |
nickName | 设置为主体属性 nickName。 |
displayName | 设置为主体属性 displayName。 |
givenName | 设置为 principal 属性 givenName。 |
familyName | 设置为主体属性 familyName。 |
| 设置为主体属性 email。 |
phoneNumber | 设置为主体属性 phoneNumber。 |
externalId | 设置为 principal 属性 externalId。 |
如果默认 Map 规则不合适,则始终可以使用以下 bean 调整和自定义 Map 规则:
1 2 3 4 | @Beanpublic ScimV2PrincipalAttributeMapper scim2PrincipalAttributeMapper() { return new MyPrincipalAttributeMapper();} |
每个应用程序
可以以服务属性的形式为每个应用程序指定 SCIM 相关设置。
CAS 为各种模块和功能提供并识别以下属性:
Show entries
搜索:
名字 | 默认值 | 类型 | 群 |
scimOAuthToken | STRING | SCIM | |
scimPassword | STRING | SCIM | |
scimTarget | STRING | SCIM | |
scimUsername | STRING | SCIM |
显示 1 到 4 的 4 个条目
上一页1下一页
示例 JSON 文件如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | { "@class" : "org.apereo.cas.services.CasRegisteredService", "serviceId" : "^https://.+", "name" : "sample service", "id" : 1, "properties" : { "@class" : "java.util.HashMap", "scimUsername" : { "@class" : "org.apereo.cas.services.DefaultRegisteredServiceProperty", "values" : [ "java.util.HashSet", [ "username" ] ] }, "scimPassword" : { "@class" : "org.apereo.cas.services.DefaultRegisteredServiceProperty", "values" : [ "java.util.HashSet", [ "p@$$w0rd" ] ] } }} |
可能允许 CAS 通过 Apache Syncope 将经过身份验证的主体配置到配置/身份/实体引擎,然后该引擎将用户配置文件动态同步到目标系统。成功的登录尝试将允许 CAS 将经过身份验证的用户配置文件传回给 Apache Syncope,然后 Apache Syncope 将负责创建用户并将其配置到适当的目标系统。
配置
通过在 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-syncope-authentication"} |
CAS 配置目录中提供了以下设置和属性:
必填
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.authn.syncope.provisioning.basic-auth-password= 指定 REST 身份验证的密码。 org.apereo.cas.configuration.model.support.syncope.SyncopePrincipalProvisioningProperties. 如何配置此属性? |
· cas.authn.syncope.provisioning.basic-auth-username= 指定 REST 身份验证的用户名。 org.apereo.cas.configuration.model.support.syncope.SyncopePrincipalProvisioningProperties. 如何配置此属性? |
· cas.authn.syncope.provisioning.domain=Master 用于身份验证等的 Syncope 域。多个域可以用逗号分隔。每个域条目都会导致 CAS 进行单独的身份验证尝试和事务。 org.apereo.cas.configuration.model.support.syncope.SyncopePrincipalProvisioningProperties. 如何配置此属性? |
· cas.authn.syncope.provisioning.realm=/ 用于主体预配的 Syncope 领域。Realm 定义分层安全域树,主要用于包含用户。根领域包含所有内容,而其他领域可以看作是将实体总数拆分为较小池的容器。 org.apereo.cas.configuration.model.support.syncope.SyncopePrincipalProvisioningProperties. 如何配置此属性? |
· cas.authn.syncope.provisioning.search-filter=username=={user} 用于搜索的用户 FIQL 过滤器。语法是 username=={user} 或 username=={0}。 org.apereo.cas.configuration.model.support.syncope.SyncopePrincipalProvisioningProperties. 如何配置此属性? |
显示 1 到 5 的 6 个条目
上一页12下一页
可能允许 CAS 将经过身份验证的委托人预置给 Okta。成功的登录尝试将允许 CAS 将经过身份验证的用户配置文件传回 Okta,将经过身份验证的用户属性映射到 Okta 用户配置文件,并创建或更新 Okta 帐户。
配置
通过在 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-okta-authentication"} |
CAS 配置目录中提供了以下设置和属性:
必填
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.authn.okta.provisioning.client-id= 与私有密钥结合使用的 Okta 客户端 ID。 org.apereo.cas.configuration.model.support.okta.OktaPrincipalProvisioningProperties. 如何配置此属性? |
· cas.authn.okta.provisioning.organization-url= Okta 域。 org.apereo.cas.configuration.model.support.okta.OktaPrincipalProvisioningProperties. 如何配置此属性? |
· cas.authn.okta.provisioning.private-key.location= 在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。 org.apereo.cas.configuration.model.SpringResourceProperties. 如何配置此属性? |
· cas.authn.okta.provisioning.scopes= Okta 允许您使用范围限定的 OAuth 2.0 访问令牌与 Okta API 进行交互。每个访问令牌都使持有者能够在特定 Okta 端点上执行特定操作,该功能由访问令牌包含的范围控制。范围仅在使用 client id 和 private-key 时使用。 org.apereo.cas.configuration.model.support.okta.OktaPrincipalProvisioningProperties. 如何配置此属性? |
显示 1 到 4 的 4 个条目
上一页1下一页
启用对 RFC 8555 中指定的自动证书管理环境 (ACME) 协议的支持。ACME 是一种协议,证书颁发机构 (CA)(如 Let's Encrypt)和申请人可以使用它来自动化验证和证书颁发过程。
通过在覆盖中包含以下依赖项来启用支持:
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-acme"} |
此模块的激活是在启动时执行的,当 CAS 服务器准备好处理 http 请求时。成功完成此模块后,由密钥和证书组成的域密钥对(包括完整的证书路径)将在单独的文件中生成。
如果尚未向 CA 注册账户,则还将有一个新密钥作为账户密钥对。
CSR 文件包含用于证书订单的 CSR。生成它是为了方便起见,以后不会再次需要。续订证书时,将生成新的 CSR。
有两组密钥对。一个是创建和访问您的账户所必需的,另一个是加密域上的流量所必需的。强烈建议对账户和每个证书使用单独的密钥对。
将密钥对备份到安全的地方,因为如果您丢失了密钥,您的帐户将被锁定!无法恢复丢失的密钥对,也无法在密钥丢失时重新获得对帐户的访问权限。
对于 HTTP 质询,CAS 服务器将响应位于 /.well-known/acme-challenge/{token} 路径的 GET 请求。该请求始终针对端口 80 和域的根目录执行,这意味着 CAS 必须能够在该端口和上下文路径上运行,以响应验证质询。
CAS 配置目录中提供了以下设置和属性:
必填
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.acme.domain-chain.location= 在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。 org.apereo.cas.configuration.model.SpringResourceProperties. 如何配置此属性? |
· cas.acme.domain-csr.location= 在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。 org.apereo.cas.configuration.model.SpringResourceProperties. 如何配置此属性? |
· cas.acme.domain-key.location= 在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。 org.apereo.cas.configuration.model.SpringResourceProperties. 如何配置此属性? |
· cas.acme.domains= 请求证书续订的域或子域的列表。 org.apereo.cas.configuration.model.support.acme.AcmeProperties. 如何配置此属性? |
· cas.acme.server-url=acme://letsencrypt.org/staging 请求证书时要联系的服务器 URL。使用 acme://letsencrypt.org 进行生产。 org.apereo.cas.configuration.model.support.acme.AcmeProperties. 如何配置此属性? |
显示 1 到 5 的 7 个条目
上一页12下一页
此处描述的功能提供了 CAS 和 AWS 之间的专用集成策略。通过在覆盖中包含以下依赖项来启用支持:
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-aws"} |
CAS 配置目录中提供了以下设置和属性:
必填
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.amazon-sts.credential-access-key= 使用 AWS 提供的访问密钥进行身份验证。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.support.aws.AmazonSecurityTokenServiceProperties. 如何配置此属性? |
· cas.amazon-sts.credential-secret-key= 使用 AWS 提供的密钥进行身份验证。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.support.aws.AmazonSecurityTokenServiceProperties. 如何配置此属性? |
· cas.amazon-sts.endpoint= AWS 自定义终端节点。 org.apereo.cas.configuration.model.support.aws.AmazonSecurityTokenServiceProperties. 如何配置此属性? |
· cas.amazon-sts.region= 使用的 AWS 区域。 org.apereo.cas.configuration.model.support.aws.AmazonSecurityTokenServiceProperties. 如何配置此属性? |
显示 1 到 4 的 4 个条目
上一页1下一页
CAS 提供以下端点:
POST | /cas/actuator/awsSts |
从 Amazon Security Token Service 获取临时凭证。
为方便起见,您只需复制并粘贴上面生成的临时 AWS 访问凭证,将其设置为环境变量,或将输出保存到 ~/.aws/credentials 中,AWS CLI 将根据配置文件名称加载和识别该凭证。
AWS CLI 将您使用 aws configure 指定的敏感凭证信息存储在名为 credentials 的本地文件中,该文件位于主目录中名为 .aws 的文件夹中。您使用 aws configure 指定的不太敏感的配置选项存储在名为 config 的本地文件中,该文件也存储在主目录的 .aws 文件夹中。
要了解有关 AWS CLI 的更多信息,请参阅本指南。
可以使用以下集成策略获取临时安全凭证。
-
-
-
- 角色
-
-
从 AWS STS 获取临时安全凭证是使用 AssumeRole API 操作完成的。通常,您可以在账户中使用此 API 或进行跨账户访问。
此操作创建的临时安全凭证可用于对任何 AWS 服务进行 API 调用,但 AWS STS GetFederationToken 或 GetSessionToken API 操作除外。
要从其他账户代入角色,您的 AWS 账户必须得到该角色的信任。创建角色时,信任关系在角色的信任策略中定义。该 trustpolicy 规定允许哪些账户将该访问权限委托给账户中的用户。想要访问其他账户中的角色的用户还必须具有从用户账户管理员委派的权限。管理员必须附加一个策略,该策略允许用户为其他账户中角色的 ARN 调用此操作。
角色应位于主体的预定义属性下。如果找到多个角色,则可以使用 roleArn 参数指定 pre-selectedrole。角色的会话名称由 CAS 自动生成。角色属性值应采用 [\u0009\u000A\u000D\u0020-\u007E\u0085\u00A0-\uD7FF\uE000-\uFFFD\u10000-\u10FFFF]+ 的格式
-
-
-
- 会话令牌
-
-
从 AWS STS 获取临时安全凭证是使用 GetSessionToken API 操作完成的。调用此操作的主要场合是必须使用多因素身份验证 (MFA) 对用户进行身份验证时。经过身份验证的用户可以使用可用的 Multifactor Authentication 触发器来限定和启动 MultiFactor Authentication。
关于所需权限,Amazon Web Services 声明:
用户不需要任何权限即可获取会话令牌。API 操作的目的是使用 MFA 对用户进行身份验证。您不能使用策略来控制身份验证操作。
-
-
-
- 已授予的权限
-
-
对于授予的权限,Amazon Web Services 声明,
如果使用 IAM 用户的凭证调用 API,则临时安全凭证具有与 IAM 用户相同的权限。同样,如果使用 AWS 账户根用户凭证调用 API,则临时安全凭证具有根用户权限。
AWS 建议您不要使用根用户凭证调用 API。相反,请创建具有所需权限的 IAM 用户。然后使用这些 IAM 用户与 AWS 进行日常交互。
请注意,您不能使用凭证调用 IAM 或 AWS STS API 操作。您可以使用它们来调用其他 AWS 服务的 API 操作。
CAS 客户端也是一个软件包,可以与各种软件平台和应用程序集成,以便使用 OR 或更多支持的协议与 CAS 服务器进行通信。已经开发了支持许多软件平台和产品的 CAS 客户端。
-
-
- 官方客户端
-
- .NET CAS客户端
- Java CAS客户端
- PHP CAS客户端
- Apache CAS 客户端
其他非官方或孵化中的 CAS 客户可在此处找到。鉴于上述项目是非官方的,并且不受 CAS 的直接维护,因此其可用性和准确性可能会有所不同。
-
-
- 样品
-
- 使用 Flask 的 CASified Python Web 应用程序
- 使用 Java CAS 客户端的 CASified Java Web 应用程序
- CASified Bootiful Java Web 应用程序
- 通过 Spring Security 的 CASified Bootiful Java Web 应用程序
以下编程框架具有对 CAS 的内置支持:
由于已经存在许多 CAS 客户端,因此几乎没有机会开发 CAS 客户端,应尽可能避免使用。事实上,创建自己的客户端并非易事,您最有可能产生安全漏洞。
但是,如果您确实需要创建自己的 CAS 客户端,请注意以下不完整的指南:
CAS 利用 Swagger 自动生成 API 文档。生成的文档支持所有 CAS 端点和 REST 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-swagger"} |
CAS 配置目录中提供了以下设置和属性:
第三方
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Third Party(第三方)。此标志表示配置设置不受 CAS 生态系统的控制、拥有或管理,并且会影响第三方库(如 Spring Boot 或 Spring Cloud to CAS)提供的功能。有关更多信息,您可能必须访问第三方来源以查找更多详细信息。
Show entries
搜索:
· springdoc.api-docs.enabled=true 是否生成和提供 OpenAPI 文档。 org.springdoc.core.properties.SpringDocConfigProperties$ApiDocs. 如何配置此属性? |
· springdoc.api-docs.groups.enabled=false 启用。 org.springdoc.core.properties.SpringDocConfigProperties$Groups. 如何配置此属性? |
· springdoc.api-docs.path= 生成的 OpenAPI 文档的路径。对于 yaml 文件,请将 “.yaml” 附加到路径。 org.springdoc.core.properties.SpringDocConfigProperties$ApiDocs. 如何配置此属性? |
· springdoc.api-docs.resolve-extensions-properties=false Resolve extensions 属性。 org.springdoc.core.properties.SpringDocConfigProperties$ApiDocs. 如何配置此属性? |
· springdoc.api-docs.resolve-schema-properties=false Resolve schema 属性。 org.springdoc.core.properties.SpringDocConfigProperties$ApiDocs. 如何配置此属性? |
显示 1 到 5 的 99 个条目
上一页12345...20下一页
以下 Swagger 终端节点可用于分析和测试 API:
描述 | 网址 |
Swagger API 规范 | https://sso.example.org/cas/v3/api-docs |
招摇 UI | https://sso.example.org/cas/swagger-ui.html |
CAS 中的 JMX 支持为您提供了轻松、透明地将 CAS 部署集成到 JMX 基础架构中的功能。这些功能旨在在不将 CAS 组件耦合到 Spring 或 JMX 接口和类的情况下工作。CAS 组件不需要知道任何一个 JMX 就可以利用 Spring JMX 功能。调用 CAS 托管资源提供的 JMX 操作可以通过 Java 的 jconsole 工具等工具完成。
以下包装器组件已注册到 JMX 基础架构中,并位于定义明确的 CAS 功能、概念或组件之上,以提供远程操作或见解:
用于 CAS 服务管理工具的 JMX 托管资源
用于 CAS 票据注册表的 JMX 托管资源
其他包装器和组件将以迭代方式制定和添加。
通过在 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-jmx"} |
CAS 可以通过几种不同的策略与 Shibboleth 联合 SSO 平台集成。可以指定 CAS 作为 Shibboleth IdP 的身份验证提供程序。通过这样的设置,当用户路由到 IdP 时,可能会发生以下情况:
如果用户已经向 CAS 进行身份验证并具有有效的 CAS SSO 会话,则 IdP 将透明地执行请求的操作,例如属性发布。
如果用户没有有效的 CAS SSO 会话,则用户将被重定向到 CAS 并且必须进行身份验证,然后 IdP 才能继续执行请求的操作。
注意
请记住,此页面专门用于与 Shibboleth Identity Provider 的集成选项。如果您需要 CAS 单独充当 SAML2 身份提供商,则应从此处开始。
这是一个 Shibboleth IdP 外部身份验证插件,用于将身份验证委托给 CAS。该解决方案能够利用各种原生 CAS 协议功能,例如 renew 和 gateway。
该插件可用于 Shibboleth Identity Provider v2以及 v3 和 v4。
通过在 WAR 覆盖中包含以下依赖项来启用支持:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 | implementation "org.apereo.cas:cas-server-support-shibboleth:${project.'cas.version'}" |
CAS 配置目录中提供了以下设置和属性:
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。
Show entries
搜索:
· cas.authn.shib-idp.server-url=localhost shibboleth idp 部署的服务器 URL。 org.apereo.cas.configuration.model.support.saml.shibboleth.ShibbolethIdPProperties. 如何配置此属性? |
显示 1 到 1 的 1 个条目
上一页1下一页
-
-
-
- 依赖方 EntityId
-
-
身份验证插件能够在身份验证请求时将依赖方的实体 ID 传递给 CAS 服务器。实体 ID 以 url 参数的形式传递给 CAS 服务器,如下所示:
1 | https://sso.example.org/cas/login?service=<authentication-plugin-url>&entityId=<relying-party-entity-id> |
您还可以利用 entityId 参数并将其视为普通的 CAS 服务定义,以便将其用于多因素身份验证和授权。
有关更多信息,请参阅本指南。
CAS 服务器能够识别 entityId 参数并在登录页面上显示 SAML MDUI,该 MDUI 由与依赖方关联的元数据提供。
-
-
-
- 配置
-
-
通过在 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-saml-mdui"} |
CAS 配置目录中提供了以下设置和属性:
必填
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.saml-metadata-ui.resources= 元数据资源,用于根据传入的实体 ID 进行加载和解析,以便查找 MDUI。资源可以是 classpath/file/http 资源。如果每个元数据资源都有签名证书,则可以使用 :: 分隔符将它们添加到资源中。示例:classpath:/sp-metadata.xml::classpath:/pub.key。 org.apereo.cas.configuration.model.support.saml.mdui.SamlMetadataUIProperties. 如何配置此属性? |
显示 1 到 1 的 1 个条目
上一页1下一页
-
-
-
- 信赖方元数据
-
-
您可以允许 CAS 直接从通过设置馈送到 CAS 的元数据文档中识别 SAML MDUI。如果依赖方的元数据与请求的 entityId 匹配并包含 MDUI 元素,则这些元素将传递到装饰的登录页面。如果元数据中没有 MDUI,则将使用服务注册表中匹配服务的相关元素。
-
-
-
- Service Registry 元数据
-
-
您还可以在 CAS 服务注册表中将依赖方注册为常规服务应用程序,并在注册记录的正文中指定许多类似于 MDUI 的元素。示例如下:
1 2 3 4 5 6 7 8 9 10 11 | { "@class" : "org.apereo.cas.services.CasRegisteredService", "serviceId" : "relying-party-entity-id", "name" : "Test", "id" : 100, "description" : "This is the test application.", "evaluationOrder" : 10000, "logo": "images/logo.png", "informationUrl": "https://test.example.org/info", "privacyUrl": "https://test.example.org/privacy"} |
虽然在大多数情况下这是不必要的并且由 CAS 自动处理,但您可能还需要包含以下模块来考虑各种数据库驱动程序:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 | implementation "org.apereo.cas:cas-server-support-jdbc-drivers:${project.'cas.version'}" |
CAS 提供了以下 JPA 实现。在大多数情况下,指示的模块不需要包含在 CAS 构建中,实现将由功能模块自动选择。下面列出了详细信息以供参考,可能适用于可能需要开发的高级方案。
-
-
-
- Hibernate
-
-
Hibernate ORM 是 Java 编程语言的对象关系映射工具。它提供了一个框架,用于将面向对象的域模型映射到关系数据库。
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 | implementation "org.apereo.cas:cas-server-support-jpa-hibernate:${project.'cas.version'}" |
-
-
-
- EclipseLink 公司
-
-
EclipseLink 是 Eclipse Foundation 提供的开源 Eclipse Persistence Services 项目。该软件提供了一个可扩展的框架,允许 Java 开发人员与各种数据服务进行交互,包括数据库、Web 服务、对象 XML 映射和企业信息系统。
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-jpa-eclipselink"} |
对驱动程序的自动支持包括以下数据库。所有其他驱动程序都需要手动添加到构建配置中。
当 CAS 尝试使用和利用数据库资源、连接和查询时,控制与 Hibernate 相关的全局属性。
Show entries
搜索:
· cas.jdbc.case-insensitive=false 在选择物理表名称时,请确定是否应将名称视为不区分大小写。 如何配置此属性? |
· cas.jdbc.gen-ddl=true 是否在初始化 EntityManagerFactory 后生成 DDL,创建/更新所有相关表。 如何配置此属性? |
· cas.jdbc.physical-table-names= 指示 Hibernate 命名策略要使用的物理表名,以防需要为特定类型的数据库自定义表名。此处的键指示 CAS 提供的表名,值是数据库的转换物理名称。如果未找到 CAS 提供的表名的匹配项,则默认情况下将使用该名称。 如何配置此属性? |
· cas.jdbc.show-sql=false 是否应在 console/logs 中显示 SQL 查询。 如何配置此属性? |
显示 1 到 4 的 4 个条目
上一页1下一页
-
-
-
- H2
-
-
可用的驱动程序包括:
org.h2.Driver
方言 |
org.hibernate.dialect.H2Dialect |
-
-
-
- HSQLDB 数据库
-
-
可用的驱动程序包括:
org.hsqldb.jdbcDriver
方言 |
-
-
-
- Oracle
-
-
可用的驱动程序包括:
oracle.jdbc.driver.OracleDriver
方言 |
org.hibernate.dialect.OracleDialect |
-
-
-
- MYSQL 的
-
-
可用的驱动程序包括:
com.mysql.jdbc.Driver
com.mysql.cj.jdbc.Driver
方言 |
org.hibernate.dialect.MySQLDialect |
-
-
-
- PostgreSQL 数据库
-
-
可用的驱动程序包括:
org.postgresql.Driver
方言 |
org.hibernate.dialect.PostgreSQLDialect |
-
-
-
- MariaDB的
-
-
可用的驱动程序包括:
org.mariadb.jdbc.Driver
方言 |
org.hibernate.dialect.MariaDBDialect |
-
-
-
- Microsoft SQL 服务器
-
-
可用的驱动程序包括:
net.sourceforge.jtds.jdbc.Driver
com.microsoft.sqlserver.jdbc.SQLServerDriver
方言 |
org.hibernate.dialect.SQLServerDialect |