Bagikan melalui


Mengonfigurasi sinkronisasi lintas penyewa menggunakan PowerShell atau Microsoft Graph API

Artikel ini menjelaskan langkah-langkah utama untuk mengonfigurasi sinkronisasi lintas penyewa menggunakan Microsoft Graph PowerShell atau Microsoft Graph API. Saat dikonfigurasi, MICROSOFT Entra ID secara otomatis memprovisi dan mendeprovisi pengguna B2B di penyewa target Anda. Untuk langkah-langkah terperinci menggunakan pusat admin Microsoft Entra, lihat Mengonfigurasi sinkronisasi lintas penyewa.

Diagram yang memperlihatkan sinkronisasi lintas penyewa antara penyewa sumber dan penyewa target.

Prasyarat

Ikon untuk penyewa sumber.
Penyewa sumber

Ikon untuk penyewa target.
Penyewa target

Langkah 1: Masuk ke penyewa target

Ikon untuk penyewa target.
Penyewa target

  1. Mulai PowerShell.

  2. Jika perlu, instal Microsoft Graph PowerShell SDK.

  3. Dapatkan ID penyewa dari penyewa sumber dan target dan inisialisasi variabel.

    $SourceTenantId = "<SourceTenantId>"
    $TargetTenantId = "<TargetTenantId>"
    
  4. Gunakan perintah Connect-MgGraph untuk masuk ke penyewa target dan menyetujui izin yang diperlukan berikut ini.

    • Policy.Read.All
    • Policy.ReadWrite.CrossTenantAccess
    Connect-MgGraph -TenantId $TargetTenantId -Scopes "Policy.Read.All","Policy.ReadWrite.CrossTenantAccess"
    

Langkah 2: Mengaktifkan sinkronisasi pengguna di penyewa target

Ikon untuk penyewa target.
Penyewa target

  1. Di penyewa target, gunakan perintah New-MgPolicyCrossTenantAccessPolicyPartner untuk membuat konfigurasi mitra baru dalam kebijakan akses lintas penyewa antara penyewa target dan penyewa sumber. Gunakan ID penyewa sumber dalam permintaan.

    Jika Anda mendapatkan kesalahan New-MgPolicyCrossTenantAccessPolicyPartner_Create: Another object with the same value for property tenantId already exists, Anda mungkin sudah memiliki konfigurasi yang sudah ada. Untuk informasi selengkapnya, lihat Gejala - Kesalahan MgPolicyCrossTenantAccessPolicyPartner_Create baru.

    $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]]}
    
  2. Gunakan perintah Invoke-MgGraphRequest untuk mengaktifkan sinkronisasi pengguna di penyewa target.

    Jika Anda mendapatkan kesalahan Request_MultipleObjectsWithSameKeyValue , Anda mungkin sudah memiliki kebijakan yang sudah ada. Untuk informasi selengkapnya, lihat Gejala - kesalahan Request_MultipleObjectsWithSameKeyValue.

    $Params = @{
        userSyncInbound = @{
            isSyncAllowed = $true
        }
    }
    Invoke-MgGraphRequest -Method PUT -Uri "https://graph.microsoft.com/v1.0/policies/crossTenantAccessPolicy/partners/$SourceTenantId/identitySynchronization" -Body $Params
    
  3. Gunakan perintah Get-MgPolicyCrossTenantAccessPolicyPartnerIdentitySynchronization untuk memverifikasi IsSyncAllowed diatur ke True.

    (Get-MgPolicyCrossTenantAccessPolicyPartnerIdentitySynchronization -CrossTenantAccessPolicyConfigurationPartnerTenantId $SourceTenantId).UserSyncInbound
    
    IsSyncAllowed
    -------------
    True
    

Langkah 3: Menukarkan undangan secara otomatis di penyewa target

Ikon untuk penyewa target.
Penyewa target

  1. Di penyewa target, gunakan perintah Update-MgPolicyCrossTenantAccessPolicyPartner untuk secara otomatis menukarkan undangan dan menekan permintaan persetujuan untuk akses masuk.

    $AutomaticUserConsentSettings = @{
        "InboundAllowed"="True"
    }
    Update-MgPolicyCrossTenantAccessPolicyPartner -CrossTenantAccessPolicyConfigurationPartnerTenantId $SourceTenantId -AutomaticUserConsentSettings $AutomaticUserConsentSettings
    

Langkah 4: Masuk ke penyewa sumber

Ikon untuk penyewa sumber.
Penyewa sumber

  1. Mulai instans PowerShell.

  2. Dapatkan ID penyewa dari penyewa sumber dan target dan inisialisasi variabel.

    $SourceTenantId = "<SourceTenantId>"
    $TargetTenantId = "<TargetTenantId>"
    
  3. Gunakan perintah Connect-MgGraph untuk masuk ke penyewa sumber dan menyetujui izin yang diperlukan berikut ini.

    • 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"
    

