当前位置: 首页 > news >正文

CAS单点登录(第7版)16.模仿

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

  1. 模仿
    1. 概述
      1. 代理身份验证

代理身份验证(模拟),有时称为 Web 的 sudo,是代表其他用户进行身份验证的能力。

在这种情况下,两个参与者是:

在身份验证时验证其凭证的主管理员用户。

代理用户由管理员选择,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-surrogate-webflow"}

      1. 配置

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

自选

笔记

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

Show  entries

搜索:

·  cas.authn.surrogate.core.principal-attribute-names=

可以授权所有主要用户/主题进行模拟,这些主用户/主题携带特定属性,并通过 #principalAttributeValues 指定预定义的匹配值。不用说,在此步骤之前,需要先解析主主体的属性。匹配和比较操作不区分大小写。

 org.apereo.cas.configuration.model.support.surrogate.SurrogateCoreAuthenticationProperties.

如何配置此属性?

·  cas.authn.surrogate.core.principal-attribute-values=

与 principal 属叉匹配的正则表达式,用于确定帐户是否有权进行模拟。匹配和比较操作不区分大小写。

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

 org.apereo.cas.configuration.model.support.surrogate.SurrogateCoreAuthenticationProperties.

如何配置此属性?

·  cas.authn.surrogate.core.separator=+

用于区分代理帐户和管理员/主帐户的分隔符。例如,如果您是 casuser,并且需要切换到 jsmith 作为代理(模拟)用户,则提供给 CAS 的用户名将为 jsmith+casuser。

 org.apereo.cas.configuration.model.support.surrogate.SurrogateCoreAuthenticationProperties.

如何配置此属性?

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

上一页1下一页

      1. 账户存储

可以配置以下帐户存储,并将其用于查找为特定用户授权的代理项。

存储

描述

简单

请参阅本指南

JSON 格式

请参阅本指南

LDAP 协议

请参阅本指南

JDBC

请参阅本指南

REST

请参阅本指南

Groovy

请参阅本指南

自定义

请参阅本指南

请注意,多个账户存储可以合并,并且可以同时运行以查找来自不同存储的账户。

      1. 账户选择

请参阅本指南。

      1. 会话过期

请参阅本指南。

      1. 代理项属性

成功执行代理身份验证事件后,会将以下属性传回应用程序,以便检测模拟会话:

属性

指示

surrogateEnabled

Boolean 来指示是否模拟会话。

surrogatePrincipal

其凭证经过验证并充当模拟者的 admin 用户。

surrogateUser

模拟的代理用户。

      1. 代理访问策略

请参阅本指南。

      1. 代理审计

请参阅本指南。

      1. 代理主体决议

请参阅本指南。

      1. REST 协议

该功能将 CAS REST API 通信模型扩展到代理身份验证,允许 REST 凭证指定替代项并代表其他用户进行身份验证。要为 CAS REST API 激活代理身份验证,您需要选择以下选项之一:

使用以下语法格式化凭证用户名:

1

[surrogate-userid][separator][primary-userid]

传递包含代理 userid 的特殊请求标头 X-Surrogate-Principal。

    1. 帐户选择
      1. 帐户选择 - 代理身份验证

代理用户选择可以通过以下方式进行。

预选

 GUI

PRINCIPAL 属性

通配符

在这种情况下,代理用户身份事先是已知的,并在登录时使用特殊语法提供给 CAS。输入凭据时,应使用以下语法:

1

[impersonated-userid][separator][primary-userid]

例如,如果您是 casuser 并且需要以代理(模拟)用户身份切换到 jsmith,则提供给 CAS 的凭证 ID 或用户名将为 jsmith+casuser,其中分隔符为 +,可以通过 CAS 配置进行更改。CAS 将首先将 casuser 验证为主要用户,然后在允许时切换到 jsmith。

    1. 访问策略
      1. 访问策略 - 代理身份验证

每个代理帐户存储都能够确定模拟者列表以强制实施授权规则。此外,您可以按服务级别定义是否授权应用程序利用代理身份验证。仅当 Build authentication and SSO 会话是模拟会话时,才会激活代理访问策略。

