Interface IdentityStoreProvisioner

All Superinterfaces:
ConfigurablePlugin, DescribablePlugin, Plugin
All Known Subinterfaces:
IdentityStoreProvisionerWithFiltering

public interface IdentityStoreProvisioner extends Plugin
The primary Identity Store Provisioner interface. Used to provision and deprovision users and groups to an external data store.
Since:
7.3
  • Method Details

    • getIdentityStoreProvisionerDescriptor

      IdentityStoreProvisionerDescriptor getIdentityStoreProvisionerDescriptor()
      The PingFederate server will invoke this method on your IdentityStoreProvisioner implementation to discover metadata about the implementation. This includes the provisioner's user and group attribute contracts and a description of what configuration fields to render in the GUI.

      The descriptor returned here should be the same object returned by the DescribablePlugin.getPluginDescriptor() method. Your implementation of this method should return the same IdentityStoreProvisionerDescriptor object from call to call - behaviour of the system is undefined if this convention is not followed.
      Returns:
      an IdentityStoreProvisionerDescriptor object that describes this Identity store provisioner implementation.
    • createUser

      Create a user.

      At a minimum, the UserResponseContext should contain the following attributes within the user attribute map:

      Parameters:
      createRequestCtx - The Request Context containing all the information needed to fulfill the request, e.g. user attributes.
      Returns:
      A UserResponseContext containing the results of an Identity Store provisioning operation.
      Throws:
      IdentityStoreException - An exception indicating that the Identity Store Provisioner operation failed.
    • readUser

      Read a user.

      At a minimum, the UserResponseContext should contain the following attributes within the user attribute map:

      Parameters:
      readRequestCtx - The Request Context containing all the information needed to fulfill the request, e.g. user id.
      Returns:
      A UserResponseContext containing the results of an Identity Store provisioning operation.
      Throws:
      IdentityStoreException - An exception indicating that the Identity Store Provisioner operation failed.
    • updateUser

      Update a user.

      At a minimum, the UserResponseContext should contain the following attributes within the user attribute map:

      Parameters:
      updateRequestCtx - The Request Context containing all the information needed to fulfill the request, e.g. user attributes.
      Returns:
      A UserResponseContext containing the results of an Identity Store provisioning operation.
      Throws:
      IdentityStoreException - An exception indicating that the Identity Store Provisioner operation failed.
    • deleteUser

      void deleteUser(DeleteUserRequestContext deleteRequestCtx) throws IdentityStoreException
      Delete a user.

      Note: The plugin implementation for deleteUser MAY choose not to permanently delete the user, but MUST return a NotFoundException for all readUser, updateUser, and deleteUser operations associated with the previously deleted ID. In addition, the plugin MUST not consider the deleted user in conflict calculation. For example, a createUser request for a user with a previously deleted id should NOT throw a ConflictException.

      Parameters:
      deleteRequestCtx - The Request Context containing all the information needed to fulfill the request, e.g. user id.
      Throws:
      IdentityStoreException - An exception indicating that the Identity Store Provisioner operation failed.
    • readGroup

      Read a group.

      At a minimum, the GroupResponseContext should contain the following attributes within the group attribute map:

      Parameters:
      readRequestCtx - The Request Context containing all the information needed to fulfill the request, e.g. group id.
      Returns:
      A GroupResponseContext containing the results of an Identity Store provisioning operation.
      Throws:
      IdentityStoreException - An exception indicating that the Identity Store Provisioner operation failed.
    • createGroup

      Create a group.

      At a minimum, the GroupResponseContext should contain the following attributes within the group attribute map:

      Parameters:
      createRequestCtx - The Request Context containing all the information needed to fulfill the request, e.g. group attributes.
      Returns:
      A GroupResponseContext containing the results of an Identity Store provisioning operation.
      Throws:
      IdentityStoreException - An exception indicating that the Identity Store Provisioner operation failed.
    • deleteGroup

      void deleteGroup(DeleteGroupRequestContext deleteRequestCtx) throws IdentityStoreException
      Delete a group.

      Note: The plugin implementation for deleteGroup MAY choose not to permanently delete the group, but MUST return a NotFoundException for all readGroup, updateGroup, and deleteGroup operations associated with the previously deleted ID. In addition, the plugin MUST not consider the deleted group in conflict calculation. For example, a createGroup request for a group with a previously deleted id should NOT throw a ConflictException.

      Parameters:
      deleteRequestCtx - The Request Context containing all the information needed to fulfill the request, e.g. group id.
      Throws:
      IdentityStoreException - An exception indicating that the Identity Store Provisioner operation failed.
    • updateGroup

      Update a group.

      At a minimum, the GroupResponseContext should contain the following attributes within the group attribute map:

      Parameters:
      updateRequestCtx - The Request Context containing all the information needed to fulfill the request, e.g. group attributes.
      Returns:
      A GroupResponseContext containing the results of an Identity Store provisioning operation.
      Throws:
      IdentityStoreException - An exception indicating that the Identity Store Provisioner operation failed.
    • isGroupProvisioningSupported

      boolean isGroupProvisioningSupported()
      Indicate if group provisioning is implemented or not.

      If group provisioning is not implemented then readGroup, createGroup, updateGroup, and deleteGroup should throw NotImplementedException.

      Returns:
      true if group provisioning is supported by the plugin implementation and false otherwise.
      Throws:
      IdentityStoreException - An exception indicating that the Identity Store Provisioner operation failed.