AADAuthenticationMethodPolicyX509
Parameters
| Parameter |
Attribute |
DataType |
Description |
Allowed Values |
| AuthenticationModeConfiguration |
Write |
MSFT_MicrosoftGraphx509CertificateAuthenticationModeConfiguration |
Defines strong authentication configurations. This configuration includes the default authentication mode and the different rules for strong authentication bindings. |
|
| CertificateAuthorityScopes |
Write |
MSFT_MicrosoftGraphx509CertificateAuthorityScope[] |
Defines configuration to allow a group of users to use certificates from specific issuing certificate authorities to successfully authenticate. |
|
| CertificateUserBindings |
Write |
MSFT_MicrosoftGraphx509CertificateUserBinding[] |
Defines fields in the X.509 certificate that map to attributes of the Azure AD user object in order to bind the certificate to the user. The priority of the object determines the order in which the binding is carried out. The first binding that matches will be used and the rest ignored. |
|
| ExcludeTargets |
Write |
MSFT_AADAuthenticationMethodPolicyX509ExcludeTarget[] |
Displayname of the groups of users that are excluded from a policy. |
|
| IncludeTargets |
Write |
MSFT_AADAuthenticationMethodPolicyX509IncludeTarget[] |
Displayname of the groups of users that are included from a policy. |
|
| IssuerHintsConfiguration |
Write |
MSFT_MicrosoftGraphx509CertificateIssuerHintsConfiguration |
Determines whether issuer(CA) hints are sent back to the client side to filter the certificates shown in certificate picker. |
|
| State |
Write |
String |
The state of the policy. Possible values are: enabled, disabled. |
enabled, disabled |
| Id |
Key |
String |
The unique identifier for an entity. Read-only. |
|
| Ensure |
Write |
String |
Present ensures the policy exists, absent ensures it is removed. |
Present, Absent |
| Credential |
Write |
PSCredential |
Credentials of the Admin |
|
| ApplicationId |
Write |
String |
Id of the Azure Active Directory application to authenticate with. |
|
| TenantId |
Write |
String |
Id of the Azure Active Directory tenant used for authentication. |
|
| ApplicationSecret |
Write |
PSCredential |
Secret of the Azure Active Directory tenant used for authentication. |
|
| CertificateThumbprint |
Write |
String |
Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication. |
|
| CertificatePassword |
Write |
PSCredential |
Username can be made up to anything but password will be used for CertificatePassword |
|
| CertificatePath |
Write |
String |
Path to certificate used in service principal usually a PFX file. |
|
| ManagedIdentity |
Write |
Boolean |
Managed ID being used for authentication. |
|
| AccessTokens |
Write |
String[] |
Access token used for authentication. |
|
Embedded Instances
MSFT_MicrosoftGraphx509CertificateAuthenticationModeConfiguration
Parameters
| Parameter |
Attribute |
DataType |
Description |
Allowed Values |
| Rules |
Write |
MSFT_MicrosoftGraphX509CertificateRule[] |
Rules are configured in addition to the authentication mode to bind a specific x509CertificateRuleType to an x509CertificateAuthenticationMode. For example, bind the policyOID with identifier 1.32.132.343 to x509CertificateMultiFactor authentication mode. |
|
| X509CertificateAuthenticationDefaultMode |
Write |
String |
The type of strong authentication mode. The possible values are: x509CertificateSingleFactor, x509CertificateMultiFactor, unknownFutureValue. |
x509CertificateSingleFactor, x509CertificateMultiFactor, unknownFutureValue |
MSFT_MicrosoftGraphx509CertificateAuthorityScope
Parameters
| Parameter |
Attribute |
DataType |
Description |
Allowed Values |
| IncludeTargets |
Write |
MSFT_MicrosoftGraphIncludeTarget[] |
A collection of groups that are enabled to be in scope to use certificates issued by specific certificate authority. |
|
| PublicKeyInfrastructureIdentifier |
Write |
String |
Public Key Infrastructure container object under which the certificate authorities are stored in the Entra PKI based trust store. |
|
| SubjectKeyIdentifier |
Write |
String |
Subject Key Identifier that identifies the certificate authority uniquely. |
|
MSFT_MicrosoftGraphx509CertificateUserBinding
Parameters
| Parameter |
Attribute |
DataType |
Description |
Allowed Values |
| Priority |
Write |
UInt32 |
The priority of the binding. Azure AD uses the binding with the highest priority. This value must be a non-negative integer and unique in the collection of objects in the certificateUserBindings property of an x509CertificateAuthenticationMethodConfiguration object. Required |
|
| UserProperty |
Required |
String |
Defines the Azure AD user property of the user object to use for the binding. The possible values are: userPrincipalName, onPremisesUserPrincipalName, email. Required. |
|
| X509CertificateField |
Write |
String |
The field on the X.509 certificate to use for the binding. The possible values are: PrincipalName, RFC822Name. |
|
MSFT_AADAuthenticationMethodPolicyX509ExcludeTarget
Parameters
| Parameter |
Attribute |
DataType |
Description |
Allowed Values |
| Id |
Key |
String |
The object identifier of an Azure AD group. |
|
| TargetType |
Key |
String |
The type of the authentication method target. Possible values are: group and unknownFutureValue. |
group, unknownFutureValue |
MSFT_AADAuthenticationMethodPolicyX509IncludeTarget
Parameters
| Parameter |
Attribute |
DataType |
Description |
Allowed Values |
| Id |
Key |
String |
The object identifier of an Azure AD group. |
|
| isRegistrationRequired |
Write |
Boolean |
Determines if the user is enforced to register the authentication method. |
|
| TargetType |
Key |
String |
The type of the authentication method target. Possible values are: group and unknownFutureValue. |
group, unknownFutureValue |
MSFT_MicrosoftGraphx509CertificateIssuerHintsConfiguration
Parameters
| Parameter |
Attribute |
DataType |
Description |
Allowed Values |
| State |
Write |
String |
The possible values are: disabled, enabled. |
disabled, enabled |
MSFT_MicrosoftGraphX509CertificateRule
Parameters
| Parameter |
Attribute |
DataType |
Description |
Allowed Values |
| Identifier |
Key |
String |
The identifier of the X.509 certificate. Required. |
|
| X509CertificateAuthenticationMode |
Required |
String |
The type of strong authentication mode. The possible values are: x509CertificateSingleFactor, x509CertificateMultiFactor, unknownFutureValue. Required. |
x509CertificateSingleFactor, x509CertificateMultiFactor, unknownFutureValue |
| X509CertificateRuleType |
Write |
String |
The type of the X.509 certificate mode configuration rule. The possible values are: issuerSubject, policyOID, unknownFutureValue. Required. |
issuerSubject, policyOID, unknownFutureValue |
MSFT_MicrosoftGraphIncludeTarget
Parameters
| Parameter |
Attribute |
DataType |
Description |
Allowed Values |
| Id |
Key |
String |
The ID of the entity targeted. |
|
| TargetType |
Key |
String |
The kind of entity targeted. The possible values are: user, group. |
user, group |
Description
Azure AD Authentication Method Policy X509
Permissions
Graph
To authenticate with the Graph API, this resource requires the following permissions:
Delegated permissions
Application permissions
Examples
Example 1
This example is used to test new resources and showcase the usage of new resources being worked on.
It is not meant to use as a production baseline.
Configuration Example
{
param
(
[Parameter()]
[System.String]
$ApplicationId,
[Parameter()]
[System.String]
$TenantId,
[Parameter()]
[System.String]
$CertificateThumbprint
)
Import-DscResource -ModuleName Microsoft365DSC
Node localhost
{
AADAuthenticationMethodPolicyX509 "AADAuthenticationMethodPolicyX509-Example"
{
AuthenticationModeConfiguration = MSFT_MicrosoftGraphx509CertificateAuthenticationModeConfiguration{
X509CertificateAuthenticationDefaultMode = 'x509CertificateSingleFactor'
Rules = @()
};
CertificateAuthorityScopes = @(
MSFT_MicrosoftGraphx509CertificateAuthorityScope{
IncludeTargets = @(
MSFT_MicrosoftGraphIncludeTarget{
Id = 'Certificate Based Auth Pilot'
TargetType = 'group'
}
)
PublicKeyInfrastructureIdentifier = '9b1a4f2e-7c33-4d51-8a0e-1f6d2b5c7e40'
SubjectKeyIdentifier = 'a1b2c3d4e5f60718293a4b5c6d7e8f9012345678'
}
);
CertificateUserBindings = @(
MSFT_MicrosoftGraphx509CertificateUserBinding{
Priority = 1
UserProperty = 'userPrincipalName'
X509CertificateField = 'PrincipalName'
}
MSFT_MicrosoftGraphx509CertificateUserBinding{
Priority = 2
UserProperty = 'userPrincipalName'
X509CertificateField = 'RFC822Name'
}
MSFT_MicrosoftGraphx509CertificateUserBinding{
Priority = 3
UserProperty = 'certificateUserIds'
X509CertificateField = 'SubjectKeyIdentifier'
}
);
Ensure = "Present";
ExcludeTargets = @(
MSFT_AADAuthenticationMethodPolicyX509ExcludeTarget{
Id = 'Marketing Team'
TargetType = 'group'
}
);
Id = "X509Certificate";
IncludeTargets = @(
MSFT_AADAuthenticationMethodPolicyX509IncludeTarget{
Id = 'Finance Team'
TargetType = 'group'
}
);
IssuerHintsConfiguration = MSFT_MicrosoftGraphx509CertificateIssuerHintsConfiguration{
State = 'enabled'
};
State = "enabled";
ApplicationId = $ApplicationId
TenantId = $TenantId
CertificateThumbprint = $CertificateThumbprint
}
}
}
Example 2
This example is used to test new resources and showcase the usage of new resources being worked on.
It is not meant to use as a production baseline.
Configuration Example
{
param
(
[Parameter()]
[System.String]
$ApplicationId,
[Parameter()]
[System.String]
$TenantId,
[Parameter()]
[System.String]
$CertificateThumbprint
)
Import-DscResource -ModuleName Microsoft365DSC
Node localhost
{
AADAuthenticationMethodPolicyX509 "AADAuthenticationMethodPolicyX509-Example"
{
Ensure = "Absent";
Id = "X509Certificate";
ApplicationId = $ApplicationId
TenantId = $TenantId
CertificateThumbprint = $CertificateThumbprint
}
}
}