Langkah 5: Menukarkan undangan secara otomatis di penyewa sumber

Ikon untuk penyewa sumber.
Penyewa sumber

  1. Di penyewa sumber, gunakan perintah New-MgPolicyCrossTenantAccessPolicyPartner untuk membuat konfigurasi mitra baru dalam kebijakan akses lintas penyewa antara penyewa sumber dan penyewa target. Gunakan ID penyewa target dalam permintaan.

    Jika Anda mendapatkan kesalahan New-MgPolicyCrossTenantAccessPolicyPartner_Create: Another object with the same value for property tenantId already exists, Anda mungkin sudah memiliki konfigurasi yang sudah ada. Untuk informasi selengkapnya, lihat Gejala - Kesalahan MgPolicyCrossTenantAccessPolicyPartner_Create baru.

    $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]]}
    
    
  2. Gunakan perintah Update-MgPolicyCrossTenantAccessPolicyPartner untuk secara otomatis menukarkan undangan dan menekan permintaan persetujuan untuk akses keluar.

    $AutomaticUserConsentSettings = @{
        "OutboundAllowed"="True"
    }
    Update-MgPolicyCrossTenantAccessPolicyPartner -CrossTenantAccessPolicyConfigurationPartnerTenantId $TargetTenantId -AutomaticUserConsentSettings $AutomaticUserConsentSettings
    

Langkah 6: Membuat aplikasi konfigurasi di penyewa sumber

Ikon untuk penyewa sumber.
Penyewa sumber

  1. Di penyewa sumber, gunakan perintah Invoke-MgInstantiateApplicationTemplate untuk menambahkan instans aplikasi konfigurasi dari galeri aplikasi Microsoft Entra ke penyewa Anda.

    Invoke-MgInstantiateApplicationTemplate -ApplicationTemplateId "518e5f48-1fc8-4c48-9387-9fdf28b0dfe7" -DisplayName "Fabrikam"
    
  2. Gunakan perintah Get-MgServicePrincipal untuk mendapatkan ID perwakilan layanan dan ID peran aplikasi.

    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                      :
    
    ...
    
  3. Menginisialisasi variabel untuk ID perwakilan layanan.

    Pastikan untuk menggunakan ID perwakilan layanan alih-alih ID aplikasi.

    $ServicePrincipalId = "<ServicePrincipalId>"
    
  4. Menginisialisasi variabel untuk ID peran aplikasi.

    $AppRoleId= "<AppRoleId>"
    

Langkah 7: Uji koneksi ke penyewa target

Ikon untuk penyewa sumber.
Penyewa sumber

  1. Di penyewa sumber, gunakan perintah Invoke-MgGraphRequest untuk menguji koneksi ke penyewa target dan memvalidasi kredensial.

    $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
    

Langkah 8: Membuat pekerjaan provisi di penyewa sumber

Ikon untuk penyewa sumber.
Penyewa sumber

Di penyewa sumber, untuk mengaktifkan provisi, buat pekerjaan provisi.

  1. Tentukan templat sinkronisasi yang akan digunakan, seperti Azure2Azure.

    Templat memiliki pengaturan sinkronisasi yang telah dikonfigurasi sebelumnya.

  2. Di penyewa sumber, gunakan perintah New-MgServicePrincipalSynchronizationJob untuk membuat pekerjaan provisi berdasarkan templat.

    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]}
    
  3. Menginisialisasi variabel untuk ID pekerjaan.

    $JobId = "<JobId>"
    

Langkah 9: Simpan kredensial Anda

Ikon untuk penyewa sumber.
Penyewa sumber

  1. Di penyewa sumber, gunakan perintah Invoke-MgGraphRequest untuk menyimpan kredensial Anda.

    $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
    

Langkah 10: Menetapkan pengguna ke konfigurasi

Ikon untuk penyewa sumber.
Penyewa sumber

Agar sinkronisasi lintas penyewa berfungsi, setidaknya satu pengguna internal harus ditetapkan ke konfigurasi.

  1. Di penyewa sumber, gunakan perintah New-MgServicePrincipalAppRoleAssignedTo untuk menetapkan pengguna internal ke konfigurasi.

    $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]}
    

Langkah 11: Uji provisi sesuai permintaan

Ikon untuk penyewa sumber.
Penyewa sumber

Setelah memiliki konfigurasi, Anda dapat menguji provisi sesuai permintaan dengan salah satu pengguna Anda.

  1. Di penyewa sumber, gunakan perintah Get-MgServicePrincipalSynchronizationJobSchema untuk mendapatkan ID aturan skema.

    $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 : {}
    
  2. Menginisialisasi variabel untuk ID aturan.

    $RuleId = "<RuleId>"
    
  3. Gunakan perintah New-MgServicePrincipalSynchronizationJobOnDemand untuk memprovisikan pengguna uji sesuai permintaan.

    $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]}
    

