How to: Provision a FIM Certificate Management Linked Temporary Card Request
The following examples show how to provision a Forefront Identity Manager Certificate Management (FIM CM) Temporary Card request for a temporary card that is linked to an existing profile. The first example demonstrates how to do this using CreateLinkedTempCardRequest. The second example shows a more manual approach.
CLMUtils.CreateLinkedTempCardRequest
Sub Provision(ByVal mventry As MVEntry)
Implements IMVSynchronization.Provision
Try
If mventry("objectGUID").IsPresent Then
CLMUtils.CreateLinkedTempCardRequest(CLMMA,
New Guid(mventry("objectGUID").BinaryValue),
"CLM Sample Profile Template")
End If
' Log and rethrow any exception.
Catch ex As Exception
Logging.Logging.LogException(ex,
"Provision",
"Caught exception",
False)
Throw
End Try
End Sub 'IMVSynchronization.Provision
void IMVSynchronization.Provision (MVEntry mventry)
{
try
{
if (mventry["objectGUID"].IsPresent)
{
CLMUtils.CreateLinkedTempCardRequest(CLMMA,
new Guid(mventry["objectGUID"].BinaryValue),
"CLM Sample Profile Template");
}
}
// Log and rethrow any exception.
catch(Exception ex)
{
Logging.Logging.LogException(ex,
"Provision",
"Caught exception",
false);
throw;
}
}
Provision Linked Temporary Card Request
Sub Provision(ByVal mventry As MVEntry)
Implements IMVSynchronization.Provision
Try
If mventry("objectGUID").IsPresent Then
Dim targetCLMMA As ConnectedMA =
mventry.ConnectedMAs("CertificateLifecycleManagerMA")
Dim csentry As CSEntry =
targetCLMMA.Connectors.StartNewConnector("clmRequest")
csentry.DN = targetCLMMA.EscapeDNComponent("CN=" +
Guid.NewGuid().ToString())
csentry("req_type").IntegerValue =
Fix(RequestTypeEnum.TemporaryCardEnroll)
csentry("req_type_name").Value =
[Enum].GetName(GetType(RequestTypeEnum),
RequestTypeEnum.TemporaryCardEnroll)
csentry("req_target_user_uuid").BinaryValue =
aDObjectGUID.ToByteArray()
csentry("req_profile_template_name").Value =
profileTemplateName
' UUID of the profile csentry object to which you want to link this
' request.
csentry("req_profile_uuid").BinaryValue =
profileCSEntry("profile_uuid").BinaryValue
' UUID of the permanent smart card, which you can get from the
' profile csentry object to which you want to link this request.
csentry("req_permanent_sc_uuid").BinaryValue =
profileCSEntry("pr_sc_uuid").BinaryValue
csentry("req_originator_user_uuid").BinaryValue =
originatorGuid.ToByteArray()
csentry("req_profile_template_uuid").BinaryValue =
GetProfileTemplateUuidFromProfileTemplateName(
profileTemplateName,
targetCLMMA).ToByteArray()
csentry.CommitNewConnector()
End If
' Log and rethrow any exception.
Catch ex As Exception
Logging.Logging.LogException(ex, "Provision", "Caught exception", False)
Throw
End Try
End Sub 'IMVSynchronization.Provision
void IMVSynchronization.Provision(MVEntry mventry)
{
try
{
if (mventry["objectGUID"].IsPresent)
{
ConnectedMA targetCLMMA =
mventry.ConnectedMAs["CertificateLifecycleManagerMA"];
CSEntry csentry =
targetCLMMA.Connectors.StartNewConnector("clmRequest");
csentry.DN = targetCLMMA.EscapeDNComponent("CN=" +
Guid.NewGuid().ToString());
csentry["req_type"].IntegerValue =
(long)RequestTypeEnum.TemporaryCardEnroll;
csentry["req_type_name"].Value =
Enum.GetName(typeof(RequestTypeEnum),
RequestTypeEnum.TemporaryCardEnroll);
csentry["req_target_user_uuid"].BinaryValue =
aDObjectGUID.ToByteArray();
csentry["req_profile_template_name"].Value =
profileTemplateName;
// UUID of the profile csentry object to which you want to link this
// request.
csentry["req_profile_uuid"].BinaryValue =
profileCSEntry["profile_uuid"].BinaryValue;
// UUID of the permanent smart card, which you can get from the
// profile csentry object to which you want to link this request.
csentry["req_permanent_sc_uuid"].BinaryValue =
profileCSEntry["pr_sc_uuid"].BinaryValue;
csentry["req_originator_user_uuid"].BinaryValue =
originatorGuid.ToByteArray();
csentry["req_profile_template_uuid"].BinaryValue =
GetProfileTemplateUuidFromProfileTemplateName(
profileTemplateName,
targetCLMMA).ToByteArray();
csentry.CommitNewConnector();
}
}
// Log and rethrow any exception.
catch (Exception ex)
{
Logging.Logging.LogException(ex,
"Provision",
"Caught exception",
false);
throw;
}
}
See Also
Reference
Concepts
Forefront Identity Manager Certificate Management Connected Data Sources