POST Enrollment Patterns

The POST /EnrollmentPatterns operation creates a new enrollmentClosed Certificate enrollment refers to the process by which a user requests a digital certificate. The user must submit the request to a certificate authority (CA). pattern. On success, the operation returns HTTP 200 OK with  details about the new enrollment pattern.

Tip:  The following permissions (see Security Roles and Claims) are required to use this feature:

/enrollment_pattern/modify/
AND
/security/read/ (in the permission set containing the security role to which the certificate owner will be set)

Table 512: POST EnrollmentPatterns Input Parameters

Name In Description
Allowed Enrollment Types Body

An integer indicating the allowed enrollment types for the enrollment pattern. This value controls which enrollment methods can be used through the Keyfactor API and Management Portal.

For CSR and PFX enrollment, the enrollment pattern is only available when associated with a CA that is configured for enrollment in Keyfactor Command (see HTTPS CAs - Enrollment Section or DCOM CAs - Enrollment Section).

ClosedShow allowed enrollment type details.

Associated Roles Body

An array of strings indicating the security roles associated with the enrollment pattern. Only users holding ones of these roles will be able to use the enrollment pattern if UseADPermissions is False. For example:

Copy
 "AssociatedRoles": [
    "Administrators",
    "Power Users"
  ]
Certificate Authorities Body

An array of integers indicating the certificate authorities to which the enrollment pattern is restricted, if applicable (see the RestrictCAs parameter).

Use the GET Certificate Authority operation to retrieve a list of all the certificate authorities to determine the ID.

Defaults Body

An array of objects defining default certificate subject values for an enrollment pattern. These values are used to prepopulate subject fields in the Management Portal during enrollment when using this pattern and apply only to enrollments made with this pattern. Enrollment pattern defaults take precedence over system-wide default subject settings. For more information about system-wide defaults, see GET Enrollment Patterns Settings.

Note:  Enrollment defaults do not apply to requests made with CSR enrollment or the Keyfactor API.

ClosedShow enrollment pattern default details.

For example:

Copy
"Defaults": [
   {
      "SubjectPart": "L",
      "Value": "Denver"
   },
   {
      "SubjectPart": "ST",
      "Value": "Colorado"
   }
]
Description Body A string indicating the Keyfactor Command description of the enrollment pattern.
Enrollment Fields Body

An array of objects defining custom enrollment fields for an enrollment pattern. These fields allow additional request attributes to be included with CSR and PFX enrollments and passed to the certificate authority (CA) during the enrollment process.

Custom enrollment fields can be used to:

  • Enforce certificate request requirements and prevent invalid enrollments

  • Provide additional information to the CA as part of the request

  • Support integrations such as the Keyfactor Windows Enrollment Gateway, which uses enrollment fields for standard functionality

When configured, these fields are presented during CSR and PFX enrollment (for example, in the Additional Enrollment Fields section in the Management Portal) and must be completed as part of the request. The submitted values are passed to the CA and may appear in CA-issued certificate attributes, depending on CA configuration.

Note:  These fields are not metadata and are not stored in Keyfactor Command. They are passed through to the CA, where they can be used by a gateway or policy module to perform additional processing.

ClosedShow enrollment field details.

For example:

Copy
"EnrollmentFields": [
   {
      "Name": "MyCustomField",
      "DataType": 2,
      "Options": ["Green","Red","Yellow","Blue"]
   }
]
Metadata Fields Body

An array of objects containing metadata field settings specific to an individual enrollment pattern. These metadata field configurations can override global metadata field configurations in these possible ways:

  • Configuration on the metadata field of required, optional or hidden.

  • The default value for the metadata field.

  • A regular expression defined for the field (string fields only) against which entered data will be validated along with its associated message.

  • For fields of data type multiple choice, the list of values that appear in multiple choice dropdowns.

Metadata field settings defined on an enrollment pattern apply to enrollments made with that enrollment pattern only and take precedence over global-level metadata field settings.

ClosedShow metadata field details.

For example:

