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.

Overview

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 Customer Directory Integration Namespace API Namespace to manage CDI settings for users and organizations. Provisioning tasks that you can accomplish with this namespace include:

  • Enabling and disabling users and organizations for the CDI Service.

  • Retrieving and modifying CDI settings for organizations.

  • Retrieving and modifying CDI settings for users.

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:

  • A new plan type for CDI-enable - the namespace leverages the existing Customer Plans database schema to establish a CDI plan type.

  • A new asset type for persistence of CDI settings - the namespace uses the well- established CustomerAssets table schema to store CDI related settings, such as those that are contained in the Service Pointer object.

  • A new event type for recording and billing CDI related provisioning events - the namespace leverages the existing Customer Plans database schema for tracking provisioning events. New event types are created to support the raising of these events.

Dependencies

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:

  • Managed CDI Namespace - installs with the CDI provisioning components.

  • Customer Service Plan database (HeCustomerPlansDb) - installs with the Plans components.

  • Managed Helpers - installs with MPS core components.

  • SQL Provider - installs with MPS core components.

  • Error Provider - installs with MPS core components.

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::GetOrganizationPlan

Retrieves the Hosted CDI plan assigned to the specified organization.

Hosted CDI::GetOrganizationSettings

Retrieves the CDI settings for a specified organization.

Hosted CDI::GetOrganizationSettings

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

  • Hosted Messaging and Collaboration version 4.0

  • Hosted Messaging and Collaboration version 3.5

  • Windows-based Hosting version 4.5

  • Windows-based Hosting version 4.0

  • Windows-based Hosting for Applications version 1.0