Felhőszinkronizálás programozott konfigurálása az MS Graph API használatával
Az alábbi dokumentum bemutatja, hogyan replikálhat teljesen új szinkronizálási profilokat csak MSGraph API-k használatával.
A szinkronizálási profilok replikálásának struktúrája a következő lépésekből áll. Ezek a következők:
- Felhőszinkronizálás programozott konfigurálása az MS Graph API használatával
- Alapszintű beállítás
- Egyszerű szolgáltatások létrehozása
- Szinkronizálási feladat létrehozása
- Célzott tartomány frissítése
- Jelszókivonatok szinkronizálásának engedélyezése a konfigurációs panelen
- Hibrid Exchange-visszaírás
- Véletlen törlések
- Szinkronizálási feladat indítása
- Állapot áttekintése
- Következő lépések
Ezekkel a Microsoft Graph PowerShell-parancsokkal engedélyezheti az éles bérlők szinkronizálását, ami előfeltétele annak, hogy meghívható legyen az adott bérlő Rendszergazda istration webszolgáltatása.
Alapszintű beállítás
Bérlőjelzők engedélyezése
Connect-MgGraph -Scopes "DeviceManagementConfiguration.ReadWrite.All" ('-Environment <AzureEnvironment>')
$organizationId = (Get-MgOrganization).Id
$params = @{
onPremisesSyncEnabled = $true
}
Update-MgBetaOrganization -OrganizationId $organizationId -BodyParameter $params
Ez a parancsmag lehetővé teszi a bérlők szinkronizálását. A Get-MgOrganization használatával kéri le a szervezet azonosítóját.
Egyszerű szolgáltatások létrehozása
Ezután létre kell hoznunk az AD2AAD-alkalmazást/ szolgáltatásnevet
Ezt az alkalmazásazonosítót kell használnia: 1a4721b3-e57f-4451-ae87-ef078703ec94. A displayName az AD-tartomány URL-címe, ha a portálon használják (például contoso.com), de lehet, hogy más nevet ad neki.
POST https://graph.microsoft.com/beta/applicationTemplates/1a4721b3-e57f-4451-ae87-ef078703ec94/instantiate
Content-type: application/json
{
displayName: [your app name here]
}
Szinkronizálási feladat létrehozása
Az előző parancs kimenete a létrehozott szolgáltatásnév objectId azonosítóját adja vissza. Ebben a példában az objectId aaaaa-0000-1111-2222-bbbbbbbbbb. A Microsoft Graph használatával hozzáadhat egy szinkronizálási feladatot az adott szolgáltatásnévhez.
A szinkronizálási feladat létrehozásának dokumentációja itt található.
Ha nem rögzítette az azonosítót, az alábbi MS Graph-hívás futtatásával megtalálhatja a szolgáltatásnevet. A hívás indításához a Directory.Read.All engedélyre van szüksége:
GET https://graph.microsoft.com/beta/servicePrincipals
Ezután keresse meg az alkalmazás nevét a kimenetben.
Futtassa a következő két parancsot két feladat létrehozásához: egyet a felhasználó/csoport kiépítéséhez, egyet pedig a jelszókivonat-szinkronizáláshoz. Ez ugyanaz a kérés kétszer, de különböző sablonazonosítókkal.
Hívja meg a következő két kérést:
POST https://graph.microsoft.com/beta/servicePrincipals/[SERVICE_PRINCIPAL_ID]/synchronization/jobs
Content-type: application/json
{
"templateId":"AD2AADProvisioning"
}
POST https://graph.microsoft.com/beta/servicePrincipals/[SERVICE_PRINCIPAL_ID]/synchronization/jobs
Content-type: application/json
{
"templateId":"AD2AADPasswordHash"
}
Ha mindkettőt létre szeretné hozni, két hívásra van szüksége.
Példa visszatérési értékre (kiépítéshez):
HTTP 201/Created
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#servicePrincipals('aaaaaaaa-0000-1111-2222-bbbbbbbbbbbbc')/synchronization/jobs/$entity",
"id": "AD2AADProvisioning.fc96887f36da47508c935c28a0c0b6da",
"templateId": "ADDCInPassthrough",
"schedule": {
"expiration": null,
"interval": "PT40M",
"state": "Disabled"
},
"status": {
"countSuccessiveCompleteFailures": 0,
"escrowsPruned": false,
"code": "Paused",
"lastExecution": null,
"lastSuccessfulExecution": null,
"lastSuccessfulExecutionWithExports": null,
"quarantine": null,
"steadyStateFirstAchievedTime": "0001-01-01T00:00:00Z",
"steadyStateLastAchievedTime": "0001-01-01T00:00:00Z",
"troubleshootingUrl": null,
"progress": [],
"synchronizedEntryCountByType": []
}
}
Célzott tartomány frissítése
Ebben a bérlőben a szolgáltatásnév objektumazonosítója és alkalmazásazonosítója a következő:
ObjectId: bbbbbbbb-1111-2222-3333-cccccccccccc
AppId: 00001111-aaaa-2222-bbbb-3333cccc4444
DisplayName: testApp
Frissíteni kell azt a tartományt, amelyet ez a konfiguráció céloz meg, ezért frissítse a tartomány titkos kulcsát.
Győződjön meg arról, hogy a használt tartománynév megegyezik a helyszíni tartományvezérlőhöz beállított URL-címekkel.
PUT – https://graph.microsoft.com/beta/servicePrincipals/[SERVICE_PRINCIPAL_ID]/synchronization/secrets
Adja hozzá az alábbi kulcs/érték párot az alábbi értéktömbbe a kívánt művelet alapján:
Engedélyezze mind a PHS, mind a szinkronizálási bérlőjelzőket { kulcs: "AppKey", érték: "{"appKeyScenario":"AD2AADPasswordHash"}" }
Csak szinkronizálási bérlőjelző engedélyezése (ne kapcsolja be a PHS-t) { kulcs: "AppKey", érték: "{"appKeyScenario":"AD2AADProvisioning"}" }
Request body –
{
"value": [
{
"key": "Domain",
"value": "{\"domain\":\"ad2aadTest.com\"}"
}
]
}
A várt válasz ... HTTP 204/Nincs tartalom
Itt a kiemelt "Tartomány" érték annak a helyi Active Directory tartománynak a neve, amelyből a bejegyzéseket ki kell építeni a Microsoft Entra-azonosítóba.
Jelszókivonatok szinkronizálásának engedélyezése a konfigurációs panelen
Ez a szakasz a jelszókivonatok szinkronizálásának engedélyezését ismerteti egy adott konfigurációhoz. Ez a helyzet eltér a bérlői szintű funkciójelzőt engedélyező AppKey-titkos kódtól. Ez az eljárás csak egyetlen tartományra/konfigurációra vonatkozik. Az alkalmazáskulcsot a PHS-hez kell beállítania ahhoz, hogy ez az eljárás a végéig működjön.
Ragadja meg a sémát (figyelmeztetés, elég nagy):
GET –https://graph.microsoft.com/beta/servicePrincipals/[SERVICE_PRINCIPAL_ID]/synchronization/jobs/ [AD2AADProvisioningJobId]/schema
A CredentialData attribútumleképezésének végrehajtása:
{ "defaultValue": null, "exportMissingReferences": false, "flowBehavior": "FlowWhenChanged", "flowType": "Always", "matchingPriority": 0, "targetAttributeName": "CredentialData", "source": { "expression": "[PasswordHash]", "name": "PasswordHash", "type": "Attribute", "parameters": [] }
Keresse meg a következő objektumleképezéseket a sémában az alábbi névvel
- Active Directory-felhasználók kiépítése
- Active Directory inetOrgPersons kiépítése
Az objektumleképezések a schema.synchronizationRules[0].objectMappings fájlban találhatók (egyelőre feltételezheti, hogy csak egy szinkronizálási szabály létezik)
Végezze el a CredentialData-leképezést a (2) lépésben, és szúrja be az objektumleképezésekbe a (3) lépésben.
Az objektumleképezés a következőképpen néz ki:
{ "enabled": true, "flowTypes": "Add,Update,Delete", "name": "Provision Active Directory users", "sourceObjectName": "user", "targetObjectName": "User", "attributeMappings": [ ... }
Másolja/illessze be a leképezést az AD2AADProvisioning és az AD2AADPasswordHash feladatok lépésből az attributeMappings tömbbe.
A tömb elemeinek sorrendje nem számít (a háttérrendszer rendezi Az Ön számára). Ügyeljen arra, hogy ezt az attribútumleképezést vegye fel, ha a név már létezik a tömbben (például ha már szerepel egy elem az attribútumMappings attribútumban, amely rendelkezik a targetAttributeName CredentialData azonosítóval) – ütközési hibák léphetnek fel, vagy a már meglévő és az új leképezések egyesíthetők, általában nem a kívánt eredmény. A háttérrendszer nem dedukál önnek.
Ne felejtse el elvégezni ezt a műveletet mind a Felhasználók, mind az inetOrgpersons esetében.
Mentse a létrehozott sémát:
PUT – https://graph.microsoft.com/beta/servicePrincipals/[SERVICE_PRINCIPAL_ID]/synchronization/jobs/ [AD2AADProvisioningJobId]/schema
Adja hozzá a sémát a kérelem törzséhez.
Hibrid Exchange-visszaírás (nyilvános előzetes verzió)
Ez a szakasz bemutatja, hogyan engedélyezheti/tilthatja le és használhatja az Exchange hibrid visszaírást programozott módon.
Az Exchange hibrid visszaírásának programozott engedélyezéséhez két lépésre van szükség.
- Séma ellenőrzése
- Az Exchange hibrid visszaírási feladatának létrehozása
Séma ellenőrzése
Az Exchange hibrid visszaírásának engedélyezése és használata előtt a felhőszinkronizálásnak meg kell határoznia, hogy a helyi Active Directory kiterjesztették-e az Exchange-sémára.
A directoryDefinition:discover használatával kezdeményezheti a sémafelderítést.
POST https://graph.microsoft.com/beta/servicePrincipals/[SERVICE_PRINCIPAL_ID]/synchronization/jobs/[AD2AADProvisioningJobId]/schema/directories/[ADDirectoryID]/discover
A várt válasz ... HTTP 200/OK
A válasznak a következő kimenethez hasonlóan kell kinéznie:
HTTP/1.1 200 OK
Content-type: application/json
{
"objects": [
{
"name": "user",
"attributes": [
{
"name": "mailNickName",
"type": "String"
},
...
]
},
...
]
}
Most ellenőrizze, hogy a mailNickName attribútum jelen van-e. Ha igen, akkor a séma ellenőrzött, és tartalmazza az Exchange-attribútumokat. Ha nem, tekintse át az Exchange hibrid visszaírásának előfeltételeit .
Az Exchange hibrid visszaírási feladatának létrehozása
Miután ellenőrizte a sémát, létrehozhatja a feladatot.
POST https://graph.microsoft.com/beta/servicePrincipals/[SERVICE_PRINCIPAL_ID]/synchronization/jobs
Content-type: application/json
{
"templateId":"AAD2ADExchangeHybridWriteback"
}
Véletlen törlések
Ez a szakasz bemutatja, hogyan lehet programozott módon engedélyezni/letiltani és programozott módon használni a véletlen törléseket .
A küszöbérték engedélyezése és beállítása
Feladatonként két beállítás használható, ezek a következők:
- DeleteThresholdEnabled – Engedélyezi a feladat véletlen törlésének megelőzését, ha igaz értékre van állítva. Alapértelmezés szerint "true" (igaz) értékre van állítva.
- DeleteThresholdValue – Meghatározza a feladat minden egyes végrehajtásában engedélyezett törlések maximális számát, ha engedélyezve van a véletlen törlés megakadályozása. Az érték alapértelmezés szerint 500. Ha tehát az érték 500, akkor az engedélyezett törlések maximális száma 499 minden végrehajtásban.
A törlési küszöbérték-beállítások a SyncNotificationSettings
diagram részét képezik, és módosíthatók.
Frissíteni kell a SyncNotification szolgáltatást Gépház ez a konfiguráció célzott, ezért frissítse a titkos kulcsokat.
PUT – https://graph.microsoft.com/beta/servicePrincipals/[SERVICE_PRINCIPAL_ID]/synchronization/secrets
Adja hozzá az alábbi kulcs/érték párot az alábbi értéktömbhöz a kívánt művelet alapján:
Request body -
{
"value":[
{
"key":"SyncNotificationSettings",
"value": "{\"Enabled\":true,\"Recipients\":\"foobar@xyz.com\",\"DeleteThresholdEnabled\":true,\"DeleteThresholdValue\":50}"
}
]
}
A példában az "Engedélyezve" beállítás az értesítési e-mailek engedélyezése/letiltása a feladat karanténba helyezésekor.
Jelenleg nem támogatjuk a titkos kódokra vonatkozó PATCH-kéréseket, ezért a put kérelem törzsében (a példához hasonlóan) minden értéket hozzá kell adnia a többi érték megőrzéséhez.
Az összes titkos kód meglévő értékei a következő használatával kérhetők le:
GET https://graph.microsoft.com/beta/servicePrincipals/{id}/synchronization/secrets
Törlés engedélyezése
Ahhoz, hogy ezek a törlések a feladat karanténba kerülése után is áthaladhassanak, csak a "ForceDeletes" hatókörrel kell újraindítania.
Request:
POST https://graph.microsoft.com/beta/servicePrincipals/{id}/synchronization/jobs/{jobId}/restart
Request Body:
{
"criteria": {"resetScope": "ForceDeletes"}
}
Szinkronizálási feladat indítása
A feladatok ismét lekérhetők a következő paranccsal:
GET https://graph.microsoft.com/beta/servicePrincipals/[SERVICE_PRINCIPAL_ID]/synchronization/jobs/
A feladatok beolvasásának dokumentációja itt található.
A feladatok elindításához adja ki ezt a kérést az első lépésben létrehozott szolgáltatásnév objectId azonosítójával, valamint a feladatot létrehozó kérésből visszaadott feladatazonosítókkal.
A feladatok indításának dokumentációja itt található.
POST https://graph.microsoft.com/beta/servicePrincipals/8895955e-2e6c-4d79-8943-4d72ca36878f/synchronization/jobs/AD2AADProvisioning.fc96887f36da47508c935c28a0c0b6da/start
A várt válasz ... HTTP 204/Nincs tartalom.
A feladat vezérlésére szolgáló egyéb parancsokat itt dokumentáljuk.
Feladat újraindításához használja a következőt:
POST https://graph.microsoft.com/beta/servicePrincipals/8895955e-2e6c-4d79-8943-4d72ca36878f/synchronization/jobs/AD2AADProvisioning.fc96887f36da47508c935c28a0c0b6da/restart
{
"criteria": {
"resetScope": "Full"
}
}
Állapot áttekintése
A feladat állapotának lekérése az alábbiakon keresztül:
GET https://graph.microsoft.com/beta/servicePrincipals/[SERVICE_PRINCIPAL_ID]/synchronization/jobs/
A releváns részletekért tekintse meg a visszatérési objektum "állapot" szakaszát