属性

Groovy

确定是否为主要用户标记了足够的属性和权利,以允许执行模拟。在下面的示例中,仅当经过身份验证的主用户携带包含值 givenName 时,才允许对与 testId 匹配的应用程序进行代理Administrator

示例服务定义如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

{

  "@class" : "org.apereo.cas.services.CasRegisteredService",

  "serviceId" : "testId",

  "name" : "testId",

  "id" : 1,

  "accessStrategy" : {

    "@class" : "org.apereo.cas.services.SurrogateRegisteredServiceAccessStrategy",

    "surrogateRequiredAttributes" : {

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

      "givenName" : [ "java.util.HashSet", [ "Administrator" ] ]

    }

  }}

      1. 每个应用程序的代理身份验证

可以针对特定应用程序有选择地控制代理身份验证。默认情况下,所有服务和应用程序都有资格进行代理身份验证和模拟。

1

2

3

4

5

6

7

8

9

10

{

  "@class": "org.apereo.cas.services.CasRegisteredService",

  "serviceId": "^https://app.example.org",

  "name": "App",

  "id": 1,

  "surrogatePolicy" : {

    "@class" : "org.apereo.cas.services.DefaultRegisteredServiceSurrogatePolicy",

    "enabled": false

  }}

支持以下无密码策略设置:

名字

描述

enabled

Boolean 用于定义此服务是否允许代理身份验证。

    1. 会话过期
      1. 会话过期 - 代理身份验证

可以为模拟会话分配一个特定的过期策略,该策略将控制代理会话的持续时间。这意味着,一旦过期策略规定,作为模拟的一部分建立的 SSO 会话将正确地消失。建议您保持较短的过期时间(即 30 分钟),以避免可能的安全问题。

 记得

分配给模拟会话的过期策略应比分配给非代理会话的正常过期策略短。换句话说,如果控制单点登录会话的通常过期策略设置为 last2 小时,则代理会话过期时间应小于或等于 2 小时。

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

自选

笔记

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

Show  entries

搜索:

·  cas.authn.surrogate.tgt.time-to-kill-in-seconds=1800

超时(以秒为单位)以终止代理会话并认为票证已过期。

 org.apereo.cas.configuration.model.support.surrogate.SurrogateAuthenticationTicketGrantingTicketProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

    1. 要决议
      1. 主体解析 - 代理身份验证

控制 CAS 如何构建和标识最终代理主体。

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

必填

自选

Groovy 脚本

主体转换

笔记

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

Show  entries

搜索:

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

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

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

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

    1. 审计
      1. 审计 - 代理身份验证

默认情况下,在审核日志中跟踪代理身份验证事件:

1

2

3

4

5

6

7

8

9

=============================================================

WHO: (Primary User: [casuser], Surrogate User: [testuser])

WHAT: ST-1-u_R_SyXJJlENS0fBLwpecNE for https://example.app.edu

ACTION: SERVICE_TICKET_CREATED

APPLICATION: CAS

WHEN: Mon Sep 11 12:55:07 MST 2017

CLIENT IP ADDRESS: 127.0.0.1

SERVER IP ADDRESS: 127.0.0.1

=============================================================

此外,失败和成功事件也可能通过 SMS 和 / 或电子邮件消息传达给相关方。

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

必填

自选

电子邮件服务器

笔记

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

Show  entries

搜索:

·  cas.authn.surrogate.mail.attribute-name=

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

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

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

如何配置此属性?

·  cas.authn.surrogate.mail.from=

电子邮件发件人地址。

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

如何配置此属性?

·  cas.authn.surrogate.mail.subject=

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

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

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

如何配置此属性?

·  cas.authn.surrogate.sms.attribute-name=

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

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

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

如何配置此属性?

·  cas.authn.surrogate.sms.from=

邮件的发件人地址。

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

如何配置此属性?

显示 1 到 5 的 6 个条目

上一页12下一页

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

    1. 账户存储
      1. 简单
        1. 静态代理身份验证

