添加用户

您可以使用目录管理器服务API(Java和Web服务)以编程方式将用户添加到AEM Forms。 添加用户后,在执行需要用户的服务操作时,可以使用该用户。 例如,您可以为新用户分配任务。

步骤摘要

要添加用户,请执行以下步骤:

  1. 包括项目文件。
  2. 创建DirectoryManagerService客户端。
  3. 定义用户信息。
  4. 将用户添加到AEM Forms。
  5. 确认已添加用户。

包含项目文件

在开发项目中包含必需的文件。 如果您使用Java创建客户端应用程序,请包含必需的JAR文件。 如果您使用的是Web服务,请包含代理文件。

创建DirectoryManagerService客户端

在以编程方式执行目录管理器服务操作之前,请创建目录管理器服务API客户端。

定义用户信息

使用目录管理器服务API添加新用户时,请为该用户定义信息。 通常,在添加新用户时,需定义以下值:

  • 域名:用户所属的域(例如, DefaultDom)。
  • 用户标识符值:用户的标识符值(例如, wblue)。
  • 主类型:用户类型(例如,您可以指定 USER).
  • 给定名称:用户的给定名称(例如, Wendy)。
  • 姓氏:用户的姓氏(例如, Blue).
  • 区域设置:用户的区域设置信息。

将用户添加到AEM Forms

定义用户信息后,可以将用户添加到AEM Forms。 要添加用户,请调用 DirectoryManagerServiceClient 对象 createLocalUser 方法。

确认已添加用户

您可以验证是否已添加用户,以确保未出现任何问题。 使用用户标识符值查找新用户。

另请参阅

使用Java API添加用户

使用Web服务API添加用户

包括AEM Forms Java库文件

设置连接属性

删除用户

使用Java API添加用户

使用目录管理器服务API(Java)添加用户:

  1. 包括项目文件。

    在Java项目的类路径中包含客户端JAR文件,如adobe-usermanager-client.jar。

  2. 创建DirectoryManagerServices客户端。

    创建 DirectoryManagerServiceClient 对象,并使用其构造函数进行传递 ServiceClientFactory 包含连接属性的对象。

  3. 定义用户信息。

    • 创建 UserImpl 对象。
    • 通过调用 UserImpl 对象 setDomainName 方法。 传递指定域名的字符串值。
    • 通过调用 UserImpl 对象 setPrincipalType 方法。 传递指定用户类型的字符串值。 例如,您可以指定 USER.
    • 通过调用 UserImpl 对象 setUserid 方法。 传递指定用户标识符值的字符串值。 例如,您可以指定 wblue.
    • 通过调用 UserImpl 对象 setCanonicalName 方法。 传递指定用户规范名称的字符串值。 例如,您可以指定 wblue.
    • 通过调用 UserImpl 对象 setGivenName 方法。 传递指定用户给定名称的字符串值。 例如,您可以指定 Wendy.
    • 通过调用 UserImpl 对象 setFamilyName 方法。 传递指定用户族名的字符串值。 例如,您可以指定 Blue.
    注意
    调用属于 UserImpl 对象来设置其他值。 例如,您可以通过调用 UserImpl 对象 setLocale 方法。
  4. 将用户添加到AEM Forms。

    调用 DirectoryManagerServiceClient 对象 createLocalUser 方法并传递以下值:

    • UserImpl 表示新用户的对象
    • 表示用户密码的字符串值

    createLocalUser 方法会返回一个指定本地用户标识符值的字符串值。

  5. 确认已添加用户。

    • 创建 PrincipalSearchFilter 对象。
    • 通过调用 PrincipalSearchFilter 对象 setUserId 方法。 传递表示用户标识符值的字符串值。
    • 调用 DirectoryManagerServiceClient 对象 findPrincipals 方法和通过 PrincipalSearchFilter 对象。 此方法将返回 java.util.List 实例,其中每个元素是 User 对象。 循环访问 java.util.List 实例来查找用户。

使用Web服务API添加用户