Copy
"MetadataFields": [
   {
      "MetadataId": 4,
      "DefaultValue": "reggie.wallace@keyexample.com",
      "Validation": "^[a-zA-Z0-9'_\\.\\-]*@(keyexample\\.org|keyexample\\.com)$",
      "Enrollment": 1,
      "Message": "Your email address must be of the form user@keyexample.com or fname.lname@keyexample.com.",
      "CaseSensitive": false
   },
   {
      "MetadataId": 13,
      "DefaultValue": "E-Business",
      "Validation": "",
      "Enrollment": 0,
      "Message": "",
      "Options": "Accounting,E-Business,Executive,HR,IT,Marketing,R&D,Sales",
      "CaseSensitive": false
   }
]
Name Body A string indicating the Keyfactor Command reference name of the enrollment pattern.
Policies Body

An object containing the individual policy settings for the enrollment pattern. Policies defined on an enrollment pattern apply to enrollments made with that enrollment pattern only and take precedence over system-wide policies. For more information about system-wide enrollment pattern policies, see GET Enrollment Patterns Settings. ClosedShow enrollment pattern policy details.

For example:

Copy
"Policies": {
   "AllowKeyReuse": false,
   "AllowWildcards": true,
   "RFCEnforcement": true,
   "CertificateOwnerRole": 0,
   "DefaultCertificateOwnerRoleId": 3,
   "DefaultCertificateOwnerRoleName": "Power Users",
   "KeyInfo": {
      "ECDSA": {
         "bit_lengths": [
            256,
            384,
            521
         ],
         "curves": [
            "1.2.840.10045.3.1.7",
            "1.3.132.0.34",
            "1.3.132.0.35"
         ]
      },
      "RSA": null,
      "Ed448": null,
      "Ed25519": null
   }
   "PrimaryKeyAlgorithms": [
      {
        "name": "ECDSA",
        "bit_lengths": [
          256,
          384,
          521
        ],
        "curves": [
          "1.2.840.10045.3.1.7",
          "1.3.132.0.34",
          "1.3.132.0.35"
        ]
      }
   ],
   "AlternativeKeyAlgorithms": [],
   "CSRSANControl": 0
}
Regexes Body

An array of objects containing regular expressions specific to an individual enrollment pattern, used to validate the subject data. Regular expressions defined on an enrollment pattern apply to enrollments made with that enrollment pattern only. Regular expressions defined for enrollment patterns take precedence over system-wide regular expressions. ClosedShow regular expression details.

For example:

Copy
"Regexes": [
   {
      "SubjectPart": "O",
      "Regex": "^(?:Key Example Company|Key Example\, Inc\.)$",
      "Error": "Organization must be Key Example, Inc or Key Example Company.",
      "CaseSensitive": true
   }
]
RestrictCAs Body A Boolean indicating whether the enrollment pattern should be restricted to use with a specified list of certificate authorities (True or False). If set to True, at least one CA must be configured using the CertificateAuthorities parameter.
Template Body

An integer indicating the template associated with the enrollment pattern.

Use the GET Templates operation to retrieve a list of all the templates to determine the template ID.

Template Default Body

A Boolean indicating whether this enrollment pattern is the default pattern for the associated template (True or False). A certificate template can have only one default enrollment pattern, which is required for the template to be used for enrollment. If no other enrollment pattern for the template exists or is marked as default, this option will automatically be enabled when a new pattern is created.

UseAD Permissions Body A Boolean indicating whether Active Directory permissions should be used for certificate enrollment authorization (True) or whether Keyfactor Command security roles should be used (False). If set to False, at least one value must be provided for AssociatedRoles.

Table 513: POST Enrollment Patterns Response Body

Name Description
Allowed Enrollment Types

An integer indicating the allowed enrollment types for the enrollment pattern. This value controls which enrollment methods can be used through the Keyfactor API and Management Portal.

For CSR and PFX enrollment, the enrollment pattern is only available when associated with a CA that is configured for enrollment in Keyfactor Command (see HTTPS CAs - Enrollment Section or DCOM CAs - Enrollment Section).

