及时设置用户

AEM表单支持及时设置用户管理中尚不存在的用户。 借助即时设置,用户凭据成功通过身份验证后,将自动添加到用户管理中。 此外,相关角色和组会动态分配给新用户。

需要及时设置用户

传统身份验证的工作方式如下:

  1. 当用户尝试登录AEM表单时,用户管理会按顺序将用户的凭据传递给所有可用的身份验证提供者。 (登录凭据包括用户名/密码组合、Kerberos票证、PKCS7签名等。)

  2. 身份验证提供程序验证凭据。

  3. 然后,身份验证提供程序检查用户是否存在于用户管理数据库中。 可能有以下结果:

    存在:如 果用户当前并已解锁,则用户管理将返回身份验证成功。但是,如果用户不是当前用户或已锁定,则用户管理会返回身份验证失败。

    不存在:用户 管理返回身份验证失败。

    无效:用 户管理返回身份验证失败。

  4. 将评估身份验证提供程序返回的结果。 如果身份验证提供程序返回身份验证成功,则允许用户登录。 否则,用户管理会与下一个身份验证提供程序进行检查(步骤2-3)。

  5. 如果没有可用的身份验证提供程序验证用户凭据,则会返回身份验证失败。

当实现及时配置时,如果其中一个身份验证提供者验证用户的凭据,则在用户管理中动态创建新用户。 (在传统的验证过程中,步骤3之后,如上所示。)

实施及时的用户设置

用于即时配置的API

AEM forms提供以下API以供及时配置:

package com.adobe.idp.um.spi.authentication  ; 
publ ic interface IdentityCreator { 
/** 
* Tries  to create a user with the  in formation  provided in the <code>UserProvisioningBO</code> object. 
* If the user is successfully created, a valid AuthResponse is returned along with the information using which the user was created. 
* It is the responsibility of the IdentityCreator to set the User obje ct  in the cre dential map with th e  ke y  <code>UMA u thenticationUtil.authenticatedUserKey</code> 
* The credentials are available in the <code>UserProvisioningBO</code> object in the 'credentials' property. 
* If the IdentityCreator is unable to create a user due to any reason, it returns <code>null</code> 
* @param userBO An object of <code>com.adobe. i dp.um . spi.authenti c ationUserProvisioningBO</code> 
* @return */public AuthResponse create(UserProvisioningBO userBO); 
/** 
* Returns the name of the IdentityCreator which will be registered in preferences. 
* This name is used to associate the IdentityProvider with the Auth Provider Configuration in the domain. 
* @return The name of the Identity Creator which is recognized in Configuration. 
*/ 
public String getName(); 
} 
package com.adobe.idp.um.spi.authentication; 
import com.adobe.idp.um.api.infomodel.User; 
public interface AssignmentProvider { 
/** 
* Tries to assign roles or permissions or group memberships to users created via Just-in-time provisioning. 
* @param user The User created via the Just-in-time provisioning process. 
* @return a Boolean flag indicating whether the assignment was successful or not. 
*/ 
public Boolean assign(User user); 
/** 
* Returns the name of the AssignmentProvider through which it is registered under preferences. 
* This name is used to associate the AssignmentProvider with the Auth Provider Configuration in the domain. 
* @return The name of the AssignmentProvider which is recognized in Configuration. 
*/public String getName(); 
}

创建刚启用时间的域时的注意事项

  • 为混合域创建自定义IdentityCreator时,请确保为本地用户指定虚拟口令。 请勿将此密码字段留空。
  • 建议:使用DomainSpecificAuthentication验证特定域的用户凭据。

创建刚启用时间的域

  1. 在“API for just-in-provisioning”部分编写实现API的DSC。

  2. 将DSC部署到表单服务器。

  3. 创建刚启用时间的域:

    • 在管理控制台中,单击设置>用户管理>域管理>新建企业域。
    • 配置域并选择“仅启用时间设置”。
    • 添加身份验证提供程序。 添加身份验证提供者时,在“新建身份验证”屏幕上,选择已注册的身份创建者和分配提供者。
  4. 保存新域。

幕后花絮

假定用户尝试登录AEM表单,且身份验证提供程序接受其用户凭据。 如果用户管理数据库中尚不存在该用户,则用户的身份检查将失败。 AEM表单现在可执行以下操作:

  1. 使用身份验证数据创建UserProvisioningBO对象,并将其放在凭据映射中。
  2. 根据UserProvisioningBO返回的域信息,提取并调用已注册的IdentityCreatorAssignmentProvider作为域。
  3. 调用IdentityCreator。 如果它返回成功的AuthResponse,请从凭据映射中提取UserInfo。 将其传递给AssignmentProvider以进行组/角色分配以及创建用户后进行的任何其他后处理。
  4. 如果用户创建成功,则用户登录尝试将返回为成功。
  5. 对于混合域,从提供给身份验证提供程序的身份验证数据中提取用户信息。 如果成功获取此信息,则立即创建用户。
注意

随附的是默认的IdentityCreator设置功能,您可以使用它动态创建用户。 用户是使用与域中的目录关联的信息创建的。

On this page