PATCH https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy/authenticationMethodConfigurations/x509Certificate
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.x509CertificateAuthenticationMethodConfiguration",
"id": "X509Certificate",
"state": "enabled",
"certificateUserBindings": [
{
"x509CertificateField": "PrincipalName",
"userProperty": "onPremisesUserPrincipalName",
"priority": 1
}
],
"authenticationModeConfiguration": {
"x509CertificateAuthenticationDefaultMode": "x509CertificateMultiFactor",
"rules": [
{
"x509CertificateRuleType": "issuerSubject",
"identifier": "CN=ContosoCA,DC=Contoso,DC=org ",
"x509CertificateAuthenticationMode": "x509CertificateMultiFactor"
},
{
"x509CertificateRuleType": "policyOID",
"identifier": "1.2.3.4",
"x509CertificateAuthenticationMode": "x509CertificateMultiFactor"
}
]
},
"issuerHintsConfiguration": {
"state": "disabled"
},
"crlValidationConfiguration": {
"state": "disabled",
"exemptedCertificateAuthoritiesSubjectKeyIdentifiers": []
},
"certificateAuthorityScopes": [
{
"subjectKeyIdentifier": "aaaaaaaabbbbcccc111122222222222222333333",
"publicKeyInfrastructureIdentifier": "Contoso PKI",
"includeTargets": [
{
"id": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"targetType": "group"
}
]
}
],
"includeTargets": [
{
"targetType": "group",
"id": "all_users",
"isRegistrationRequired": false
}
]
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
using Microsoft.Kiota.Abstractions.Serialization;
var requestBody = new X509CertificateAuthenticationMethodConfiguration
{
OdataType = "#microsoft.graph.x509CertificateAuthenticationMethodConfiguration",
Id = "X509Certificate",
State = AuthenticationMethodState.Enabled,
CertificateUserBindings = new List<X509CertificateUserBinding>
{
new X509CertificateUserBinding
{
X509CertificateField = "PrincipalName",
UserProperty = "onPremisesUserPrincipalName",
Priority = 1,
},
},
AuthenticationModeConfiguration = new X509CertificateAuthenticationModeConfiguration
{
X509CertificateAuthenticationDefaultMode = X509CertificateAuthenticationMode.X509CertificateMultiFactor,
Rules = new List<X509CertificateRule>
{
new X509CertificateRule
{
X509CertificateRuleType = X509CertificateRuleType.IssuerSubject,
Identifier = "CN=ContosoCA,DC=Contoso,DC=org ",
X509CertificateAuthenticationMode = X509CertificateAuthenticationMode.X509CertificateMultiFactor,
},
new X509CertificateRule
{
X509CertificateRuleType = X509CertificateRuleType.PolicyOID,
Identifier = "1.2.3.4",
X509CertificateAuthenticationMode = X509CertificateAuthenticationMode.X509CertificateMultiFactor,
},
},
},
IssuerHintsConfiguration = new X509CertificateIssuerHintsConfiguration
{
State = X509CertificateIssuerHintsState.Disabled,
},
CertificateAuthorityScopes = new List<X509CertificateAuthorityScope>
{
new X509CertificateAuthorityScope
{
SubjectKeyIdentifier = "aaaaaaaabbbbcccc111122222222222222333333",
PublicKeyInfrastructureIdentifier = "Contoso PKI",
IncludeTargets = new List<IncludeTarget>
{
new IncludeTarget
{
Id = "aaaaaaaa-bbbb-cccc-1111-222222222222",
TargetType = AuthenticationMethodTargetType.Group,
},
},
},
},
IncludeTargets = new List<AuthenticationMethodTarget>
{
new AuthenticationMethodTarget
{
TargetType = AuthenticationMethodTargetType.Group,
Id = "all_users",
IsRegistrationRequired = false,
},
},
AdditionalData = new Dictionary<string, object>
{
{
"crlValidationConfiguration" , new UntypedObject(new Dictionary<string, UntypedNode>
{
{
"state", new UntypedString("disabled")
},
{
"exemptedCertificateAuthoritiesSubjectKeyIdentifiers", new UntypedArray(new List<UntypedNode>
{
})
},
})
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Policies.AuthenticationMethodsPolicy.AuthenticationMethodConfigurations["{authenticationMethodConfiguration-id}"].PatchAsync(requestBody);
mgc-beta policies authentication-methods-policy authentication-method-configurations patch --authentication-method-configuration-id {authenticationMethodConfiguration-id} --body '{\
"@odata.type": "#microsoft.graph.x509CertificateAuthenticationMethodConfiguration",\
"id": "X509Certificate",\
"state": "enabled",\
"certificateUserBindings": [\
{\
"x509CertificateField": "PrincipalName",\
"userProperty": "onPremisesUserPrincipalName",\
"priority": 1\
}\
],\
"authenticationModeConfiguration": {\
"x509CertificateAuthenticationDefaultMode": "x509CertificateMultiFactor",\
"rules": [\
{\
"x509CertificateRuleType": "issuerSubject",\
"identifier": "CN=ContosoCA,DC=Contoso,DC=org ",\
"x509CertificateAuthenticationMode": "x509CertificateMultiFactor"\
},\
{\
"x509CertificateRuleType": "policyOID",\
"identifier": "1.2.3.4",\
"x509CertificateAuthenticationMode": "x509CertificateMultiFactor"\
}\
]\
},\
"issuerHintsConfiguration": {\
"state": "disabled"\
},\
"crlValidationConfiguration": {\
"state": "disabled",\
"exemptedCertificateAuthoritiesSubjectKeyIdentifiers": []\
},\
"certificateAuthorityScopes": [\
{\
"subjectKeyIdentifier": "aaaaaaaabbbbcccc111122222222222222333333",\
"publicKeyInfrastructureIdentifier": "Contoso PKI",\
"includeTargets": [\
{\
"id": "aaaaaaaa-bbbb-cccc-1111-222222222222",\
"targetType": "group"\
}\
]\
} \
],\
"includeTargets": [\
{\
"targetType": "group",\
"id": "all_users",\
"isRegistrationRequired": false\
}\
]\
}\
'
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
X509CertificateAuthenticationMethodConfiguration authenticationMethodConfiguration = new X509CertificateAuthenticationMethodConfiguration();
authenticationMethodConfiguration.setOdataType("#microsoft.graph.x509CertificateAuthenticationMethodConfiguration");
authenticationMethodConfiguration.setId("X509Certificate");
authenticationMethodConfiguration.setState(AuthenticationMethodState.Enabled);
LinkedList<X509CertificateUserBinding> certificateUserBindings = new LinkedList<X509CertificateUserBinding>();
X509CertificateUserBinding x509CertificateUserBinding = new X509CertificateUserBinding();
x509CertificateUserBinding.setX509CertificateField("PrincipalName");
x509CertificateUserBinding.setUserProperty("onPremisesUserPrincipalName");
x509CertificateUserBinding.setPriority(1);
certificateUserBindings.add(x509CertificateUserBinding);
authenticationMethodConfiguration.setCertificateUserBindings(certificateUserBindings);
X509CertificateAuthenticationModeConfiguration authenticationModeConfiguration = new X509CertificateAuthenticationModeConfiguration();
authenticationModeConfiguration.setX509CertificateAuthenticationDefaultMode(X509CertificateAuthenticationMode.X509CertificateMultiFactor);
LinkedList<X509CertificateRule> rules = new LinkedList<X509CertificateRule>();
X509CertificateRule x509CertificateRule = new X509CertificateRule();
x509CertificateRule.setX509CertificateRuleType(X509CertificateRuleType.IssuerSubject);
x509CertificateRule.setIdentifier("CN=ContosoCA,DC=Contoso,DC=org ");
x509CertificateRule.setX509CertificateAuthenticationMode(X509CertificateAuthenticationMode.X509CertificateMultiFactor);
rules.add(x509CertificateRule);
X509CertificateRule x509CertificateRule1 = new X509CertificateRule();
x509CertificateRule1.setX509CertificateRuleType(X509CertificateRuleType.PolicyOID);
x509CertificateRule1.setIdentifier("1.2.3.4");
x509CertificateRule1.setX509CertificateAuthenticationMode(X509CertificateAuthenticationMode.X509CertificateMultiFactor);
rules.add(x509CertificateRule1);
authenticationModeConfiguration.setRules(rules);
authenticationMethodConfiguration.setAuthenticationModeConfiguration(authenticationModeConfiguration);
X509CertificateIssuerHintsConfiguration issuerHintsConfiguration = new X509CertificateIssuerHintsConfiguration();
issuerHintsConfiguration.setState(X509CertificateIssuerHintsState.Disabled);
authenticationMethodConfiguration.setIssuerHintsConfiguration(issuerHintsConfiguration);
LinkedList<X509CertificateAuthorityScope> certificateAuthorityScopes = new LinkedList<X509CertificateAuthorityScope>();
X509CertificateAuthorityScope x509CertificateAuthorityScope = new X509CertificateAuthorityScope();
x509CertificateAuthorityScope.setSubjectKeyIdentifier("aaaaaaaabbbbcccc111122222222222222333333");
x509CertificateAuthorityScope.setPublicKeyInfrastructureIdentifier("Contoso PKI");
LinkedList<IncludeTarget> includeTargets = new LinkedList<IncludeTarget>();
IncludeTarget includeTarget = new IncludeTarget();
includeTarget.setId("aaaaaaaa-bbbb-cccc-1111-222222222222");
includeTarget.setTargetType(AuthenticationMethodTargetType.Group);
includeTargets.add(includeTarget);
x509CertificateAuthorityScope.setIncludeTargets(includeTargets);
certificateAuthorityScopes.add(x509CertificateAuthorityScope);
authenticationMethodConfiguration.setCertificateAuthorityScopes(certificateAuthorityScopes);
LinkedList<AuthenticationMethodTarget> includeTargets1 = new LinkedList<AuthenticationMethodTarget>();
AuthenticationMethodTarget authenticationMethodTarget = new AuthenticationMethodTarget();
authenticationMethodTarget.setTargetType(AuthenticationMethodTargetType.Group);
authenticationMethodTarget.setId("all_users");
authenticationMethodTarget.setIsRegistrationRequired(false);
includeTargets1.add(authenticationMethodTarget);
authenticationMethodConfiguration.setIncludeTargets(includeTargets1);
HashMap<String, Object> additionalData = new HashMap<String, Object>();
crlValidationConfiguration = new ();
crlValidationConfiguration.setState("disabled");
LinkedList<Object> exemptedCertificateAuthoritiesSubjectKeyIdentifiers = new LinkedList<Object>();
crlValidationConfiguration.setExemptedCertificateAuthoritiesSubjectKeyIdentifiers(exemptedCertificateAuthoritiesSubjectKeyIdentifiers);
additionalData.put("crlValidationConfiguration", crlValidationConfiguration);
authenticationMethodConfiguration.setAdditionalData(additionalData);
AuthenticationMethodConfiguration result = graphClient.policies().authenticationMethodsPolicy().authenticationMethodConfigurations().byAuthenticationMethodConfigurationId("{authenticationMethodConfiguration-id}").patch(authenticationMethodConfiguration);
const options = {
authProvider,
};
const client = Client.init(options);
const authenticationMethodConfiguration = {
'@odata.type': '#microsoft.graph.x509CertificateAuthenticationMethodConfiguration',
id: 'X509Certificate',
state: 'enabled',
certificateUserBindings: [
{
x509CertificateField: 'PrincipalName',
userProperty: 'onPremisesUserPrincipalName',
priority: 1
}
],
authenticationModeConfiguration: {
x509CertificateAuthenticationDefaultMode: 'x509CertificateMultiFactor',
rules: [
{
x509CertificateRuleType: 'issuerSubject',
identifier: 'CN=ContosoCA,DC=Contoso,DC=org ',
x509CertificateAuthenticationMode: 'x509CertificateMultiFactor'
},
{
x509CertificateRuleType: 'policyOID',
identifier: '1.2.3.4',
x509CertificateAuthenticationMode: 'x509CertificateMultiFactor'
}
]
},
issuerHintsConfiguration: {
state: 'disabled'
},
crlValidationConfiguration: {
state: 'disabled',
exemptedCertificateAuthoritiesSubjectKeyIdentifiers: []
},
certificateAuthorityScopes: [
{
subjectKeyIdentifier: 'aaaaaaaabbbbcccc111122222222222222333333',
publicKeyInfrastructureIdentifier: 'Contoso PKI',
includeTargets: [
{
id: 'aaaaaaaa-bbbb-cccc-1111-222222222222',
targetType: 'group'
}
]
}
],
includeTargets: [
{
targetType: 'group',
id: 'all_users',
isRegistrationRequired: false
}
]
};
await client.api('/policies/authenticationMethodsPolicy/authenticationMethodConfigurations/x509Certificate')
.version('beta')
.update(authenticationMethodConfiguration);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\X509CertificateAuthenticationMethodConfiguration;
use Microsoft\Graph\Beta\Generated\Models\AuthenticationMethodState;
use Microsoft\Graph\Beta\Generated\Models\X509CertificateUserBinding;
use Microsoft\Graph\Beta\Generated\Models\X509CertificateAuthenticationModeConfiguration;
use Microsoft\Graph\Beta\Generated\Models\X509CertificateAuthenticationMode;
use Microsoft\Graph\Beta\Generated\Models\X509CertificateRule;
use Microsoft\Graph\Beta\Generated\Models\X509CertificateRuleType;
use Microsoft\Graph\Beta\Generated\Models\X509CertificateIssuerHintsConfiguration;
use Microsoft\Graph\Beta\Generated\Models\X509CertificateIssuerHintsState;
use Microsoft\Graph\Beta\Generated\Models\X509CertificateAuthorityScope;
use Microsoft\Graph\Beta\Generated\Models\IncludeTarget;
use Microsoft\Graph\Beta\Generated\Models\AuthenticationMethodTargetType;
use Microsoft\Graph\Beta\Generated\Models\AuthenticationMethodTarget;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new X509CertificateAuthenticationMethodConfiguration();
$requestBody->setOdataType('#microsoft.graph.x509CertificateAuthenticationMethodConfiguration');
$requestBody->setId('X509Certificate');
$requestBody->setState(new AuthenticationMethodState('enabled'));
$certificateUserBindingsX509CertificateUserBinding1 = new X509CertificateUserBinding();
$certificateUserBindingsX509CertificateUserBinding1->setX509CertificateField('PrincipalName');
$certificateUserBindingsX509CertificateUserBinding1->setUserProperty('onPremisesUserPrincipalName');
$certificateUserBindingsX509CertificateUserBinding1->setPriority(1);
$certificateUserBindingsArray []= $certificateUserBindingsX509CertificateUserBinding1;
$requestBody->setCertificateUserBindings($certificateUserBindingsArray);
$authenticationModeConfiguration = new X509CertificateAuthenticationModeConfiguration();
$authenticationModeConfiguration->setX509CertificateAuthenticationDefaultMode(new X509CertificateAuthenticationMode('x509CertificateMultiFactor'));
$rulesX509CertificateRule1 = new X509CertificateRule();
$rulesX509CertificateRule1->setX509CertificateRuleType(new X509CertificateRuleType('issuerSubject'));
$rulesX509CertificateRule1->setIdentifier('CN=ContosoCA,DC=Contoso,DC=org ');
$rulesX509CertificateRule1->setX509CertificateAuthenticationMode(new X509CertificateAuthenticationMode('x509CertificateMultiFactor'));
$rulesArray []= $rulesX509CertificateRule1;
$rulesX509CertificateRule2 = new X509CertificateRule();
$rulesX509CertificateRule2->setX509CertificateRuleType(new X509CertificateRuleType('policyOID'));
$rulesX509CertificateRule2->setIdentifier('1.2.3.4');
$rulesX509CertificateRule2->setX509CertificateAuthenticationMode(new X509CertificateAuthenticationMode('x509CertificateMultiFactor'));
$rulesArray []= $rulesX509CertificateRule2;
$authenticationModeConfiguration->setRules($rulesArray);
$requestBody->setAuthenticationModeConfiguration($authenticationModeConfiguration);
$issuerHintsConfiguration = new X509CertificateIssuerHintsConfiguration();
$issuerHintsConfiguration->setState(new X509CertificateIssuerHintsState('disabled'));
$requestBody->setIssuerHintsConfiguration($issuerHintsConfiguration);
$certificateAuthorityScopesX509CertificateAuthorityScope1 = new X509CertificateAuthorityScope();
$certificateAuthorityScopesX509CertificateAuthorityScope1->setSubjectKeyIdentifier('aaaaaaaabbbbcccc111122222222222222333333');
$certificateAuthorityScopesX509CertificateAuthorityScope1->setPublicKeyInfrastructureIdentifier('Contoso PKI');
$includeTargetsIncludeTarget1 = new IncludeTarget();
$includeTargetsIncludeTarget1->setId('aaaaaaaa-bbbb-cccc-1111-222222222222');
$includeTargetsIncludeTarget1->setTargetType(new AuthenticationMethodTargetType('group'));
$includeTargetsArray []= $includeTargetsIncludeTarget1;
$certificateAuthorityScopesX509CertificateAuthorityScope1->setIncludeTargets($includeTargetsArray);
$certificateAuthorityScopesArray []= $certificateAuthorityScopesX509CertificateAuthorityScope1;
$requestBody->setCertificateAuthorityScopes($certificateAuthorityScopesArray);
$includeTargetsAuthenticationMethodTarget1 = new AuthenticationMethodTarget();
$includeTargetsAuthenticationMethodTarget1->setTargetType(new AuthenticationMethodTargetType('group'));
$includeTargetsAuthenticationMethodTarget1->setId('all_users');
$includeTargetsAuthenticationMethodTarget1->setIsRegistrationRequired(false);
$includeTargetsArray []= $includeTargetsAuthenticationMethodTarget1;
$requestBody->setIncludeTargets($includeTargetsArray);
$additionalData = [
'crlValidationConfiguration' => [
'state' => 'disabled',
'exemptedCertificateAuthoritiesSubjectKeyIdentifiers' => [],
],
];
$requestBody->setAdditionalData($additionalData);
$result = $graphServiceClient->policies()->authenticationMethodsPolicy()->authenticationMethodConfigurations()->byAuthenticationMethodConfigurationId('authenticationMethodConfiguration-id')->patch($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Identity.SignIns
$params = @{
"@odata.type" = "#microsoft.graph.x509CertificateAuthenticationMethodConfiguration"
id = "X509Certificate"
state = "enabled"
certificateUserBindings = @(
@{
x509CertificateField = "PrincipalName"
userProperty = "onPremisesUserPrincipalName"
priority =
}
)
authenticationModeConfiguration = @{
x509CertificateAuthenticationDefaultMode = "x509CertificateMultiFactor"
rules = @(
@{
x509CertificateRuleType = "issuerSubject"
identifier = "CN=ContosoCA,DC=Contoso,DC=org "
x509CertificateAuthenticationMode = "x509CertificateMultiFactor"
}
@{
x509CertificateRuleType = "policyOID"
identifier = "1.2.3.4"
x509CertificateAuthenticationMode = "x509CertificateMultiFactor"
}
)
}
issuerHintsConfiguration = @{
state = "disabled"
}
crlValidationConfiguration = @{
state = "disabled"
exemptedCertificateAuthoritiesSubjectKeyIdentifiers = @(
)
}
certificateAuthorityScopes = @(
@{
subjectKeyIdentifier = "aaaaaaaabbbbcccc111122222222222222333333"
publicKeyInfrastructureIdentifier = "Contoso PKI"
includeTargets = @(
@{
id = "aaaaaaaa-bbbb-cccc-1111-222222222222"
targetType = "group"
}
)
}
)
includeTargets = @(
@{
targetType = "group"
id = "all_users"
isRegistrationRequired = $false
}
)
}
Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration -AuthenticationMethodConfigurationId $authenticationMethodConfigurationId -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.x509_certificate_authentication_method_configuration import X509CertificateAuthenticationMethodConfiguration
from msgraph_beta.generated.models.authentication_method_state import AuthenticationMethodState
from msgraph_beta.generated.models.x509_certificate_user_binding import X509CertificateUserBinding
from msgraph_beta.generated.models.x509_certificate_authentication_mode_configuration import X509CertificateAuthenticationModeConfiguration
from msgraph_beta.generated.models.x509_certificate_authentication_mode import X509CertificateAuthenticationMode
from msgraph_beta.generated.models.x509_certificate_rule import X509CertificateRule
from msgraph_beta.generated.models.x509_certificate_rule_type import X509CertificateRuleType
from msgraph_beta.generated.models.x509_certificate_issuer_hints_configuration import X509CertificateIssuerHintsConfiguration
from msgraph_beta.generated.models.x509_certificate_issuer_hints_state import X509CertificateIssuerHintsState
from msgraph_beta.generated.models.x509_certificate_authority_scope import X509CertificateAuthorityScope
from msgraph_beta.generated.models.include_target import IncludeTarget
from msgraph_beta.generated.models.authentication_method_target_type import AuthenticationMethodTargetType
from msgraph_beta.generated.models.authentication_method_target import AuthenticationMethodTarget
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = X509CertificateAuthenticationMethodConfiguration(
odata_type = "#microsoft.graph.x509CertificateAuthenticationMethodConfiguration",
id = "X509Certificate",
state = AuthenticationMethodState.Enabled,
certificate_user_bindings = [
X509CertificateUserBinding(
x509_certificate_field = "PrincipalName",
user_property = "onPremisesUserPrincipalName",
priority = 1,
),
],
authentication_mode_configuration = X509CertificateAuthenticationModeConfiguration(
x509_certificate_authentication_default_mode = X509CertificateAuthenticationMode.X509CertificateMultiFactor,
rules = [
X509CertificateRule(
x509_certificate_rule_type = X509CertificateRuleType.IssuerSubject,
identifier = "CN=ContosoCA,DC=Contoso,DC=org ",
x509_certificate_authentication_mode = X509CertificateAuthenticationMode.X509CertificateMultiFactor,
),
X509CertificateRule(
x509_certificate_rule_type = X509CertificateRuleType.PolicyOID,
identifier = "1.2.3.4",
x509_certificate_authentication_mode = X509CertificateAuthenticationMode.X509CertificateMultiFactor,
),
],
),
issuer_hints_configuration = X509CertificateIssuerHintsConfiguration(
state = X509CertificateIssuerHintsState.Disabled,
),
certificate_authority_scopes = [
X509CertificateAuthorityScope(
subject_key_identifier = "aaaaaaaabbbbcccc111122222222222222333333",
public_key_infrastructure_identifier = "Contoso PKI",
include_targets = [
IncludeTarget(
id = "aaaaaaaa-bbbb-cccc-1111-222222222222",
target_type = AuthenticationMethodTargetType.Group,
),
],
),
],
include_targets = [
AuthenticationMethodTarget(
target_type = AuthenticationMethodTargetType.Group,
id = "all_users",
is_registration_required = False,
),
],
additional_data = {
"crl_validation_configuration" : {
"state" : "disabled",
"exempted_certificate_authorities_subject_key_identifiers" : [
],
},
}
)
result = await graph_client.policies.authentication_methods_policy.authentication_method_configurations.by_authentication_method_configuration_id('authenticationMethodConfiguration-id').patch(request_body)