Események továbbítása a Microsoft Entra által védett végpontokra

Ez a cikk azt ismerteti, hogyan védheti meg az eseménykézbesítést az Azure Event Gridből (esemény-előfizetésekből) a webhook végpontjaira a Microsoft Entra ID-hitelesítéssel. Megtudhatja, hogyan konfigurálhatja a Microsoft Entra-alkalmazásokat, és hogyan rendelheti hozzá a megfelelő szerepköröket az Event Grid és a webhookok közötti hitelesített kapcsolatok létrehozásához. A cikk az Azure Portalt használja a bemutatóhoz. A funkciót azonban parancssori felülettel, PowerShell-lel vagy SDK-kkal is engedélyezheti.

Fontos

A biztonsági rések kezelése érdekében a Microsoft 2021. március 30-án bevezette az esemény-előfizetések létrehozásának vagy frissítésének részeként egy extra hozzáférés-ellenőrzést. Az előfizető ügyfél szolgáltatási jogosultságának tulajdonosának kell lennie, vagy szerepkörrel kell rendelkeznie a célalkalmazás szolgáltatási jogosultságán. Konfigurálja újra a Microsoft Entra-alkalmazást a jelen cikkben szereplő új utasítások követésével. A Microsoft Entra-alkalmazások és szolgáltatásnevek áttekintését a Microsoft Identitásplatform (2.0-s verzió) áttekintésében tekintheti meg.

Forgatókönyvek

Ez a cikk részletesen ismerteti a következő két forgatókönyv implementálását:

Események továbbítása egy webhookba ugyanabban a Microsoft Entra-bérlőben

Az alábbi ábra azt mutatja be, hogy az Event Grid hogyan kézbesíti az eseményeket az esemény-előfizetéssel azonos bérlőben lévő webhooknak.

Az események biztonságos kézbesítését ábrázoló kép egy olyan webhookba, amely ugyanabban a bérlőben található.

Ez a szakasz két alszakaszból áll. Olvassa el mindkét forgatókönyvet, vagy az Önt érdeklő forgatókönyvet.

Az esemény-előfizetés konfigurálása Microsoft Entra-felhasználóval

Ez a szakasz bemutatja, hogyan konfigurálhatja az esemény-előfizetést Egy Microsoft Entra-felhasználó használatával.

  1. Hozzon létre egy Microsoft Entra-alkalmazást a webhook számára, amely úgy van konfigurálva, hogy működjön a Microsoft Entrával (egyetlen bérlő).

  2. Nyissa meg az Azure Shellt a bérlőben, és válassza ki a PowerShell-környezetet.

  3. Módosítsa a $webhookAadTenantId értékét a bérlőhöz való csatlakozáshoz.

    • Változók:
      • $webhookAadTenantId: Azure-bérlő azonosítója
    $webhookAadTenantId = "[REPLACE_WITH_YOUR_TENANT_ID]"
    Connect-MgGraph -TenantId $webhookAadTenantId -Scopes "Application.ReadWrite.All, AppRoleAssignment.ReadWrite.All"
    
  4. Nyissa meg a következő szkriptet, és frissítse a $webhookAppObjectId és $eventSubscriptionWriterUserPrincipalName értékeit az azonosítókkal, majd futtassa a szkriptet.

    • Változók:
      • $webhookAppObjectId: A webhookhoz létrehozott Microsoft Entra alkalmazásazonosító
      • $eventSubscriptionWriterUserPrincipalName: Az esemény-előfizetést létrehozó felhasználó Azure-beli egyszerű neve

    Feljegyzés

    Nem kell módosítania a $eventGridAppId értékét. Ebben a szkriptben az AzureEventGridSecureWebhookSubscriber be van állítva a $eventGridRoleName. Ne feledje, hogy a szkript végrehajtásához a Microsoft Entra alkalmazásadminisztrátori szerepkör tagjának kell lennie, vagy a Microsoft Entra ID-ban a webhook alkalmazás szolgáltatásnév tulajdonosának kell lennie.

    Ha a következő hibaüzenet jelenik meg, fel kell emelnie a szolgáltatásnévre. 2021. március 30-án az esemény-előfizetés létrehozása vagy frissítése részeként további hozzáférés-ellenőrzést vezetünk be egy biztonsági rés elhárításához. Az előfizető ügyfél szolgáltatási főfelhasználójának vagy tulajdonosként kell szerepelnie, vagy rendelkeznie kell egy szerepkörrel a célalkalmazás szolgáltatási főfelhasználójához.

    New-MgServicePrincipalAppRoleAssignment: Error occurred while executing NewServicePrincipalAppRoleAssignment
    Code: Authorization_RequestDenied
    Message: Insufficient privileges to complete the operation.
    
  5. A portálon esemény-előfizetés létrehozásakor kövesse az alábbi lépéseket:

    1. Válassza ki a végponttípust webhookként.

    2. Adja meg a végpont URI-címét.

      Képernyőkép a végponttípus webhook kiválasztásáról az Azure Portalon.

    3. Válassza a További funkciók lapot az Esemény-előfizetések létrehozása lap tetején.

    4. A További funkciók lapon hajtsa végre az alábbi lépéseket:

      1. Válassza a Microsoft Entra-hitelesítés használata lehetőséget, és konfigurálja a bérlőazonosítót és az alkalmazásazonosítót:

      2. Másolja ki a Microsoft Entra bérlőazonosítóját a szkript kimenetéből, és írja be a Microsoft Entra bérlőazonosító mezőjébe.

      3. Másolja ki a Microsoft Entra alkalmazásazonosítót a szkript kimenetéből, és írja be a Microsoft Entra alkalmazásazonosító mezőjébe. Az alkalmazásazonosító használata helyett használhatja a Microsoft Entra alkalmazásazonosító URI-t. Az alkalmazásazonosító URI-jával kapcsolatos további információkért tekintse meg ezt a cikket.

        Képernyőkép a biztonságos webhook-műveletkonfigurációról az Azure Portalon.

