PowerShell veya Microsoft Graph API kullanarak kiracılar arası eşitlemeyi yapılandırma
Bu makalede, Microsoft Graph PowerShell veya Microsoft Graph API kullanarak kiracılar arası eşitlemeyi yapılandırmaya yönelik temel adımlar açıklanmaktadır. Yapılandırıldığında, Microsoft Entra Id hedef kiracınızdaki B2B kullanıcılarını otomatik olarak sağlar ve sağlamalarını kaldırıyor. Microsoft Entra yönetim merkezini kullanmayla ilgili ayrıntılı adımlar için bkz . Kiracılar arası eşitlemeyi yapılandırma.
Önkoşullar
Kaynak kiracı
- Microsoft Entra Id P1 veya P2 lisansı. Daha fazla bilgi için bkz . Lisans gereksinimleri.
- Kiracılar arası erişim ayarlarını yapılandırmak için Güvenlik Yöneticisi rolü.
- Kiracılar arası eşitlemeyi yapılandırmak için Karma Kimlik Yöneticisi rolü.
- Kullanıcıları bir yapılandırmaya atamak ve yapılandırmayı silmek için Bulut Uygulama Yöneticisi veya Uygulama Yöneticisi rolü.
- Gerekli izinlere onay vermek için Genel Yönetici rolü.
Hedef kiracı
- Microsoft Entra Id P1 veya P2 lisansı. Daha fazla bilgi için bkz . Lisans gereksinimleri.
- Kiracılar arası erişim ayarlarını yapılandırmak için Güvenlik Yöneticisi rolü.
- Gerekli izinlere onay vermek için Genel Yönetici rolü.
1. Adım: Hedef kiracıda oturum açma
Hedef kiracı
PowerShell'i başlatın.
Kaynak ve hedef kiracıların kiracı kimliğini alın ve değişkenleri başlatın.
$SourceTenantId = "<SourceTenantId>" $TargetTenantId = "<TargetTenantId>"
Hedef kiracıda oturum açmak ve aşağıdaki gerekli izinleri kabul etmek için Connect-MgGraph komutunu kullanın.
Policy.Read.All
Policy.ReadWrite.CrossTenantAccess
Connect-MgGraph -TenantId $TargetTenantId -Scopes "Policy.Read.All","Policy.ReadWrite.CrossTenantAccess"
2. Adım: Hedef kiracıda kullanıcı eşitlemesini etkinleştirme
Hedef kiracı
Hedef kiracıda New-MgPolicyCrossTenantAccessPolicyPartner komutunu kullanarak hedef kiracı ile kaynak kiracı arasındaki kiracılar arası erişim ilkesinde yeni bir iş ortağı yapılandırması oluşturun. İstekte kaynak kiracı kimliğini kullanın.
hatasını
New-MgPolicyCrossTenantAccessPolicyPartner_Create: Another object with the same value for property tenantId already exists
alırsanız, zaten var olan bir yapılandırmanız olabilir. Daha fazla bilgi için bkz . Belirti - Yeni-MgPolicyCrossTenantAccessPolicyPartner_Create hatası.$Params = @{ TenantId = $SourceTenantId } New-MgPolicyCrossTenantAccessPolicyPartner -BodyParameter $Params | Format-List
AutomaticUserConsentSettings : Microsoft.Graph.PowerShell.Models.MicrosoftGraphInboundOutboundPolicyConfiguration B2BCollaborationInbound : Microsoft.Graph.PowerShell.Models.MicrosoftGraphCrossTenantAccessPolicyB2BSetting B2BCollaborationOutbound : Microsoft.Graph.PowerShell.Models.MicrosoftGraphCrossTenantAccessPolicyB2BSetting B2BDirectConnectInbound : Microsoft.Graph.PowerShell.Models.MicrosoftGraphCrossTenantAccessPolicyB2BSetting B2BDirectConnectOutbound : Microsoft.Graph.PowerShell.Models.MicrosoftGraphCrossTenantAccessPolicyB2BSetting IdentitySynchronization : Microsoft.Graph.PowerShell.Models.MicrosoftGraphCrossTenantIdentitySyncPolicyPartner InboundTrust : Microsoft.Graph.PowerShell.Models.MicrosoftGraphCrossTenantAccessPolicyInboundTrust IsServiceProvider : TenantId : <SourceTenantId> TenantRestrictions : Microsoft.Graph.PowerShell.Models.MicrosoftGraphCrossTenantAccessPolicyTenantRestrictions AdditionalProperties : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#policies/crossTenantAccessPolicy/partners/$entity], [crossCloudMeetingConfiguration, System.Collections.Generic.Dictionary`2[System.String,System.Object]], [protectedContentSharing, System.Collections.Generic.Dictionary`2[System.String,System.Object]]}
Hedef kiracıda kullanıcı eşitlemesini etkinleştirmek için Invoke-MgGraphRequest komutunu kullanın.
Hata
Request_MultipleObjectsWithSameKeyValue
alırsanız zaten bir ilkeniz olabilir. Daha fazla bilgi için bkz . Belirti - Request_MultipleObjectsWithSameKeyValue hatası.$Params = @{ userSyncInbound = @{ isSyncAllowed = $true } } Invoke-MgGraphRequest -Method PUT -Uri "https://graph.microsoft.com/v1.0/policies/crossTenantAccessPolicy/partners/$SourceTenantId/identitySynchronization" -Body $Params
Doğru olarak ayarlandığını doğrulamak
IsSyncAllowed
için Get-MgPolicyCrossTenantAccessPolicyPartnerIdentitySynchronization komutunu kullanın.(Get-MgPolicyCrossTenantAccessPolicyPartnerIdentitySynchronization -CrossTenantAccessPolicyConfigurationPartnerTenantId $SourceTenantId).UserSyncInbound
IsSyncAllowed ------------- True
3. Adım: Davetleri hedef kiracıda otomatik olarak kullanma
Hedef kiracı
Hedef kiracıda, davetleri otomatik olarak kullanmak ve gelen erişim için onay istemlerini engellemek için Update-MgPolicyCrossTenantAccessPolicyPartner komutunu kullanın.
$AutomaticUserConsentSettings = @{ "InboundAllowed"="True" } Update-MgPolicyCrossTenantAccessPolicyPartner -CrossTenantAccessPolicyConfigurationPartnerTenantId $SourceTenantId -AutomaticUserConsentSettings $AutomaticUserConsentSettings
4. Adım: Kaynak kiracıda oturum açma
Kaynak kiracı
PowerShell örneğini başlatın.
Kaynak ve hedef kiracıların kiracı kimliğini alın ve değişkenleri başlatın.
$SourceTenantId = "<SourceTenantId>" $TargetTenantId = "<TargetTenantId>"
Kaynak kiracıda oturum açmak ve aşağıdaki gerekli izinleri kabul etmek için Connect-MgGraph komutunu kullanın.
Policy.Read.All
Policy.ReadWrite.CrossTenantAccess
Application.ReadWrite.All
Directory.ReadWrite.All
AuditLog.Read.All
Connect-MgGraph -TenantId $SourceTenantId -Scopes "Policy.Read.All","Policy.ReadWrite.CrossTenantAccess","Application.ReadWrite.All","Directory.ReadWrite.All","AuditLog.Read.All"
5. Adım: Davetleri kaynak kiracıda otomatik olarak kullanma
Kaynak kiracı
Kaynak kiracı ile hedef kiracı arasındaki kiracılar arası erişim ilkesinde yeni bir iş ortağı yapılandırması oluşturmak için kaynak kiracıda New-MgPolicyCrossTenantAccessPolicyPartner komutunu kullanın. İstekte hedef kiracı kimliğini kullanın.
hatasını
New-MgPolicyCrossTenantAccessPolicyPartner_Create: Another object with the same value for property tenantId already exists
alırsanız, zaten var olan bir yapılandırmanız olabilir. Daha fazla bilgi için bkz . Belirti - Yeni-MgPolicyCrossTenantAccessPolicyPartner_Create hatası.$Params = @{ TenantId = $TargetTenantId } New-MgPolicyCrossTenantAccessPolicyPartner -BodyParameter $Params | Format-List
AutomaticUserConsentSettings : Microsoft.Graph.PowerShell.Models.MicrosoftGraphInboundOutboundPolicyConfiguration B2BCollaborationInbound : Microsoft.Graph.PowerShell.Models.MicrosoftGraphCrossTenantAccessPolicyB2BSetting B2BCollaborationOutbound : Microsoft.Graph.PowerShell.Models.MicrosoftGraphCrossTenantAccessPolicyB2BSetting B2BDirectConnectInbound : Microsoft.Graph.PowerShell.Models.MicrosoftGraphCrossTenantAccessPolicyB2BSetting B2BDirectConnectOutbound : Microsoft.Graph.PowerShell.Models.MicrosoftGraphCrossTenantAccessPolicyB2BSetting IdentitySynchronization : Microsoft.Graph.PowerShell.Models.MicrosoftGraphCrossTenantIdentitySyncPolicyPartner InboundTrust : Microsoft.Graph.PowerShell.Models.MicrosoftGraphCrossTenantAccessPolicyInboundTrust IsServiceProvider : TenantId : <TargetTenantId> TenantRestrictions : Microsoft.Graph.PowerShell.Models.MicrosoftGraphCrossTenantAccessPolicyTenantRestrictions AdditionalProperties : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#policies/crossTenantAccessPolicy/partners/$entity], [crossCloudMeetingConfiguration, System.Collections.Generic.Dictionary`2[System.String,System.Object]], [protectedContentSharing, System.Collections.Generic.Dictionary`2[System.String,System.Object]]}
Davetleri otomatik olarak kullanmak ve giden erişim için onay istemlerini engellemek için Update-MgPolicyCrossTenantAccessPolicyPartner komutunu kullanın.
$AutomaticUserConsentSettings = @{ "OutboundAllowed"="True" } Update-MgPolicyCrossTenantAccessPolicyPartner -CrossTenantAccessPolicyConfigurationPartnerTenantId $TargetTenantId -AutomaticUserConsentSettings $AutomaticUserConsentSettings
6. Adım: Kaynak kiracıda yapılandırma uygulaması oluşturma
Kaynak kiracı
Microsoft Entra uygulama galerisinden kiracınıza yapılandırma uygulamasının bir örneğini eklemek için kaynak kiracıda Invoke-MgInstantiateApplicationTemplate komutunu kullanın.
Invoke-MgInstantiateApplicationTemplate -ApplicationTemplateId "518e5f48-1fc8-4c48-9387-9fdf28b0dfe7" -DisplayName "Fabrikam"
Hizmet sorumlusu kimliğini ve uygulama rolü kimliğini almak için Get-MgServicePrincipal komutunu kullanın.
Get-MgServicePrincipal -Filter "DisplayName eq 'Fabrikam'" | Format-List
AccountEnabled : True AddIns : {} AlternativeNames : {} AppDescription : AppDisplayName : Fabrikam AppId : <AppId> AppManagementPolicies : AppOwnerOrganizationId : <AppOwnerOrganizationId> AppRoleAssignedTo : AppRoleAssignmentRequired : True AppRoleAssignments : AppRoles : {<AppRoleId>} ApplicationTemplateId : 518e5f48-1fc8-4c48-9387-9fdf28b0dfe7 ClaimsMappingPolicies : CreatedObjects : CustomSecurityAttributes : Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue DelegatedPermissionClassifications : DeletedDateTime : Description : DisabledByMicrosoftStatus : DisplayName : Fabrikam Endpoints : ErrorUrl : FederatedIdentityCredentials : HomeRealmDiscoveryPolicies : Homepage : https://account.activedirectory.windowsazure.com:444/applications/default.aspx?metadata=aad2aadsync|ISV9.1|primary|z Id : <ServicePrincipalId> Info : Microsoft.Graph.PowerShell.Models.MicrosoftGraphInformationalUrl KeyCredentials : {} LicenseDetails : ...
Hizmet sorumlusu kimliği için bir değişken başlatın.
Uygulama kimliği yerine hizmet sorumlusu kimliğini kullandığınızdan emin olun.
$ServicePrincipalId = "<ServicePrincipalId>"
Uygulama rolü kimliği için bir değişken başlatın.
$AppRoleId= "<AppRoleId>"
7. Adım: Hedef kiracı bağlantısını test etme
Kaynak kiracı
Kaynak kiracıda Invoke-MgGraphRequest komutunu kullanarak hedef kiracıyla bağlantıyı test edin ve kimlik bilgilerini doğrulayın.
$Params = @{ "useSavedCredentials" = $false "templateId" = "Azure2Azure" "credentials" = @( @{ "key" = "CompanyId" "value" = $TargetTenantId } @{ "key" = "AuthenticationType" "value" = "SyncPolicy" } ) } Invoke-MgGraphRequest -Method POST -Uri "https://graph.microsoft.com/v1.0/servicePrincipals/$ServicePrincipalId/synchronization/jobs/validateCredentials" -Body $Params
8. Adım: Kaynak kiracıda sağlama işi oluşturma
Kaynak kiracı
Kaynak kiracıda sağlamayı etkinleştirmek için bir sağlama işi oluşturun.
Kullanılacak eşitleme şablonunu ( gibi
Azure2Azure
) belirleyin.Şablonda önceden yapılandırılmış eşitleme ayarları vardır.
Kaynak kiracıda, şablonu temel alan bir sağlama işi oluşturmak için New-MgServicePrincipalSynchronizationJob komutunu kullanın.
New-MgServicePrincipalSynchronizationJob -ServicePrincipalId $ServicePrincipalId -TemplateId "Azure2Azure" | Format-List
Id : <JobId> Schedule : Microsoft.Graph.PowerShell.Models.MicrosoftGraphSynchronizationSchedule Schema : Microsoft.Graph.PowerShell.Models.MicrosoftGraphSynchronizationSchema Status : Microsoft.Graph.PowerShell.Models.MicrosoftGraphSynchronizationStatus SynchronizationJobSettings : {AzureIngestionAttributeOptimization, LookaheadQueryEnabled} TemplateId : Azure2Azure AdditionalProperties : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#servicePrincipals('<ServicePrincipalId>')/synchro nization/jobs/$entity]}
İş kimliği için bir değişken başlatın.
$JobId = "<JobId>"
9. Adım: Kimlik bilgilerinizi kaydetme
Kaynak kiracı
Kimlik bilgilerinizi kaydetmek için kaynak kiracıda Invoke-MgGraphRequest komutunu kullanın.
$Params = @{ "value" = @( @{ "key" = "AuthenticationType" "value" = "SyncPolicy" } @{ "key" = "CompanyId" "value" = $TargetTenantId } ) } Invoke-MgGraphRequest -Method PUT -Uri "https://graph.microsoft.com/v1.0/servicePrincipals/$ServicePrincipalId/synchronization/secrets" -Body $Params
10. Adım: Yapılandırmaya kullanıcı atama
Kaynak kiracı
Kiracılar arası eşitlemenin çalışması için yapılandırmaya en az bir iç kullanıcı atanmalıdır.
Kaynak kiracıda, yapılandırmaya bir iç kullanıcı atamak için New-MgServicePrincipalAppRoleAssignedTo komutunu kullanın.
$Params = @{ PrincipalId = "<PrincipalId>" ResourceId = $ServicePrincipalId AppRoleId = $AppRoleId } New-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $ServicePrincipalId -BodyParameter $Params | Format-List
AppRoleId : <AppRoleId> CreatedDateTime : 7/31/2023 10:27:12 PM DeletedDateTime : Id : <Id> PrincipalDisplayName : User1 PrincipalId : <PrincipalId> PrincipalType : User ResourceDisplayName : Fabrikam ResourceId : <ServicePrincipalId> AdditionalProperties : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#appRoleAssignments/$entity]}
11. Adım: İsteğe bağlı olarak sağlamayı test edin
Kaynak kiracı
Artık bir yapılandırmanız olduğuna göre, kullanıcılarınızdan biriyle isteğe bağlı sağlamayı test edebilirsiniz.
Şema kuralı kimliğini almak için kaynak kiracıda Get-MgServicePrincipalSynchronizationJobSchema komutunu kullanın.
$SynchronizationSchema = Get-MgServicePrincipalSynchronizationJobSchema -ServicePrincipalId $ServicePrincipalId -SynchronizationJobId $JobId $SynchronizationSchema.SynchronizationRules | Format-List
ContainerFilter : Microsoft.Graph.PowerShell.Models.MicrosoftGraphContainerFilter Editable : True GroupFilter : Microsoft.Graph.PowerShell.Models.MicrosoftGraphGroupFilter Id : <RuleId> Metadata : {defaultSourceObjectMappings, supportsProvisionOnDemand} Name : USER_INBOUND_USER ObjectMappings : {Provision Azure Active Directory Users, , , ...} Priority : 1 SourceDirectoryName : Azure Active Directory TargetDirectoryName : Azure Active Directory (target tenant) AdditionalProperties : {}
Kural kimliği için bir değişken başlatın.
$RuleId = "<RuleId>"
İsteğe bağlı bir test kullanıcısı sağlamak için New-MgServicePrincipalSynchronizationJobOnDemand komutunu kullanın.
$Params = @{ Parameters = @( @{ Subjects = @( @{ ObjectId = "<UserObjectId>" ObjectTypeName = "User" } ) RuleId = $RuleId } ) } New-MgServicePrincipalSynchronizationJobOnDemand -ServicePrincipalId $ServicePrincipalId -SynchronizationJobId $JobId -BodyParameter $Params | Format-List
Key : Microsoft.Identity.Health.CPP.Common.DataContracts.SyncFabric.StatusInfo Value : [{"provisioningSteps":[{"name":"EntryImport","type":"Import","status":"Success","description":"Retrieved User 'user1@fabrikam.com' from Azure Active Directory","timestamp":"2023-07-31T22:31:15.9116590Z","details":{"objectId": "<UserObjectId>","accountEnabled":"True","displayName":"User1","mailNickname":"user1","userPrincipalName":"use ... AdditionalProperties : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.stringKeyStringValuePair]}
12. Adım: Sağlama işini başlatma
Kaynak kiracı
Sağlama işi yapılandırıldığına göre kaynak kiracıda, sağlama işini başlatmak için Start-MgServicePrincipalSynchronizationJob komutunu kullanın.
Start-MgServicePrincipalSynchronizationJob -ServicePrincipalId $ServicePrincipalId -SynchronizationJobId $JobId
13. Adım: Sağlamayı izleme
Kaynak kiracı
Artık sağlama işi çalıştırıldığına göre kaynak kiracıda Get-MgServicePrincipalSynchronizationJob komutunu kullanarak geçerli sağlama döngüsünün ilerleme durumunu ve hedef sistemde oluşturulan kullanıcı ve grup sayısı gibi bugüne kadarki istatistikleri izleyin.
Get-MgServicePrincipalSynchronizationJob -ServicePrincipalId $ServicePrincipalId -SynchronizationJobId $JobId | Format-List
Id : <JobId> Schedule : Microsoft.Graph.PowerShell.Models.MicrosoftGraphSynchronizationSchedule Schema : Microsoft.Graph.PowerShell.Models.MicrosoftGraphSynchronizationSchema Status : Microsoft.Graph.PowerShell.Models.MicrosoftGraphSynchronizationStatus SynchronizationJobSettings : {AzureIngestionAttributeOptimization, LookaheadQueryEnabled} TemplateId : Azure2Azure AdditionalProperties : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#servicePrincipals('<ServicePrincipalId>')/synchro nization/jobs/$entity]}
Sağlama işinin durumunu izlemeye ek olarak, sağlama günlüklerini almak ve gerçekleşen tüm sağlama olaylarını almak için Get-MgAuditLogProvisioning komutunu kullanın. Örneğin, belirli bir kullanıcıyı sorgulayıp başarıyla sağlanıp sağlanmadığını belirleyin.
Get-MgAuditLogDirectoryAudit | Select -First 10 | Format-List
ActivityDateTime : 7/31/2023 12:08:17 AM ActivityDisplayName : Export AdditionalDetails : {Details, ErrorCode, EventName, ipaddr...} Category : ProvisioningManagement CorrelationId : aaaa0000-bb11-2222-33cc-444444dddddd Id : Sync_aaaa0000-bb11-2222-33cc-444444dddddd_L5BFV_161778479 InitiatedBy : Microsoft.Graph.PowerShell.Models.MicrosoftGraphAuditActivityInitiator1 LoggedByService : Account Provisioning OperationType : Result : success ResultReason : User 'user2@fabrikam.com' was created in Azure Active Directory (target tenant) TargetResources : {<ServicePrincipalId>, } AdditionalProperties : {} ActivityDateTime : 7/31/2023 12:08:17 AM ActivityDisplayName : Export AdditionalDetails : {Details, ErrorCode, EventName, ipaddr...} Category : ProvisioningManagement CorrelationId : aaaa0000-bb11-2222-33cc-444444dddddd Id : Sync_aaaa0000-bb11-2222-33cc-444444dddddd_L5BFV_161778264 InitiatedBy : Microsoft.Graph.PowerShell.Models.MicrosoftGraphAuditActivityInitiator1 LoggedByService : Account Provisioning OperationType : Result : success ResultReason : User 'user2@fabrikam.com' was updated in Azure Active Directory (target tenant) TargetResources : {<ServicePrincipalId>, } AdditionalProperties : {} ActivityDateTime : 7/31/2023 12:08:14 AM ActivityDisplayName : Synchronization rule action AdditionalDetails : {Details, ErrorCode, EventName, ipaddr...} Category : ProvisioningManagement CorrelationId : aaaa0000-bb11-2222-33cc-444444dddddd Id : Sync_aaaa0000-bb11-2222-33cc-444444dddddd_L5BFV_161778395 InitiatedBy : Microsoft.Graph.PowerShell.Models.MicrosoftGraphAuditActivityInitiator1 LoggedByService : Account Provisioning OperationType : Result : success ResultReason : User 'user2@fabrikam.com' will be created in Azure Active Directory (target tenant) (User is active and assigned in Azure Active Directory, but no matching User was found in Azure Active Directory (target tenant)) TargetResources : {<ServicePrincipalId>, } AdditionalProperties : {}
Sorun giderme ipuçları
Belirti - Yetersiz ayrıcalık hatası
Bir eylem gerçekleştirmeye çalıştığınızda, aşağıdakine benzer bir hata iletisi alırsınız:
code: Authorization_RequestDenied
message: Insufficient privileges to complete the operation.
Neden
Oturum açmış kullanıcının yeterli ayrıcalığı yok veya gerekli izinlerden birini onaylamanız gerekiyor.
Çözüm
Gerekli rollere atandığınızdan emin olun. Bu makalenin önceki bölümlerinde yer alan Önkoşullar bölümüne bakın.
Connect-MgGraph ile oturum açtığınızda, gerekli kapsamları belirttiğinizden emin olun. Bu makalenin önceki bölümlerinde yer alan 1. Adım: Hedef kiracıda oturum açma ve 4. Adım: Kaynak kiracıda oturum açma konusuna bakın.
Belirti - Yeni MgPolicyCrossTenantAccessPolicyPartner_Create hatası
Yeni bir iş ortağı yapılandırması oluşturmaya çalıştığınızda, aşağıdakine benzer bir hata iletisi alırsınız:
New-MgPolicyCrossTenantAccessPolicyPartner_Create: Another object with the same value for property tenantId already exists.
Neden
Büyük olasılıkla, muhtemelen önceki bir yapılandırmadan zaten var olan bir yapılandırma veya nesne oluşturmaya çalışıyorsunuz.
Çözüm
Söz diziminizi ve doğru kiracı kimliğini kullandığınızı doğrulayın.
Var olan nesneyi listelemek için Get-MgPolicyCrossTenantAccessPolicyPartner komutunu kullanın.
Mevcut bir nesneniz varsa Update-MgPolicyCrossTenantAccessPolicyPartner kullanarak bir güncelleştirme yapmanız gerekebilir
Belirti - Request_MultipleObjectsWithSameKeyValue hatası
Kullanıcı eşitlemesini etkinleştirmeye çalıştığınızda, aşağıdakine benzer bir hata iletisi alırsınız:
Invoke-MgGraphRequest: PUT https://graph.microsoft.com/v1.0/policies/crossTenantAccessPolicy/partners/<SourceTenantId>/identitySynchronization
HTTP/1.1 409 Conflict
...
{"error":{"code":"Request_MultipleObjectsWithSameKeyValue","message":"A conflicting object with one or more of the specified property values is present in the directory.","details":[{"code":"ConflictingObjects","message":"A conflicting object with one or more of the specified property values is present in the directory.", ... }}}
Neden
Büyük olasılıkla daha önceki bir yapılandırmadan zaten var olan bir ilke oluşturmaya çalışıyorsunuz.
Çözüm
Söz diziminizi ve doğru kiracı kimliğini kullandığınızı doğrulayın.
Ayarı listelemek
IsSyncAllowed
için Get-MgPolicyCrossTenantAccessPolicyPartnerIdentitySynchronization komutunu kullanın.(Get-MgPolicyCrossTenantAccessPolicyPartnerIdentitySynchronization -CrossTenantAccessPolicyConfigurationPartnerTenantId $SourceTenantId).UserSyncInbound
Mevcut bir ilkeniz varsa, kullanıcı eşitlemesini etkinleştirmek için Set-MgPolicyCrossTenantAccessPolicyPartnerIdentitySynchronization komutunu kullanarak bir güncelleştirme yapmanız gerekebilir.
$Params = @{ userSyncInbound = @{ isSyncAllowed = $true } } Set-MgPolicyCrossTenantAccessPolicyPartnerIdentitySynchronization -CrossTenantAccessPolicyConfigurationPartnerTenantId $SourceTenantId -BodyParameter $Params