代理帐户可以在 CAS 配置中静态定义。

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

必填

自选

LDAP & Active Directory

笔记

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

Show  entries

搜索:

·  cas.authn.surrogate.simple.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.surrogate.SurrogateSimpleAuthenticationProperties.

如何配置此属性?

·  cas.authn.surrogate.simple.bind-credential=

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

 org.apereo.cas.configuration.model.support.surrogate.SurrogateSimpleAuthenticationProperties.

如何配置此属性?

·  cas.authn.surrogate.simple.bind-dn=

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

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

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

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

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

 org.apereo.cas.configuration.model.support.surrogate.SurrogateSimpleAuthenticationProperties.

如何配置此属性?

·  cas.authn.surrogate.simple.ldap-url=

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

 org.apereo.cas.configuration.model.support.surrogate.SurrogateSimpleAuthenticationProperties.

如何配置此属性?

·  cas.authn.surrogate.simple.search-filter=

你也可以提供一个外部的 groovy 脚本,语法为 file:/path/to/GroovyScript.groovy,以动态地完全构建最终的过滤器模板。

 org.apereo.cas.configuration.model.support.surrogate.SurrogateSimpleAuthenticationProperties.

如何配置此属性?

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

上一页1下一页

      1. LDAP协议
        1. LDAP 代理身份验证

通过在 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-surrogate-authentication-ldap"}

也可以从 LDAP 实例中检索代理帐户。此类帐户应在为 LDAP 中的主要用户定义的已配置属性中找到,该属性的值可以根据您自己选择的正则表达式模式进行检查,以进一步缩小授权代理帐户的列表。

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

必填

自选

LDAP & Active Directory

笔记

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

Show  entries

搜索:

·  cas.authn.surrogate.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.surrogate.SurrogateLdapAuthenticationProperties.

如何配置此属性?

·  cas.authn.surrogate.ldap[0].bind-credential=

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

 org.apereo.cas.configuration.model.support.surrogate.SurrogateLdapAuthenticationProperties.

如何配置此属性?

·  cas.authn.surrogate.ldap[0].bind-dn=

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

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

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

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

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

 org.apereo.cas.configuration.model.support.surrogate.SurrogateLdapAuthenticationProperties.

如何配置此属性?

·  cas.authn.surrogate.ldap[0].ldap-url=

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

 org.apereo.cas.configuration.model.support.surrogate.SurrogateLdapAuthenticationProperties.

如何配置此属性?

·  cas.authn.surrogate.ldap[0].member-attribute-name=

必须在链接到 admin 用户的 LDAP 条目上找到的属性,该条目将帐户标记为已授权进行模拟。然后,将所有属性值与您在 #getMemberAttributeValueRegex() 中指定的模式进行比较。

 org.apereo.cas.configuration.model.support.surrogate.SurrogateLdapAuthenticationProperties.

如何配置此属性?

显示 1 到 5 的 7 个条目

上一页12下一页

      1. JSON 格式
        1. JSON 代理身份验证注册

代理帐户可以在外部 JSON 文件中定义,其路径通过 CAS 配置指定。JSON 文件的语法应与以下代码段匹配:

1

2

3

4

{

    "casuser": ["jsmith", "banderson"],

    "adminuser": ["jsmith", "tomhanks"]}

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

必填

笔记

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

Show  entries

搜索:

·  cas.authn.surrogate.json.location=

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

 org.apereo.cas.configuration.model.support.surrogate.SurrogateJsonAuthenticationProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

      1. REST 
        1. REST 代理身份验证

通过在 WAR 覆盖中包含以下依赖项来启用对代理身份验证的 REST 支持:

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-surrogate-authentication-rest"}

方法

描述

参数

响应

GET

委托人是否可以作为代理帐户进行身份验证。

surrogate, principal

202

GET

主体有资格模拟的帐户列表。

principal

用户名的 JSON 列表。

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

必填

自选

笔记

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

Show  entries

搜索:

