当前位置: 首页 > 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 的意…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中&#xff0c;明确沟通敏捷转型目的尤为关键&#xff0c;团队成员只有清晰理解转型背后的原因和利益&#xff0c;才能降低对变化的…...