使用目录管理器服务API(Web服务)添加用户:

  1. 包括项目文件。

    创建使用MTOM的Microsoft .NET项目。 确保为服务引用使用以下WSDL定义: http://localhost:8080/soap/services/DirectoryManagerService?WSDL&lc_version=9.0.1.

    注意
    替换 localhost 具有托管AEM Forms的服务器的IP地址。
  2. 创建DirectoryManagerService客户端。

    • 创建 DirectoryManagerServiceClient 对象。

    • 创建 DirectoryManagerServiceClient.Endpoint.Address 对象 System.ServiceModel.EndpointAddress 构造函数。 将指定WSDL的字符串值传递到AEM Forms服务(例如, http://localhost:8080/soap/services/DirectoryManagerService?blob=mtom)。 您无需使用 lc_version 属性。 在创建服务引用时,会使用此属性。 确保指定 ?blob=mtom.

    • 创建 System.ServiceModel.BasicHttpBinding 对象,方法是获取 DirectoryManagerServiceClient.Endpoint.Binding 字段。 将返回值转换为 BasicHttpBinding.

    • 设置 System.ServiceModel.BasicHttpBinding 对象 MessageEncoding 字段 WSMessageEncoding.Mtom. 此值可确保使用MTOM。

    • 通过执行以下任务,启用基本HTTP身份验证:

      • 将AEM表单用户名分配给字段 DirectoryManagerServiceClient.ClientCredentials.UserName.UserName.
      • 为字段分配相应的密码值 DirectoryManagerServiceClient.ClientCredentials.UserName.Password.
      • 指定常量值 HttpClientCredentialType.Basic 到字段 BasicHttpBindingSecurity.Transport.ClientCredentialType.
      • 指定常量值 BasicHttpSecurityMode.TransportCredentialOnly 到字段 BasicHttpBindingSecurity.Security.Mode.
  3. 定义用户信息。

    • 创建 UserImpl 对象。
    • 通过为 UserImpl 对象 domainName 字段。
    • 通过为 UserImpl 对象 principalType 字段。 例如,您可以指定 USER.
    • 通过为 UserImpl 对象 userid 字段。
    • 通过为 UserImpl 对象 canonicalName 字段。
    • 通过为 UserImpl 对象 givenName 字段。
    • 通过为 UserImpl 对象 familyName 字段。
  4. 将用户添加到AEM Forms。

    调用 DirectoryManagerServiceClient 对象 createLocalUser 方法并传递以下值:

    • UserImpl 表示新用户的对象
    • 表示用户密码的字符串值

    createLocalUser 方法会返回一个指定本地用户标识符值的字符串值。

  5. 确认已添加用户。

    • 创建 PrincipalSearchFilter 对象。
    • 通过为 PrincipalSearchFilter 对象 userId 字段。
    • 调用 DirectoryManagerServiceClient 对象 findPrincipals 方法和通过 PrincipalSearchFilter 对象。 此方法将返回 MyArrayOfUser 集合对象,其中每个元素都是 User 对象。 循环访问 MyArrayOfUser 收藏集来查找用户。

删除用户

您可以使用目录管理器服务API(Java和Web服务)以编程方式从AEM Forms中删除用户。 删除用户后,无法再使用该用户执行需要用户的服务操作。 例如,您无法将任务分配给已删除的用户。

步骤摘要

要删除用户,请执行以下步骤:

  1. 包括项目文件。
  2. 创建DirectoryManagerService客户端。
  3. 指定要删除的用户。
  4. 从AEM Forms中删除用户。

包含项目文件

在开发项目中包含必需的文件。 如果您使用Java创建客户端应用程序,请包含必需的JAR文件。 如果您使用的是Web服务,请包含代理文件。

创建DirectoryManagerService客户端

在以编程方式执行目录管理器服务API操作之前,请创建目录管理器服务客户端。

指定要删除的用户

您可以使用用户的标识符值指定要删除的用户。

从AEM Forms中删除用户

要删除用户,请调用 DirectoryManagerServiceClient 对象 deleteLocalUser 方法。

另请参阅

使用Java API删除用户

使用Web服务API删除用户

包括AEM Forms Java库文件

设置连接属性

添加用户

使用Java API删除用户

使用目录管理器服务API(Java)删除用户:

  1. 包括项目文件。

    在Java项目的类路径中包含客户端JAR文件,如adobe-usermanager-client.jar。

  2. 创建DirectoryManagerService客户端。

    创建 DirectoryManagerServiceClient 对象,并使用其构造函数进行传递 ServiceClientFactory 包含连接属性的对象。

  3. 指定要删除的用户。

    • 创建 PrincipalSearchFilter 对象。
    • 通过调用 PrincipalSearchFilter 对象 setUserId 方法。 传递表示用户标识符值的字符串值。
    • 调用 DirectoryManagerServiceClient 对象 findPrincipals 方法和通过 PrincipalSearchFilter 对象。 此方法将返回 java.util.List 实例,其中每个元素是 User 对象。 循环访问 java.util.List 实例来查找要删除的用户。
  4. 从AEM Forms中删除用户。

    调用 DirectoryManagerServiceClient 对象 deleteLocalUser 方法,并传递 User 对象 oid 字段。 调用 User 对象 getOid 方法。 使用 User 从检索的对象 java.util.List 实例。

使用Web服务API删除用户

使用目录管理器服务API(Web服务)删除用户:

  1. 包括项目文件。

    在Java项目的类路径中包含客户端JAR文件,如adobe-usermanager-client.jar。

  2. 创建DirectoryManagerService客户端。

    • 创建 DirectoryManagerServiceClient 对象。

    • 创建 DirectoryManagerServiceClient.Endpoint.Address 对象 System.ServiceModel.EndpointAddress 构造函数。 将指定WSDL的字符串值传递到AEM Forms服务(例如, http://localhost:8080/soap/services/DirectoryManagerService?blob=mtom)。 您无需使用 lc_version 属性。 在创建服务引用时,会使用此属性。 确保指定 blob=mtom.

    • 创建 System.ServiceModel.BasicHttpBinding 对象,方法是获取 DirectoryManagerServiceClient.Endpoint.Binding 字段。 将返回值转换为 BasicHttpBinding.

    • 设置 System.ServiceModel.BasicHttpBinding 对象 MessageEncoding 字段 WSMessageEncoding.Mtom. 此值可确保使用MTOM。

    • 通过执行以下任务,启用基本HTTP身份验证:

      • 将AEM表单用户名分配给字段 DirectoryManagerServiceClient.ClientCredentials.UserName.UserName.
      • 为字段分配相应的密码值 DirectoryManagerServiceClient.ClientCredentials.UserName.Password.
      • 指定常量值 HttpClientCredentialType.Basic 到字段 BasicHttpBindingSecurity.Transport.ClientCredentialType.
      • 指定常量值 BasicHttpSecurityMode.TransportCredentialOnly 到字段 BasicHttpBindingSecurity.Security.Mode.
  3. 指定要删除的用户。

    • 创建 PrincipalSearchFilter 对象。
    • 通过为 PrincipalSearchFilter 对象 userId 字段。
    • 调用 DirectoryManagerServiceClient 对象 findPrincipals 方法和通过 PrincipalSearchFilter 对象。 此方法将返回 MyArrayOfUser 集合对象,其中每个元素都是 User 对象。 循环访问 MyArrayOfUser 收藏集来查找用户。 的 User 从检索的对象 MyArrayOfUser 集合对象用于删除用户。
  4. 从AEM Forms中删除用户。

    通过传递 User 对象 oid 字段值 DirectoryManagerServiceClient 对象 deleteLocalUser 方法。

创建群组

您可以使用目录管理器服务API(Java和Web服务)以编程方式创建AEM Forms组。 创建组后,可以使用该组执行需要组的服务操作。 例如,您可以将用户分配给新群组。 (请参阅 管理用户和群组.)

步骤摘要

要创建组,请执行以下步骤:

  1. 包括项目文件。
  2. 创建DirectoryManagerService客户端。
  3. 确定组不存在。
  4. 创建群组。
  5. 对组执行操作。

包含项目文件

在开发项目中包含必需的文件。 如果您使用Java创建客户端应用程序,请包含必需的JAR文件。

必须将以下JAR文件添加到项目的类路径中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-utilities.jar(在JBoss上部署AEM Forms时必需)
  • jbossall-client.jar(在JBoss上部署AEM Forms时必需)

有关这些JAR文件的位置的信息,请参阅 包括AEM Forms Java库文件.

创建DirectoryManagerService客户端

在以编程方式执行目录管理器服务操作之前,请创建目录管理器服务API客户端。

确定组是否存在

创建群组时,请确保该群组不存在于同一域中。 也就是说,两个组不能在同一域中具有相同的名称。 要执行此任务,请执行搜索并根据两个值筛选搜索结果。 将主体类型设置为 com.adobe.idp.um.api.infomodel.Principal.PRINCIPALTYPE_GROUP 以确保仅返回组。 另外,请确保指定域名。

创建群组

确定域中不存在群组后,请创建群组并指定以下属性:

  • CommonName:组的名称。
  • :添加群组的域。
  • 描述:群组的描述。

对组执行操作

创建群组后,可以使用该群组执行操作。 例如,您可以将用户添加到群组。 要将用户添加到群组,请检索用户和群组的唯一标识符值。 将这些值传递给 addPrincipalToLocalGroup 方法。

另请参阅

使用Java API创建组

包括AEM Forms Java库文件

设置连接属性

添加用户

删除用户

使用Java API创建组

使用目录管理器服务API(Java)创建组:

  1. 包括项目文件。

    在Java项目的类路径中包含客户端JAR文件,如adobe-usermanager-client.jar。

  2. 创建DirectoryManagerService客户端。

    创建 DirectoryManagerServiceClient 对象,并使用其构造函数进行传递 ServiceClientFactory 包含连接属性的对象。

  3. 确定组是否存在。

    • 创建 PrincipalSearchFilter 对象。
    • 通过调用 PrincipalSearchFilter 对象 setPrincipalType 对象。 传递值 com.adobe.idp.um.api.infomodel.Principal.PRINCIPALTYPE_GROUP.
    • 通过调用 PrincipalSearchFilter 对象 setSpecificDomainName 对象。 传递指定域名的字符串值。
    • 要查找组,请调用 DirectoryManagerServiceClient 对象 findPrincipals 方法(主体可以是组)。 传递 PrincipalSearchFilter 指定主体类型和域名的对象。 此方法将返回 java.util.List 其中每个元素都是 Group 实例。 每个组实例都符合使用 PrincipalSearchFilter 对象。
    • 循环访问 java.util.List 实例。 对于每个元素,检索组名称。 确保组名称不等于新组名称。
  4. 创建群组。

    • 如果组不存在,请调用 Group 对象 setCommonName 方法,并传递指定组名称的字符串值。
    • 调用 Group 对象 setDescription 方法,并传递指定组描述的字符串值。
    • 调用 Group 对象 setDomainName 方法,并传递指定域名的字符串值。
    • 调用 DirectoryManagerServiceClient 对象 createLocalGroup 方法和通过 Group 实例。

    createLocalUser 方法会返回一个指定本地用户标识符值的字符串值。

  5. 对组执行操作。

    • 创建 PrincipalSearchFilter 对象。
    • 通过调用 PrincipalSearchFilter 对象 setUserId 方法。 传递表示用户标识符值的字符串值。
    • 调用 DirectoryManagerServiceClient 对象 findPrincipals 方法和通过 PrincipalSearchFilter 对象。 此方法将返回 java.util.List 实例,其中每个元素是 User 对象。 循环访问 java.util.List 实例来查找用户。
    • 通过调用 DirectoryManagerServiceClient 对象 addPrincipalToLocalGroup 方法。 传递的返回值 User 对象 getOid 方法。 传递的返回值 Group 对象 getOid 方法(使用 Group 表示新组的实例)。

管理用户和群组

本主题介绍如何使用(Java)以编程方式分配、删除和查询域、用户和组。

注意
配置域时,必须为组和用户设置唯一标识符。 所选属性不仅在LDAP环境中必须是唯一的,而且必须不可更改,并且不会在目录中发生更改。 此属性还必须是简单的字符串数据类型(Active Directory 2000/2003当前允许的唯一例外是 "objectsid",这是二进制值)。 Novell eDirectory属性 "GUID"例如,不是简单的字符串数据类型,因此无法正常使用。
  • 对于Active Directory,请使用 "objectsid".
  • 对于SunOne,请使用 "nsuniqueid".
注意
不支持在LDAP目录同步过程中创建多个本地用户和组。 尝试此进程可能会导致错误。

步骤摘要

要管理用户和群组,请执行以下步骤:

  1. 包括项目文件。
  2. 创建DirectoryManagerService客户端。
  3. 调用相应的用户或组操作。

包含项目文件

在开发项目中包含必需的文件。 如果您使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用的是Web服务,请确保包含代理文件。

创建DirectoryManagerService客户端

在以编程方式执行目录管理器服务操作之前,必须创建目录管理器服务客户端。 使用Java API,可通过创建 DirectoryManagerServiceClient 对象。 使用Web服务API,可通过创建 DirectoryManagerServiceService 对象。

调用相应的用户或组操作

创建服务客户端后,可以调用用户或组管理操作。 服务客户端允许您分配、删除和查询域、用户和组。 请注意,可以将目录主体或本地主体添加到本地组,但无法将本地主体添加到目录组。

另请参阅

使用Java API管理用户和组

使用Web服务API管理用户和组

包括AEM Forms Java库文件

设置连接属性

用户管理器API快速入门

使用Java API管理用户和组

要使用(Java)以编程方式管理用户、组和域,请执行以下任务:

  1. 包括项目文件。

    在Java项目的类路径中包含客户端JAR文件,如adobe-usermanager-client.jar。 有关这些文件位置的信息,请参阅 包括AEM Forms Java库文件.

  2. 创建DirectoryManagerService客户端。

    创建 DirectoryManagerServiceClient 对象,并使用其构造函数进行传递 ServiceClientFactory 包含连接属性的对象。 有关信息,请参阅 设置连接属性​.

  3. 调用相应的用户或组操作。

    要查找用户或组,请调用 DirectoryManagerServiceClient 对象查找主体的方法(因为主体可以是用户或组)。 在以下示例中, findPrincipals 方法(使用搜索过滤器 PrincipalSearchFilter 对象)。

    由于此例中的返回值是 java.util.List 包含 Principal 对象,遍历结果并转换 Principal 对象 UserGroup 对象。

    使用结果 UserGroup 对象(两者均继承自 Principal 界面),检索您在工作流中需要的信息。 例如,域名和规范名称值组合在一起,可唯一标识主体。 调用 Principal 对象 getDomainNamegetCanonicalName 方法。

    要删除本地用户,请调用 DirectoryManagerServiceClient 对象 deleteLocalUser 方法和传递用户的标识符。

    要删除本地组,请调用 DirectoryManagerServiceClient 对象 deleteLocalGroup 方法并传递组的标识符。

使用Web服务API管理用户和组

要使用目录管理器服务API(Web服务)以编程方式管理用户、组和域,请执行以下任务:

  1. 包括项目文件。

  2. 创建DirectoryManagerService客户端。

    创建 DirectoryManagerServiceService 对象。

  3. 调用相应的用户或组操作。

    要查找用户或组,请调用 DirectoryManagerServiceService 对象查找主体的方法(因为主体可以是用户或组)。 在以下示例中, findPrincipalsWithFilter 方法(使用搜索过滤器 PrincipalSearchFilter 对象)。 使用 PrincipalSearchFilter 对象,仅当 isLocal 属性设置为 true. 此行为与Java API可能发生的行为不同。

    注意
    如果未在搜索筛选器中指定结果的最大数(通过 PrincipalSearchFilter.resultsMax 字段),则最多将返回1000个结果。 这与使用Java API时发生的行为不同,Java API默认最大值为10个结果。 此外,搜索方法如 findGroupMembers 除非在搜索筛选器中指定了结果的最大数量(例如,通过 GroupMembershipSearchFilter.resultsMax 字段。 这适用于继承自 GenericSearchFilter 类。 有关更多信息,请参阅 AEM Forms API参考.

    由于此例中的返回值是 object[] 包含 Principal 对象,遍历结果并转换 Principal 对象 UserGroup 对象。

    使用结果 UserGroup 对象(两者均继承自 Principal 界面),检索您在工作流中需要的信息。 例如,域名和规范名称值组合在一起,可唯一标识主体。 调用 Principal 对象 domainNamecanonicalName 字段。

    要删除本地用户,请调用 DirectoryManagerServiceService 对象 deleteLocalUser 方法和传递用户的标识符。

    要删除本地组,请调用 DirectoryManagerServiceService 对象 deleteLocalGroup 方法并传递组的标识符。

管理角色和权限

本主题介绍如何使用授权管理器服务API(Java)以编程方式分配、删除和确定角色和权限。

在AEM Forms, 角色 是访问一个或多个系统级别资源的一组权限。 这些权限通过用户管理创建,并由服务组件强制执行。 例如,管理员可以将“策略集作者”角色分配给一组用户。 然后,Rights Management将允许具有该角色的组的用户通过管理控制台创建策略集。

角色有两种类型: 默认角色自定义角色. 默认角色(系统角色) 已经在AEM Forms居住了。 假定默认角色不能被管理员删除或修改,因此不可变。 因此,管理员创建的自定义角色可变,管理员随后可以修改或删除这些角色。

角色可简化权限管理。 当角色被分配给主体时,一组权限被自动地分配给该主体,并且主体的所有与访问相关的决策都基于被分配的总权限集。

步骤摘要

要管理角色和权限,请执行以下步骤:

  1. 包括项目文件。
  2. 创建AuthorizationManagerService客户端。
  3. 调用相应的角色或权限操作。

包含项目文件

在开发项目中包含必需的文件。 如果您使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用的是Web服务,请确保包含代理文件。

创建AuthorizationManagerService客户端

在以编程方式执行用户管理授权管理器服务操作之前,必须创建授权管理器服务客户端。 使用Java API,可通过创建 AuthorizationManagerServiceClient 对象。

调用适当的角色或权限操作

创建服务客户端后,可以调用角色或权限操作。 服务客户端允许您分配、删除和确定角色和权限。

另请参阅

使用Java API管理角色和权限

使用Web服务API管理角色和权限

包括AEM Forms Java库文件

设置连接属性

用户管理器API快速入门

使用Java API管理角色和权限

要使用授权管理器服务API(Java)管理角色和权限,请执行以下任务:

  1. 包括项目文件。

    在Java项目的类路径中包含客户端JAR文件,如adobe-usermanager-client.jar。

  2. 创建AuthorizationManagerService客户端。

    创建 AuthorizationManagerServiceClient 对象,并使用其构造函数进行传递 ServiceClientFactory 包含连接属性的对象。

  3. 调用相应的角色或权限操作。

    要将角色分配给承担者,请调用 AuthorizationManagerServiceClient 对象 assignRole 方法并传递以下值:

    • A java.lang.String 包含角色标识符的对象
    • 数组 java.lang.String 包含主体标识符的对象。

    要从主体中删除角色,请调用 AuthorizationManagerServiceClient 对象 unassignRole 方法并传递以下值:

    • A java.lang.String 包含角色标识符的对象。
    • 数组 java.lang.String 包含主体标识符的对象。

使用Web服务API管理角色和权限

使用授权管理器服务API(Web服务)管理角色和权限:

  1. 包括项目文件。

    创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义: http://localhost:8080/soap/services/AuthorizationManagerService?WSDL&lc_version=9.0.1.

    注意
    替换 localhost 具有托管AEM Forms的服务器的IP地址。
  2. 创建AuthorizationManagerService客户端。

    • 创建 AuthorizationManagerServiceClient 对象。

    • 创建 AuthorizationManagerServiceClient.Endpoint.Address 对象 System.ServiceModel.EndpointAddress 构造函数。 将指定WSDL的字符串值传递到AEM Forms服务(例如, http://localhost:8080/soap/services/AuthorizationManagerService?blob=mtom.) 您无需使用 lc_version 属性。 在创建服务引用时,会使用此属性。

    • 创建 System.ServiceModel.BasicHttpBinding 对象,方法是获取 AuthorizationManagerServiceClient.Endpoint.Binding 字段。 将返回值转换为 BasicHttpBinding.

    • 设置 System.ServiceModel.BasicHttpBinding 对象 MessageEncoding 字段 WSMessageEncoding.Mtom. 此值可确保使用MTOM。

    • 通过执行以下任务,启用基本HTTP身份验证:

      • 将AEM表单用户名分配给字段 AuthorizationManagerServiceClient.ClientCredentials.UserName.UserName.
      • 为字段分配相应的密码值 AuthorizationManagerServiceClient.ClientCredentials.UserName.Password.
      • 指定常量值 HttpClientCredentialType.Basic 到字段 BasicHttpBindingSecurity.Transport.ClientCredentialType.
      • 指定常量值 BasicHttpSecurityMode.TransportCredentialOnly 到字段 BasicHttpBindingSecurity.Security.Mode.
  3. 调用相应的角色或权限操作。

    要将角色分配给承担者,请调用 AuthorizationManagerServiceClient 对象 assignRole 方法并传递以下值:

    • A string 包含角色标识符的对象
    • A MyArrayOf_xsd_string 包含主体标识符的对象。

    要从主体中删除角色,请调用 AuthorizationManagerServiceService 对象 unassignRole 方法并传递以下值:

    • A string 包含角色标识符的对象。
    • 数组 string 包含主体标识符的对象。

验证用户

本主题介绍如何使用身份验证管理器服务API(Java)来启用客户端应用程序以编程方式对用户进行身份验证。

可能需要用户身份验证才能与存储安全数据的企业数据库或其他企业存储库进行交互。

例如,假设用户在网页中输入用户名和密码,并将值提交到托管Forms的J2EE应用程序服务器。 Forms自定义应用程序可以使用身份验证管理器服务来验证用户。

如果身份验证成功,应用程序将访问安全的企业数据库。 否则,系统会向用户发送一条消息,说明用户不是授权用户。

下图显示了应用程序的逻辑流程。

au_au_umauth_process

下表介绍了此图表中的步骤

步骤描述
1用户访问网站并指定用户名和密码。 此信息将提交到托管AEM Forms的J2EE应用程序服务器。
2用户凭据通过Authentication Manager服务进行身份验证。 如果用户凭据有效,工作流将继续执行步骤3。 否则,系统会向用户发送一条消息,说明用户不是授权用户。
3用户信息和表单设计从安全企业数据库中检索。
4用户信息将与表单设计合并,并且表单会呈现给用户。

步骤摘要

要以编程方式验证用户,请执行以下步骤:

  1. 包括项目文件。
  2. 创建AuthenticationManagerService客户端。
  3. 调用身份验证操作。
  4. 如有必要,请检索上下文,以便客户端应用程序可以将其转发到其他AEM Forms服务进行身份验证。

包含项目文件

在开发项目中包含必需的文件。 如果您使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用的是Web服务,请确保包含代理文件。

创建AuthenticationManagerService客户端

在以编程方式对用户进行身份验证之前,必须创建AuthenticationManagerService客户端。 使用Java API时,请创建 AuthenticationManagerServiceClient 对象。

调用身份验证操作

创建服务客户端后,即可调用身份验证操作。 此操作将需要有关用户的信息,如用户名和密码。 如果用户未进行身份验证,则会引发异常。

检索身份验证上下文

用户进行身份验证后,即可基于经过身份验证的用户创建上下文。 然后,您可以使用内容调用其他AEM Forms服务。 例如,您可以使用上下文创建 EncryptionServiceClient 并使用密码加密PDF文档。 确保已经过身份验证的用户具有名为的角色 Services User 调用AEM Forms服务所需的调用。

另请参阅

包括AEM Forms Java库文件

设置连接属性

用户管理器API快速入门

使用密码加密PDF文档

使用Java API验证用户身份

使用Authentication Manager Service API(Java)验证用户:

  1. 包括项目文件。

    在Java项目的类路径中包含客户端JAR文件,如adobe-usermanager-client.jar。

  2. 创建AuthenticationManagerServices客户端。

    创建 AuthenticationManagerServiceClient 对象,并使用其构造函数进行传递 ServiceClientFactory 包含连接属性的对象。

  3. 调用身份验证操作。

    调用 AuthenticationManagerServiceClient 对象 authenticate 方法并传递以下值:

    • A java.lang.String 包含用户名称的对象。
    • 字节数组( byte[] 对象)。 您可以获取 byte[] 对象 java.lang.String 对象 getBytes 方法。

    身份验证方法会返回 AuthResult 对象,其中包含有关已验证用户的信息。

  4. 检索身份验证上下文。

    调用 ServiceClientFactory 对象 getContext 方法,该方法将返回 Context 对象。

    然后调用 Context 对象 initPrincipal 方法和通过 AuthResult.

使用Web服务API验证用户

使用Authentication Manager Service API(Web服务)验证用户:

  1. 包括项目文件。

  2. 创建AuthenticationManagerService客户端。

    创建 AuthenticationManagerServiceService 对象。

  3. 调用身份验证操作。

    调用 AuthenticationManagerServiceClient 对象 authenticate 方法并传递以下值:

    • A string 包含用户名称的对象
    • 字节数组( byte[] 对象)。 您可以获取 byte[] 对象 string 包含对 byte[] 数组。
    • 返回的值将为 AuthResult 对象,用于检索有关用户的信息。 在以下示例中,用户信息是通过首先获取 AuthResult 对象 authenticatedUser 字段,然后获取结果 User 对象 canonicalNamedomainName 字段。