·  cas.authn.surrogate.rest.url=

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

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

 org.apereo.cas.configuration.model.support.surrogate.SurrogateRestfulAuthenticationProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

      1. Groovy 
        1. Groovy 代理身份验证

代理帐户可以在外部 Groovy 脚本中定义,该脚本的路径是通过 CAS 配置指定的。脚本的主体可以定义如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

import org.apereo.cas.authentication.principal.*

def isWildcardAuthorized(Object... args) {

    def (surrogate,principal,service,logger) = args

    logger.info("Checking wildcard access {}", surrogate)

    return false}

def canAuthenticate(Object... args) {

    def (surrogate,principal,service,logger) = args

    logger.info("Checking surrogate access for {} and service ${service?.id}", surrogate)

    def accounts = getAccounts(principal.id, service, logger)

    return accounts.contains(surrogate)}

def getAccounts(Object... args) {

    def (user,service,logger) = args

    logger.info("Getting authorized accounts for {} and service ${service?.id}", user)

    return []}

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

必填

Groovy 脚本

笔记

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

Show  entries

搜索:

·  cas.authn.surrogate.groovy.location=

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

 org.apereo.cas.configuration.model.support.surrogate.SurrogateGroovyAuthenticationProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

要准备 CAS 以支持 Apache Groovy 并与之集成,请查看本指南。

用于检索给定管理员用户的合格帐户列表的 SQL 查询。

 org.apereo.cas.configuration.model.support.surrogate.SurrogateJdbcAuthenticationProperties.

如何配置此属性?

·  cas.authn.surrogate.jdbc.surrogate-search-query=SELECT COUNT(*) FROM surrogate WHERE username=?

用于确定管理员用户是否可以模拟其他用户的 Surrogate 查询。查询必须返回大于零的整数计数。

 org.apereo.cas.configuration.model.support.surrogate.SurrogateJdbcAuthenticationProperties.

如何配置此属性?

·  cas.authn.surrogate.jdbc.url=jdbc:hsqldb:mem:cas-hsql-database

数据库连接 URL。

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

 org.apereo.cas.configuration.model.support.surrogate.SurrogateJdbcAuthenticationProperties.

如何配置此属性?

显示 1 到 5 的 6 个条目

上一页12下一页

      1. JDBC

JDBC 代理身份验证

通过在 WAR 覆盖中包含以下依赖项来启用 JDBC 对代理身份验证的支持:

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-surrogate-authentication-jdbc"}

除了通常的数据库设置外,此模式还需要指定两个 SQL 查询;一个用于确定资格,另一个能够检索可为给定管理员用户模拟的帐户列表。

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

必填

自选

Hibernate 和 JDBC

笔记

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

Show  entries

搜索:

·  cas.authn.surrogate.jdbc.driver-class=org.hsqldb.jdbcDriver

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

 org.apereo.cas.configuration.model.support.surrogate.SurrogateJdbcAuthenticationProperties.

如何配置此属性?

·  cas.authn.surrogate.jdbc.password=

数据库连接密码。

 org.apereo.cas.configuration.model.support.surrogate.SurrogateJdbcAuthenticationProperties.

如何配置此属性?

·  cas.authn.surrogate.jdbc.surrogate-account-query=SELECT surrogate_user AS surrogateAccount FROM surrogate WHERE username=?

用于检索给定管理员用户的合格帐户列表的 SQL 查询。

 org.apereo.cas.configuration.model.support.surrogate.SurrogateJdbcAuthenticationProperties.

如何配置此属性?

·  cas.authn.surrogate.jdbc.surrogate-search-query=SELECT COUNT(*) FROM surrogate WHERE username=?

用于确定管理员用户是否可以模拟其他用户的 Surrogate 查询。查询必须返回大于零的整数计数。

 org.apereo.cas.configuration.model.support.surrogate.SurrogateJdbcAuthenticationProperties.

如何配置此属性?

·  cas.authn.surrogate.jdbc.url=jdbc:hsqldb:mem:cas-hsql-database

数据库连接 URL。

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

 org.apereo.cas.configuration.model.support.surrogate.SurrogateJdbcAuthenticationProperties.