ClosedShow allowed enrollment type details.

Associated Roles

An array of objects indicating the security roles associated with the enrollment pattern. Only users holding ones of these roles will be able to use the enrollment pattern if UseADPermissions is False. ClosedShow role details.

Certificate Authorities

An array of objects indicating the certificate authorities to which the enrollment pattern is restricted, if applicable (see the RestrictCAs parameter). ClosedShow CA details.

Defaults

An array of objects defining default certificate subject values for an enrollment pattern. These values are used to prepopulate subject fields in the Management Portal during enrollment when using this pattern and apply only to enrollments made with this pattern. Enrollment pattern defaults take precedence over system-wide default subject settings. For more information about system-wide defaults, see GET Enrollment Patterns Settings.

Note:  Enrollment defaults do not apply to requests made with CSR enrollment or the Keyfactor API.

ClosedShow enrollment pattern default details.

Description A string indicating the Keyfactor Command description of the enrollment pattern.
Enrollment Fields

An array of objects defining custom enrollment fields for an enrollment pattern. These fields allow additional request attributes to be included with CSR and PFX enrollments and passed to the certificate authority (CA) during the enrollment process.

Custom enrollment fields can be used to:

  • Enforce certificate request requirements and prevent invalid enrollments

  • Provide additional information to the CA as part of the request

  • Support integrations such as the Keyfactor Windows Enrollment Gateway, which uses enrollment fields for standard functionality

When configured, these fields are presented during CSR and PFX enrollment (for example, in the Additional Enrollment Fields section in the Management Portal) and must be completed as part of the request. The submitted values are passed to the CA and may appear in CA-issued certificate attributes, depending on CA configuration.

Note:  These fields are not metadata and are not stored in Keyfactor Command. They are passed through to the CA, where they can be used by a gateway or policy module to perform additional processing.

ClosedShow enrollment field details.

Id An integer indicating the ID of the enrollment pattern in Keyfactor Command.
Metadata Fields

An array of objects containing metadata field settings specific to an individual enrollment pattern. These metadata field configurations can override global metadata field configurations in these possible ways:

  • Configuration on the metadata field of required, optional or hidden.

  • The default value for the metadata field.

  • A regular expression defined for the field (string fields only) against which entered data will be validated along with its associated message.

  • For fields of data type multiple choice, the list of values that appear in multiple choice dropdowns.

Metadata field settings defined on an enrollment pattern apply to enrollments made with that enrollment pattern only and take precedence over global-level metadata field settings.

ClosedShow metadata field details.

Name A string indicating the Keyfactor Command reference name of the enrollment pattern.
Policies

An object containing the individual policy settings for the enrollment pattern. Policies defined on an enrollment pattern apply to enrollments made with that enrollment pattern only and take precedence over system-wide policies. For more information about system-wide enrollment pattern policies, see GET Enrollment Patterns Settings. ClosedShow enrollment pattern policy details.

Regexes

An array of objects containing regular expressions specific to an individual enrollment pattern, used to validate the subject data. Regular expressions defined on an enrollment pattern apply to enrollments made with that enrollment pattern only. Regular expressions defined for enrollment patterns take precedence over system-wide regular expressions. ClosedShow regular expression details.

RestrictCAs A Boolean indicating whether the enrollment pattern should be restricted to use with a specified list of certificate authorities (True or False). If set to True, at least one CA must be configured using the CertificateAuthorities parameter.
Template

An object containing information for the template associated with the enrollment pattern. ClosedShow template details.

Template Default

A Boolean indicating whether this enrollment pattern is the default pattern for the associated template (True or False). A certificate template can have only one default enrollment pattern, which is required for the template to be used for enrollment. If no other enrollment pattern for the template exists or is marked as default, this option will automatically be enabled when a new pattern is created.

UseAD Permissions A Boolean indicating whether Active Directory permissions should be used for certificate enrollment authorization (True) or whether Keyfactor Command security roles should be used (False). If set to False, at least one value must be provided for AssociatedRoles.