Az esemény-előfizetés konfigurálása Microsoft Entra-alkalmazással

Ez a szakasz bemutatja, hogyan konfigurálhatja az esemény-előfizetést Egy Microsoft Entra-alkalmazás használatával.

  1. Hozzon létre egy Microsoft Entra-alkalmazást az Event Grid-előfizetés-íróhoz, amely konfigurálva van a Microsoft Entra (egyetlen bérlő) használatára.

  2. Hozzon létre egy titkos kulcsot a Microsoft Entra alkalmazáshoz, és mentse az értéket (később szüksége lesz erre az értékre).

  3. Nyissa meg az Event Grid-témakör Hozzáférés-vezérlés (IAM) lapját, és rendelje hozzá az Event Grid-közreműködői szerepkört az Event Grid-előfizetés-író alkalmazáshoz. Ezzel a lépéssel hozzáférhet az Event Grid-erőforráshoz, amikor az Azure-ba bejelentkezett a Microsoft Entra alkalmazással az Azure CLI használatával.

  4. Hozzon létre egy Microsoft Entra-alkalmazást a webhook számára, amely úgy van konfigurálva, hogy működjön a Microsoft Entrával (egyetlen bérlő).

  5. Nyissa meg az Azure Shellt a bérlőben, és válassza ki a PowerShell-környezetet.

  6. Módosítsa a $webhookAadTenantId értékét a bérlőhöz való csatlakozáshoz.

    • Változók:
      • $webhookAadTenantId: Azure-bérlő azonosítója
    $webhookAadTenantId = "[REPLACE_WITH_YOUR_TENANT_ID]"
    Connect-MgGraph -TenantId $webhookAadTenantId -Scopes "Application.ReadWrite.All, AppRoleAssignment.ReadWrite.All"
    
  7. Nyissa meg a következő szkriptet, és frissítse a $webhookAppObjectId és $eventSubscriptionWriterAppId értékeit az azonosítókkal, majd futtassa a szkriptet.

    • Változók:
      • $webhookAppObjectId: A webhookhoz létrehozott Microsoft Entra alkalmazásazonosító
      • $eventSubscriptionWriterAppId: Microsoft Entra alkalmazásazonosító az Event Grid-előfizetés-író alkalmazáshoz.

    Feljegyzés

    Az értékét nem kell módosítania $eventGridAppId. Ebből a szkriptből az AzureEventGridSecureWebhookSubscriber van beállítva a $eventGridRoleName számára. Ne feledje, hogy a szkript végrehajtásához a Microsoft Entra alkalmazásadminisztrátori szerepkör tagjának kell lennie, vagy a Microsoft Entra ID-ban a webhook alkalmazás szolgáltatásnév tulajdonosának kell lennie.

  8. Jelentkezzen be az Event Grid előfizetési íróként a Microsoft Entra alkalmazásban a parancs futtatásával.

    az login --service-principal -u [REPLACE_WITH_EVENT_GRID_SUBSCRIPTION_WRITER_APP_ID] -p [REPLACE_WITH_EVENT_GRID_SUBSCRIPTION_WRITER_APP_SECRET_VALUE] --tenant [REPLACE_WITH_TENANT_ID]
    
  9. Hozza létre az előfizetést a parancs futtatásával.

    az eventgrid system-topic event-subscription create --name [REPLACE_WITH_SUBSCRIPTION_NAME] -g [REPLACE_WITH_RESOURCE_GROUP] --system-topic-name [REPLACE_WITH_SYSTEM_TOPIC] --endpoint [REPLACE_WITH_WEBHOOK_ENDPOINT] --event-delivery-schema [REPLACE_WITH_WEBHOOK_EVENT_SCHEMA] --azure-active-directory-tenant-id [REPLACE_WITH_TENANT_ID] --azure-active-directory-application-id-or-uri [REPLACE_WITH_APPLICATION_ID_FROM_SCRIPT] --endpoint-type webhook
    

    Feljegyzés

    Ez a forgatókönyv egy rendszertémakört használ. Ha egyéni témakörökhöz vagy tartományokhoz szeretne előfizetést létrehozni az Azure CLI használatával, tekintse meg a parancssori felületre vonatkozó hivatkozást.

  10. Ha mindent megfelelően konfigurált, létrehozhatja a webhook-előfizetést az Event Grid-témakörben.

    Feljegyzés

    Az Event Grid ekkor minden üzenetben átadja a Microsoft Entra tulajdonosi jogkivonatát a webhook-ügyfélnek. Ellenőriznie kell a hitelesítési tokent a webhookban levő.