如何配置此属性?

显示 1 到 5 的 6 个条目

上一页12下一页

      1. 自定义
        1. 自定义代理身份验证

如果您想设计自己的账户商店,您可以遵循以下方法:

1

2

3

4

5

6

7

8

9

10

11

12

package org.apereo.cas.custom;

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

    @Bean

    public SurrogateAuthenticationService surrogateAuthenticationService() {

      ...

    }

}

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

相关文章:

CAS单点登录(第7版)16.模仿

如有疑问,请看视频:CAS单点登录(第7版) 模仿 概述 代理身份验证 代理身份验证(模拟),有时称为 Web 的 sudo,是代表其他用户进行身份验证的能力。 在这种情况下,两个参…...

预留:大数据Hadoop之——部署hadoop+hive+Mysql环境(Linux)

传送门目录 前期准备 一、JDK的安装 1、安装jdk 2、配置Java环境变量 3、加载环境变量 4、进行校验 二、hadoop的集群搭建 1、hadoop的下载安装 2、配置文件设置 2.1. 配置 hadoop-env.sh 2.2. 配置 core-site.xml 2.3. 配置hdfs-site.xml 2.4. 配置 yarn-site.xm…...

RabbitMQ介绍以及基本使用

文章目录 一、什么是消息队列? 二、消息队列的作用(优点) 1、解耦 2、流量削峰 3、异步 4、顺序性 三、RabbitMQ基本结构 四、RabbitMQ队列模式 1、简单队列模式 2、工作队列模式 3、发布/订阅模式 4、路由模式 5、主题模式 6、…...

C++演示中介模式

避免两个模块之间的耦合&#xff0c;使用中介模式解决。下面是C代码 #include <iostream> #include <vector>using namespace std;class client;//中介 class mediator { public:void addclient(client* client) {clientVec.push_back(client);}void send(const s…...

Vue的简单入门 一

声明&#xff1a;本版块根据B站学习&#xff0c;创建的是vue3项目&#xff0c;用的是vue2语法风格&#xff0c;仅供初学者学习。 目录 一、Vue项目的创建 1.已安装15.0或更高版本的Node.js 2.创建项目 二、 简单认识目录结构 三、模块语法中的指令 1.v-html 1.文本插值…...

【免费送书活动】《MySQL 9从入门到性能优化(视频教学版)》

本博主免费赠送读者3本书&#xff0c;书名为《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;》。 《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;&#xff08;数据库技术丛书&#xff09;》(王英英)【摘要 书评 试读】- 京东图书 这本书已经公开…...

export default与export区别

1.定义&#xff1a; export default‌&#xff1a;用于导出模块中的默认成员。一个模块中只能有一个export default&#xff0c;通常用于导出模块的主要功能或对象。导入时可以使用任意名称&#xff0c;因为它没有具体的名称‌ ‌export‌&#xff1a;用于导出模块中的多个成…...

最佳的出牌方法

最佳的出牌方法 真题目录: 点击去查看 E 卷 200分题型 题目描述 手上有一副扑克牌,每张牌按牌面数字记分(J=11,Q=12,K=13,没有大小王),出牌时按照以下规则记分: 出单张,记牌面分数,例如出一张2,得分为2出对或3张,记牌面分数总和再x2,例如出3张3,得分为(3+3+3)x2=1…...

Kotlin 2.1.0 入门教程(二十一)数据类

数据类 数据类主要用于存储数据。 对于每个数据类&#xff0c;编译器会自动生成一些额外的成员函数&#xff0c;这些函数支持将实例打印为易读的输出、比较实例、复制实例等操作。 数据类使用 data 关键字标记&#xff1a; data class User(val name: String, val age: Int…...

30天开发操作系统 第 20 天 -- API

前言 大家早上好&#xff0c;今天我们继续努力哦。 昨天我们已经实现了应用程序的运行, 今天我们来实现由应用程序对操作系统功能的调用(即API, 也叫系统调用)。 为什么这样的功能称为“系统调用”(system call)呢&#xff1f;因为它是由应用程序来调用(操作)系统中的功能来完…...

