Kiépítés konfigurálása Microsoft Graph API-k használatával
A Microsoft Entra felügyeleti központ kényelmesen konfigurálja az egyes alkalmazások üzembe helyezését egyenként. Ha azonban több vagy akár több száz példányt hoz létre egy alkalmazásból, vagy az alkalmazáskonfigurációt egyik környezetből a másikba migrálja, egyszerűbben automatizálhatja az alkalmazások létrehozását és konfigurálását a Microsoft Graph API-kkal. Ez a cikk azt ismerteti, hogyan automatizálhatja a kiépítési konfigurációt API-k segítségével. Ezt a módszert gyakran használják olyan alkalmazásokhoz, mint az Amazon Web Services.
Ez a cikk a Microsoft Graph bétavégponton és a Microsoft Graph Explorerben található API-kkal szemlélteti a folyamatot; hasonló API-k a Microsoft Graph 1.0-s végpontjában is elérhetők. A Kiépítés a Graph 1.0-val és a PowerShell-lel való konfigurálásáról a Bérlők közötti szinkronizálás konfigurálása a PowerShell vagy a Microsoft Graph API használatával című 6–13. lépésben talál példát.
A Microsoft Graph API-k üzembe helyezési konfiguráció automatizálásának lépéseinek áttekintése
Lépés | Részletek |
---|---|
1. lépés Katalógusalkalmazás létrehozása | Bejelentkezés az API-ügyfélbe A katalógusalkalmazás sablonjának lekérése Katalógusalkalmazás létrehozása |
2. lépés Kiépítési feladat létrehozása sablon alapján | A kiépítési összekötő sablonjának lekérése A kiépítési feladat létrehozása |
3. lépés Hozzáférés engedélyezése | Az alkalmazáshoz való kapcsolat tesztelése A hitelesítő adatok mentése |
4. lépés: Kiépítési feladat indítása | A feladat indítása |
5. lépés Kiépítés figyelése | A kiépítési feladat állapotának ellenőrzése A kiépítési naplók lekérése |
Ha helyszíni alkalmazásra épít ki, akkor telepítenie és konfigurálnia kell a kiépítési ügynököt, és hozzá kell rendelnie a kiépítési ügynököt az alkalmazáshoz.
1. lépés: A katalógusalkalmazás létrehozása
Jelentkezzen be a Microsoft Graph Explorerbe (ajánlott), a Postmanbe vagy bármely más, ön által használt API-ügyfélbe
- Indítsa el a Microsoft Graph Explorert.
- Válassza a "Bejelentkezés a Microsofttal" gombot, és jelentkezzen be a Microsoft Entra Global Rendszergazda istrator vagy app Rendszergazda hitelesítő adataival.
- A sikeres bejelentkezés után a felhasználói fiók adatait a bal oldali panelen láthatja.
A katalógusalkalmazás-sablon azonosítójának lekérése
A Microsoft Entra alkalmazáskatalógusában található alkalmazások mindegyike rendelkezik egy alkalmazássablonnal , amely leírja az alkalmazás metaadatait. Ezzel a sablonnal létrehozhatja az alkalmazás és a szolgáltatásnév egy példányát a bérlőben a felügyelethez. Kérje le az egyfiókos AWS-hozzáférés alkalmazássablonjának azonosítóját, és a válaszból rögzítse az oktatóanyag későbbi részében használni kívánt azonosítótulajdonság értékét.
Kérelem
GET https://graph.microsoft.com/beta/applicationTemplates?$filter=displayName eq 'AWS Single-Account Access'
Válasz
HTTP/1.1 200 OK
Content-type: application/json
{
"value": [
{
"id": "8b1025e4-1dd2-430b-a150-2ef79cd700f5",
"displayName": "AWS Single-Account Access",
"homePageUrl": "http://aws.amazon.com/",
"supportedSingleSignOnModes": [
"password",
"saml",
"external"
],
"supportedProvisioningTypes": [
"sync"
],
"logoUrl": "https://az495088.vo.msecnd.net/app-logo/aws_215.png",
"categories": [
"developerServices"
],
"publisher": "Amazon",
"description": "Federate to a single AWS account and use SAML claims to authorize access to AWS IAM roles. If you have many AWS accounts, consider using the AWS Single Sign-On gallery application instead."
}
Katalógusalkalmazás létrehozása
Használja az alkalmazáshoz az utolsó lépésben lekért sablonazonosítót az alkalmazás és a szolgáltatásnév egy példányának létrehozásához a bérlőben.
Kérelem
POST https://graph.microsoft.com/beta/applicationTemplates/{applicationTemplateId}/instantiate
Content-type: application/json
{
"displayName": "AWS Contoso"
}
Válasz
HTTP/1.1 201 OK
Content-type: application/json
{
"application": {
"objectId": "cbc071a6-0fa5-4859-8g55-e983ef63df63",
"appId": "92653dd4-aa3a-3323-80cf-e8cfefcc8d5d",
"applicationTemplateId": "8b1025e4-1dd2-430b-a150-2ef79cd700f5",
"displayName": "AWS Contoso",
"homepage": "https://signin.aws.amazon.com/saml?metadata=aws|ISV9.1|primary|z",
"replyUrls": [
"https://signin.aws.amazon.com/saml"
],
"logoutUrl": null,
"samlMetadataUrl": null,
},
"servicePrincipal": {
"objectId": "f47a6776-bca7-4f2e-bc6c-eec59d058e3e",
"appDisplayName": "AWS Contoso",
"applicationTemplateId": "8b1025e4-1dd2-430b-a150-2ef79cd700f5",
"appRoleAssignmentRequired": true,
"displayName": "My custom name",
"homepage": "https://signin.aws.amazon.com/saml?metadata=aws|ISV9.1|primary|z",
"replyUrls": [
"https://signin.aws.amazon.com/saml"
],
"servicePrincipalNames": [
"93653dd4-aa3a-4323-80cf-e8cfefcc8d7d"
],
"tags": [
"WindowsAzureActiveDirectoryIntegratedApp"
],
}
}
2. lépés: A kiépítési feladat létrehozása a sablon alapján
A kiépítési összekötő sablonjának lekérése
A katalógusban az üzembe helyezéshez engedélyezett alkalmazások sablonokkal rendelkeznek a konfiguráció gördülékenyebbé tételéhez. A kiépítési konfiguráció sablonjának lekéréséhez használja az alábbi kérést. Vegye figyelembe, hogy meg kell adnia az azonosítót. Az azonosító az előző lépésben létrehozott servicePrincipal erőforrás azonosítója.
Kérelem
GET https://graph.microsoft.com/beta/servicePrincipals/{id}/synchronization/templates
Válasz
HTTP/1.1 200 OK
{
"value": [
{
"id": "aws",
"factoryTag": "aws",
"schema": {
"directories": [],
"synchronizationRules": []
}
}
]
}
A kiépítési feladat létrehozása
A kiépítés engedélyezéséhez először létre kell hoznia egy feladatot. A következő kéréssel hozzon létre egy kiépítési feladatot. A feladathoz használni kívánt sablon megadásakor használja az előző lépés sablonazonosítóját.
Kérelem
POST https://graph.microsoft.com/beta/servicePrincipals/{id}/synchronization/jobs
Content-type: application/json
{
"templateId": "aws"
}
Válasz
HTTP/1.1 201 OK
Content-type: application/json
{
"id": "{jobId}",
"templateId": "aws",
"schedule": {
"expiration": null,
"interval": "P10675199DT2H48M5.4775807S",
"state": "Disabled"
},
"status": {
"countSuccessiveCompleteFailures": 0,
"escrowsPruned": false,
"synchronizedEntryCountByType": [],
"code": "NotConfigured",
"lastExecution": null,
"lastSuccessfulExecution": null,
"lastSuccessfulExecutionWithExports": null,
"steadyStateFirstAchievedTime": "0001-01-01T00:00:00Z",
"steadyStateLastAchievedTime": "0001-01-01T00:00:00Z",
"quarantine": null,
"troubleshootingUrl": null
}
}
3. lépés: Hozzáférés engedélyezése
Az alkalmazáshoz való kapcsolat tesztelése
Tesztelje a kapcsolatot a külső alkalmazással. Az alábbi példa egy olyan alkalmazásra mutat be, amely ügyféltitkot és titkos jogkivonatot igényel. Minden alkalmazásnak saját követelményei vannak. Az alkalmazások gyakran használnak alapcímet egy titkos ügyfélkód helyett. Az alkalmazás által igényelt hitelesítő adatok meghatározásához lépjen az alkalmazás kiépítési konfigurációs oldalára, és fejlesztői módban kattintson a tesztkapcsolatra. A hálózati forgalom megjeleníti a hitelesítő adatokhoz használt paramétereket. A hitelesítő adatok teljes listáját a szinkronizálási feladat: hitelesítő adatok ellenőrzése című témakörben találja. A legtöbb alkalmazás, például az Azure Databricks, a BaseAddressre és a SecretTokenre támaszkodik. A BaseAddress a Microsoft Entra Felügyeleti központ bérlői URL-címe.
Kérelem
POST https://graph.microsoft.com/beta/servicePrincipals/{id}/synchronization/jobs/{jobId}/validateCredentials
{
"credentials": [
{
"key": "ClientSecret", "value": "xxxxxxxxxxxxxxxxxxxxx"
},
{
"key": "SecretToken", "value": "xxxxxxxxxxxxxxxxxxxxx"
}
]
}
Válasz
HTTP/1.1 204 No Content
Hitelesítő adatok mentése
A kiépítés konfigurálásához létre kell hoznunk egy megbízhatósági kapcsolatot a Microsoft Entra-azonosító és az alkalmazás között, amely lehetővé teszi a Microsoft Entra számára, hogy meghívhassa a külső alkalmazást. Az alábbi példa egy olyan alkalmazásra vonatkozik, amely ügyféltitkot és titkos jogkivonatot igényel. Minden alkalmazásnak saját követelményei vannak. Tekintse át az API dokumentációját az elérhető lehetőségek megtekintéséhez.
Kérelem
PUT https://graph.microsoft.com/beta/servicePrincipals/{id}/synchronization/secrets
{
"value": [
{
"key": "ClientSecret", "value": "xxxxxxxxxxxxxxxxxxxxx"
},
{
"key": "SecretToken", "value": "xxxxxxxxxxxxxxxxxxxxx"
}
]
}
Válasz
HTTP/1.1 204 No Content
4. lépés: A kiépítési feladat indítása
Most, hogy a kiépítési feladat konfigurálva lett, az alábbi paranccsal indítsa el a feladatot.
Kérelem
POST https://graph.microsoft.com/beta/servicePrincipals/{id}/synchronization/jobs/{jobId}/start
Válasz
HTTP/1.1 204 No Content
5. lépés: Kiépítés monitorozása
A kiépítési feladat állapotának figyelése
Most, hogy a kiépítési feladat fut, az alábbi paranccsal követheti nyomon a folyamatot. A válaszban szereplő összes szinkronizálási feladat tartalmazza az aktuális kiépítési ciklus állapotát , valamint az aktuális statisztikákat, például a célrendszerben létrehozott felhasználók és csoportok számát.
Kérelem
GET https://graph.microsoft.com/beta/servicePrincipals/{id}/synchronization/jobs
Válasz
HTTP/1.1 200 OK
Content-type: application/json
{ "value": [
{
"id": "{jobId}",
"templateId": "aws",
"schedule": {
"expiration": null,
"interval": "P10675199DT2H48M5.4775807S",
"state": "Disabled"
},
"status": {
"countSuccessiveCompleteFailures": 0,
"escrowsPruned": false,
"synchronizedEntryCountByType": [],
"code": "Paused",
"lastExecution": null,
"lastSuccessfulExecution": null,
"progress": [],
"lastSuccessfulExecutionWithExports": null,
"steadyStateFirstAchievedTime": "0001-01-01T00:00:00Z",
"steadyStateLastAchievedTime": "0001-01-01T00:00:00Z",
"quarantine": null,
"troubleshootingUrl": null
},
"synchronizationJobSettings": [
{
"name": "QuarantineTooManyDeletesThreshold",
"value": "500"
}
]
}
]
}
Kiépítési események monitorozása a kiépítési naplók használatával
A kiépítési feladat állapotának monitorozása mellett a kiépítési naplókkal lekérdezheti az összes eseményt. Például lekérdezhet egy adott felhasználót, és megállapíthatja, hogy sikeresen kiépítették-e őket.
Kérelem
GET https://graph.microsoft.com/beta/auditLogs/provisioning
Válasz
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#auditLogs/provisioning",
"value": [
{
"id": "gc532ff9-r265-ec76-861e-42e2970a8218",
"activityDateTime": "2019-06-24T20:53:08Z",
"tenantId": "7928d5b5-7442-4a97-ne2d-66f9j9972ecn",
"cycleId": "44576n58-v14b-70fj-8404-3d22tt46ed93",
"changeId": "eaad2f8b-e6e3-409b-83bd-e4e2e57177d5",
"action": "Create",
"durationInMilliseconds": 2785,
"sourceSystem": {
"id": "0404601d-a9c0-4ec7-bbcd-02660120d8c9",
"displayName": "Azure Active Directory",
"details": {}
},
"targetSystem": {
"id": "cd22f60b-5f2d-1adg-adb4-76ef31db996b",
"displayName": "AWS Contoso",
"details": {
"ApplicationId": "f2764360-e0ec-5676-711e-cd6fc0d4dd61",
"ServicePrincipalId": "chc46a42-966b-47d7-9774-576b1c8bd0b8",
"ServicePrincipalDisplayName": "AWS Contoso"
}
},
"initiatedBy": {
"id": "",
"displayName": "Azure AD Provisioning Service",
"initiatorType": "system"
}
]
}
]
}