Langkah 12: Mulai pekerjaan provisi

Ikon untuk penyewa sumber.
Penyewa sumber

  1. Sekarang setelah pekerjaan provisi dikonfigurasi, di penyewa sumber, gunakan perintah Start-MgServicePrincipalSynchronizationJob untuk memulai pekerjaan provisi.

    Start-MgServicePrincipalSynchronizationJob -ServicePrincipalId $ServicePrincipalId -SynchronizationJobId $JobId
    

Langkah 13: Memantau provisi

Ikon untuk penyewa sumber.
Penyewa sumber

  1. Sekarang setelah pekerjaan provisi berjalan, di penyewa sumber, gunakan perintah Get-MgServicePrincipalSynchronizationJob untuk memantau kemajuan siklus provisi saat ini serta statistik hingga saat ini seperti jumlah pengguna dan grup yang telah dibuat dalam sistem target.

    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]}
    
  2. Selain memantau status pekerjaan provisi, gunakan perintah Get-MgAuditLogProvisioning untuk mengambil log provisi dan mendapatkan semua peristiwa provisi yang terjadi. Misalnya, kueri untuk pengguna tertentu dan menentukan apakah pengguna berhasil disediakan.

    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 : {}
    

Tips Pemecahan Masalah

Gejala - Kesalahan hak istimewa tidak memadai

Saat mencoba melakukan tindakan, Anda menerima pesan kesalahan yang mirip dengan yang berikut ini:

code: Authorization_RequestDenied
message: Insufficient privileges to complete the operation.

Penyebab

Pengguna yang masuk tidak memiliki hak istimewa yang memadai, atau Anda perlu menyetujui salah satu izin yang diperlukan.

Solusi

  1. Pastikan Anda diberi peran yang diperlukan. Lihat Prasyarat sebelumnya di artikel ini.

  2. Saat Anda masuk dengan Connect-MgGraph, pastikan Anda menentukan cakupan yang diperlukan. Lihat Langkah 1: Masuk ke penyewa target dan Langkah 4: Masuk ke penyewa sumber sebelumnya di artikel ini.

Gejala - Kesalahan MgPolicyCrossTenantAccessPolicyPartner_Create baru

Saat mencoba membuat konfigurasi mitra baru, Anda menerima pesan kesalahan yang mirip dengan yang berikut ini:

New-MgPolicyCrossTenantAccessPolicyPartner_Create: Another object with the same value for property tenantId already exists.

Penyebab

Anda mungkin mencoba membuat konfigurasi atau objek yang sudah ada, mungkin dari konfigurasi sebelumnya.

Solusi

  1. Verifikasi sintaks anda dan bahwa Anda menggunakan ID penyewa yang benar.

  2. Gunakan perintah Get-MgPolicyCrossTenantAccessPolicyPartner untuk mencantumkan objek yang ada.

  3. Jika Anda memiliki objek yang sudah ada, Anda mungkin perlu membuat pembaruan menggunakan Update-MgPolicyCrossTenantAccessPolicyPartner

Gejala - kesalahan Request_MultipleObjectsWithSameKeyValue

Saat Anda mencoba mengaktifkan sinkronisasi pengguna, Anda menerima pesan kesalahan yang mirip dengan yang berikut ini:

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.", ... }}}

Penyebab

Anda kemungkinan mencoba membuat kebijakan yang sudah ada, mungkin dari konfigurasi sebelumnya.

Solusi

  1. Verifikasi sintaks anda dan bahwa Anda menggunakan ID penyewa yang benar.

  2. Gunakan perintah Get-MgPolicyCrossTenantAccessPolicyPartnerIdentitySynchronization untuk mencantumkan IsSyncAllowed pengaturan.

    (Get-MgPolicyCrossTenantAccessPolicyPartnerIdentitySynchronization -CrossTenantAccessPolicyConfigurationPartnerTenantId $SourceTenantId).UserSyncInbound
    
  3. Jika Anda memiliki kebijakan yang sudah ada, Anda mungkin perlu membuat pembaruan menggunakan perintah Set-MgPolicyCrossTenantAccessPolicyPartnerIdentitySynchronization untuk mengaktifkan sinkronisasi pengguna.

    $Params = @{
        userSyncInbound = @{
            isSyncAllowed = $true
        }
    }
    Set-MgPolicyCrossTenantAccessPolicyPartnerIdentitySynchronization -CrossTenantAccessPolicyConfigurationPartnerTenantId $SourceTenantId -BodyParameter $Params
    

Langkah berikutnya