WEB安全--SQL注入--floor报错注入

一、原理&#xff1a; floor()报错注入需要组合count()、rand()、group by()等函数使用&#xff0c;通过一些手段使数据库在处理语句时产生主键重复的报错&#xff0c;从而达到爆出信息的目的 二、内容&#xff1a; ?id-1 or (select 1 from (select count(*),concat(databa…...

【java面向对象的三大特性】封装、继承和多态

目录标题 一、封装&#xff08;Encapsulation&#xff09;&#xff1a;二、继承&#xff08;Inheritance&#xff09;&#xff1a;三、多态&#xff08;Polymorphism&#xff09;&#xff1a;1. 多态的三个必要条件&#xff1a;2.多态的具体实现&#xff1a;3.多态的使用场景&a…...

Hermite 插值

Hermite 插值 不少实际问题不但要求在节点上函数值相等&#xff0c;而且还要求它的导数值相等&#xff0c;甚至要求高阶导数值也相等。满足这种要求的插值多项式就是 Hermite 插值多项式。 下面只讨论函数值与导数值个数相等的情况。设在节点 a ≤ x 0 < x 1 < ⋯ <…...

【推理llm论文精度】DeepSeek-R1:强化学习驱动LLM推理能力飞跃

最近deepseek R1模型大火&#xff0c;正好复习一下他家的技惊四座的论文https://arxiv.org/pdf/2501.12948 近年来&#xff0c;大型语言模型&#xff08;LLM&#xff09;在推理能力上取得了显著进展&#xff0c;但如何进一步有效提升仍然是研究热点。DeepSeek-AI发布了 DeepS…...

arm linux下的中断处理过程。

本文基于ast2600 soc来阐述&#xff0c;内核版本为5.10 1.中断gic初始化 start_kernel() -> init_IRQ() -> irqchip_init() of_irq_init()主要是构建of_intc_desc. 489-514: 从__irqchip_of_table中找到dts node中匹配的of_table(匹配matches->compatible)&#xf…...

C语言:指针详解

C语言&#xff1a;指针详解 1&#xff1a;指针的基本概念1&#xff1a;什么是指针2&#xff1a;为什么要引入指针3&#xff1a;指针的作用4&#xff1a;指针的类型 2&#xff1a;指针的声明与初始化1&#xff1a; 指针的声明2&#xff1a; 指针的初始化 3&#xff1a;指针的操作…...

github用户名密码登陆失效了

问题&#xff1a; git push突然推代码需要登陆&#xff0c;但是用户名和密码正确输入后&#xff0c;却提示403 git push# Username for https://github.com: **** #Password for https://gyp-programmergithub.com: #remote: Permission to gyp-programmer/my-app.git denie…...

【删除tomcat默认管理控制台】

停止Tomcat&#xff1a; ./catalina.sh stop 删除管理控制台应用&#xff1a; 进入Tomcat的webapps目录&#xff1a; cd /path/to/tomcat/webapps List item 删除manager和host-manager文件夹&#xff1a; rm -rf manager host-manager 启动Tomcat&#xff1a; ./catali…...

动态库与静态库:深入解析与应用

在软件开发中&#xff0c;库&#xff08;Library&#xff09;是预编译的代码集合&#xff0c;用于在多个程序之间共享功能。根据链接方式的不同&#xff0c;库主要分为两种类型&#xff1a;静态库&#xff08;Static Library&#xff09; 和 动态库&#xff08;Dynamic Library…...

【鱼眼镜头12】Scaramuzza的鱼眼相机模型实操,不依赖于具体的相机几何结构,直接从图像数据出发,因此更具灵活性。

文章目录 Scaramuzza相机模型标定效果2、原理和代码代码1、 2D映射到3D&#xff0c;函数输入为2D点坐标OCAM参数代码功能详解2、3D --> 2D 3、总结Scaramuzza 模型的核心思想Scaramuzza 模型的核心思想与 Kannala-Brandt 模型的对比Scaramuzza 模型的独特之处Scaramuzza 的意…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...