Események továbbítása egy másik Microsoft Entra bérlő webhookjára.

Az esemény-előfizetés és a különböző Microsoft Entra-bérlőkben található webhook-végpont közötti kapcsolat biztonságossá tételéhez használja a Microsoft Entra ID alkalmazást az ebben a szakaszban látható módon. Jelenleg nem biztosíthatja ezt a kapcsolatot az Azure portálon egy Microsoft Entra ID felhasználó használatával.

Több-bérlős események képernyőképe a Microsoft Entra ID és a Webhooks diagrammal.

A diagram alapján kövesse a következő lépéseket mindkét bérlő konfigurálásához.

Bérlő A

Hajtsa végre a következő lépéseket az A bérlő A esetén:

  1. Hozzon létre egy Microsoft Entra-alkalmazást az Event Grid-előfizetés-író számára, amely úgy van konfigurálva, hogy bármely Microsoft Entra (több-bérlős) környezetben működjön.

  2. Hozzon létre egy titkos kulcsot a Microsoft Entra alkalmazáshoz, és mentse az értéket (később szüksége lesz erre az értékre).

  3. Nyissa meg az Event Grid-témakör Hozzáférés-vezérlés (IAM) lapját. Rendelje hozzá az Event Grid-közreműködői szerepkört az Event Grid-előfizetés-író Microsoft Entra-alkalmazásához. Ez a lépés hozzáférést biztosít az alkalmazásnak az Event Grid-erőforráshoz, amikor a Microsoft Entra alkalmazással és az Azure CLI-vel jelentkezik be az Azure-ba.

B. bérlő

