Hosted Customer Directory Integration Namespace API

This document provides the details of the application programming interface (API) for the Hosted CDI Namespace included with the Microsoft Provisioning System (MPS) in the Microsoft Hosted Solutions. Contained herein are descriptions of the procedures of this namespace along with method input parameters and return values. In addition, example Extensible Markup Language (XML) requests are provided along with a typical XML response that the provisioning system returns after a request is submitted to MPS and tasks are completed.

Developers should use this API document as a reference when creating XML requests that initiate Customer Directory Integration (CDI) Service provisioning tasks or as a basis for review of the CDI named procedures that are exposed in the MPS Web Service.

The intended use of this API is for client applications that will perform CDI-specific provisioning tasks.


The Hosted CDI Namespace is a new namespace for , that provides a set of Microsoft Provisioning Framework (MPF) public named procedures for provisioning the CDI Service. The namespace enables Service Providers to provision the CDI Service to customer organizations and users through the managed provisioning environment of MPS using the MPF Engine, version 2.1.

The CDI Service enables you to provide automated password synchronization and unification facilities to customer users. This enables customer users to update and synchronize their domain account password with the Service Provider Hosted Messaging and Collaboration sign-on password, so they can use a single username and password set for both logons.

Microsoft Identity Integration Server (MIIS) 2003, Enterprise Edition, forms the basis of the CDI functionality in the . To enable MIIS to map users in the customer Active Directory directory services to corresponding users in the Service Provider shared Active Directory and subsequently to perform the password synchronization function, anchor attribute values must be created and stored in the user accounts and the Customer Plans database. These attributes consist of the user account adminDescription property, which is stamped with the user principal name (UPN) of the customer user, and a Service Pointer object that contains customer domain information.

When a customer organization is enabled for the CDI Service by calling the EnableOrganization procedure described herein, the Service Pointer object is created. When a customer user is enabled for the CDI Service by calling the EnableUser procedure, the adminDescription attribute of that user account is stamped with the UPN of the customer user. These attributes enable MIIS to link customer and Service Provider user objects in the MIIS connector space, synchronize password changes, and push them out to the customer's domain.

Provisioning Actions

The Hosted CDI Namespace interacts with the SQL Provider and the Managed CDI Namespace to manage CDI settings for users and organizations. Provisioning tasks that you can accomplish with this namespace include:

Another task that this namespace implements is creating a CDI Service Plan in the Customer Plans database (HeCustomerPlansDb). However, this private procedure is unavailable for provisioning requests created by the Service Provider.

CDI Service Plan Type

Although most of the provisioning tasks of the Hosted CDI Namespace are identical to those of the Managed CDI Namespace, the Hosted CDI Namespace also creates a CDI Service Plan type in the Customer Plans database with the Initialize procedure. Execution of this procedure makes the CDI Service Plan type available to the . However, this procedure is not a public procedure that you can call from a provisioning request. Instead, this procedure is called by the Deployment Automation Namespace of the MPS Deployment Tool when you install and initialize the CDI provisioning components. The procedure is hard coded to define proprietary CDI Service plan attributes and properties, and is therefore unavailable for Service Provider use.

The Initialize procedure creates the following elements in the Customer Plans database to support the CDI functionality:


You install the Hosted CDI Namespace with the MPS Deployment Tool. Because the functionality of this namespace depends on interaction with other components, you must ensure that you queue the following components for installation with the tool at deployment design time:

Public/private Method Description
Hosted CDI::ChangeOrganizationPlan Changes the Customer Directory Integration (CDI) plan of an organization.
Hosted CDI::CreateOrganizationPlan Creates a new CDI plan.
Hosted CDI::DeleteRemoteDomainAssets A private procedure that is called by the DisableOrganization procedure. Calls currently made by this procedure to Managed Helpers to update the Plans Database are replaced by appropriate calls to Managed Customer Plans Namespace.
Hosted CDI::DisableOrganization Disables a customer organization for the CDI Service.
Hosted CDI::DisableUser Disables a customer user for the CDI Service.
Hosted CDI::EnableOrganization Enables a customer organization for the CDI Service.
Hosted CDI::EnableUser Enables a customer user for the CDI Service.
Hosted CDI::GetOrganizationPlan Retrieves details about the specified plan.
Hosted CDI::GetOrganizationPlanAssignment Retrieves the Hosted CDI plan assigned to the specified organization.
Hosted CDI::GetOrganizationSettings Retrieves the CDI settings for a specified organization.
Hosted CDI::GetServiceInformation Returns information used to register this service.
Hosted CDI::GetUserSettings Gets the current CDI settings for a specified customer user.
Hosted CDI::Initialize Creates a new Customer Plans Type to support CDI plans, events, and assets.
Hosted CDI::ModifyOrganization Modifies the CDI settings for a customer organization.
Hosted CDI::ModifyOrganizationPlan Modifies the attributes of a CDI Organization plan.
Hosted CDI::ModifyUser Modifies the CDI settings for a specified customer user.
Hosted CDI::Subscribe Adds the CDI plan to the specified organization.
Hosted CDI::Unsubscribe Removes the CDI plan from the specified organization.
 Applies To