A B bérlőben hajtsa végre a következő lépéseket:

  1. Hozzon létre egy Microsoft Entra-alkalmazást a Microsoft Entra (egyetlen bérlő) használatára konfigurált webhook számára.

  2. Nyissa meg az Azure Shellt, és válassza ki a PowerShell-környezetet.

  3. Módosítsa a $webhookAadTenantId értéket a B bérlőhöz való csatlakozáshoz.

    • Változók:

      • $webhookAadTenantId: Azure-bérlőazonosító a B bérlőhöz
      $webhookAadTenantId = "[REPLACE_WITH_YOUR_TENANT_ID]"
      Connect-MgGraph -TenantId $webhookAadTenantId -Scopes "Application.ReadWrite.All, AppRoleAssignment.ReadWrite.All"
      
  4. Nyissa meg a következő szkriptet, és frissítse a $webhookAppObjectId és $eventSubscriptionWriterAppId értékeit az azonosítókkal. Ezután folytassa a szkript futtatását.

    • Változók:
      • $webhookAppObjectId: A webhookhoz létrehozott Microsoft Entra alkalmazásazonosító

      • $eventSubscriptionWriterAppId: Microsoft Entra alkalmazásazonosító az Event Grid-előfizetés írója számára

        Feljegyzés

        Az értékét nem kell módosítania $eventGridAppId. Ebben a szkriptben az AzureEventGridSecureWebhookSubscriber a következőhöz $eventGridRoleNamevan beállítva: . Ne feledje, hogy a szkript végrehajtásához a Microsoft Entra alkalmazásadminisztrátori szerepkör tagjának kell lennie, vagy a Microsoft Entra ID-ban a webhook alkalmazás szolgáltatásnév tulajdonosának kell lennie.

    Ha a következő hibaüzenet jelenik meg, fel kell emelnie a szolgáltatásnévre. 2021. március 30-án az esemény-előfizetés létrehozása vagy frissítése részeként további hozzáférés-ellenőrzést vezetünk be egy biztonsági rés elhárításához. Az előfizető ügyfél szolgáltatási főfelhasználójának vagy tulajdonosként kell szerepelnie, vagy rendelkeznie kell egy szerepkörrel a célalkalmazás szolgáltatási főfelhasználójához.

    New-MgServicePrincipalAppRoleAssignment: Error occurred while executing NewServicePrincipalAppRoleAssignment
    Code: Authorization_RequestDenied
    Message: Insufficient privileges to complete the operation.
    

Bérlő A

A Tenant A környezetben hajtsa végre a következő lépéseket:

  1. Nyissa meg az Azure Shellt , és jelentkezzen be Event Grid-előfizetés-íróként a Microsoft Entra-alkalmazásként a parancs futtatásával.

    az login --service-principal -u [REPLACE_WITH_APP_ID] -p [REPLACE_WITH_SECRET_VALUE] --tenant [REPLACE_WITH_TENANT_ID]
    
  2. Hozza létre az előfizetést a parancs futtatásával.

    az eventgrid system-topic event-subscription create --name [REPLACE_WITH_SUBSCRIPTION_NAME] -g [REPLACE_WITH_RESOURCE_GROUP] --system-topic-name [REPLACE_WITH_SYSTEM_TOPIC] --endpoint [REPLACE_WITH_WEBHOOK_ENDPOINT] --event-delivery-schema [REPLACE_WITH_WEBHOOK_EVENT_SCHEMA] --azure-active-directory-tenant-id [REPLACE_WITH_TENANT_B_ID] --azure-active-directory-application-id-or-uri [REPLACE_WITH_APPLICATION_ID_FROM_SCRIPT] --endpoint-type webhook
    

    Feljegyzés

    Ebben a forgatókönyvben az „Event Grid System Topic”-ot használja. Ha egyéni témakörökhöz vagy Event Grid-tartományokhoz szeretne előfizetést létrehozni az Azure CLI használatával, tekintse meg itt.

  3. Ha mindent megfelelően konfigurált, létrehozhatja a webhook-előfizetést az Event Grid-témakörben.

    Feljegyzés

    Ezen a ponton az Event Grid minden üzenetben átadja a Microsoft Entra Bearer tokent a webhook-ügyfélnek. Az engedélyezési tokent ellenőriznie kell a webhookban.