Share via


Gebeurtenissen leveren aan met Microsoft Entra beveiligde eindpunten

In dit artikel wordt beschreven hoe u Microsoft Entra ID gebruikt om de verbinding tussen uw gebeurtenisabonnement en uw webhookeindpunt te beveiligen. Azure Portal wordt gebruikt voor demonstratie, maar de functie kan ook worden ingeschakeld met behulp van CLI, PowerShell of de SDK's.

Belangrijk

Op 30 maart 2021 is aanvullende toegangscontrole geïntroduceerd als onderdeel van het maken of bijwerken van een gebeurtenisabonnement om een beveiligingsprobleem op te lossen. De service-principal van de abonneeclient moet een eigenaar zijn of een rol hebben die is toegewezen aan de service-principal van de doeltoepassing. Configureer uw Microsoft Entra-toepassing opnieuw volgens de nieuwe instructies hieronder. Zie het overzicht van Microsoft Entra-toepassingen en service-principals voor een overzicht van Microsoft Identity Platform (v2.0).

Scenario's

In dit artikel wordt uitgelegd hoe u de volgende twee scenario's in detail implementeert:

Gebeurtenissen leveren aan een webhook in dezelfde Microsoft Entra-tenant

In het volgende diagram ziet u hoe Event Grid-gebeurtenissen worden geleverd aan een webhook in dezelfde tenant als het gebeurtenisabonnement.

Afbeelding van veilige levering van gebeurtenissen aan een webhook die zich in dezelfde tenant bevindt.

Deze sectie bevat twee subsecties. Lees zowel de scenario's als de scenario's waarin u geïnteresseerd bent.

Het gebeurtenisabonnement configureren met behulp van een Microsoft Entra-gebruiker

In deze sectie wordt beschreven hoe u het gebeurtenisabonnement configureert met behulp van een Microsoft Entra-gebruiker.

  1. Maak een Microsoft Entra-toepassing voor de webhook die is geconfigureerd voor gebruik met Microsoft Entra (één tenant).

  2. Open de Azure Shell in de tenant en selecteer de PowerShell-omgeving.

  3. Wijzig de waarde van $webhookAadTenantId om verbinding te maken met de tenant.

    • Variabelen:
      • $webhookAadTenantId: Azure-tenant-id
    $webhookAadTenantId = "[REPLACE_WITH_YOUR_TENANT_ID]"
    Connect-MgGraph -TenantId $webhookAadTenantId -Scopes "Application.ReadWrite.All, AppRoleAssignment.ReadWrite.All"
    
  4. Open het volgende script en werk de waarden van $webhookAppObjectId en $eventSubscriptionWriterUserPrincipalName bij met uw id's en ga vervolgens door met het uitvoeren van het script.

    • Variabelen:
      • $webhookAppObjectId: Microsoft Entra-toepassings-id gemaakt voor de webhook
      • $eventSubscriptionWriterUserPrincipalName: Azure User Principal Name van de gebruiker die een gebeurtenisabonnement maakt

    Notitie

    U hoeft de waarde van $eventGridAppId niet te wijzigen. In dit script is AzureEventGridSecureWebhookSubscriber ingesteld voor de $eventGridRoleName. Houd er rekening mee dat u lid moet zijn van de rol Microsoft Entra-toepassingsbeheerder of eigenaar bent van de service-principal van de webhook-app in Microsoft Entra-id om dit script uit te voeren.

    Als u het volgende foutbericht ziet, moet u de service-principal uitbreiden. Er is op 30 maart 2021 een extra toegangscontrole geïntroduceerd als onderdeel van het maken of bijwerken van een gebeurtenisabonnement om een beveiligingsprobleem op te lossen. De service-principal van de abonneeclient moet een eigenaar zijn of een rol hebben die is toegewezen aan de service-principal van de doeltoepassing.

    New-MgServicePrincipalAppRoleAssignment: Error occurred while executing NewServicePrincipalAppRoleAssignment
    Code: Authorization_RequestDenied
    Message: Insufficient privileges to complete the operation.
    
  5. Voer bij het maken van een gebeurtenisabonnement in de portal de volgende stappen uit:

    1. Selecteer het eindpunttype als Webhook.

    2. Geef de eindpunt-URI op.

      Webhook eindpunttype selecteren

    3. Selecteer het tabblad Aanvullende functies boven aan de pagina Gebeurtenisabonnementen maken.

    4. Voer de volgende stappen uit op het tabblad Aanvullende functies :

      1. Selecteer Microsoft Entra-verificatie gebruiken en configureer de tenant-id en toepassings-id:

      2. Kopieer de Tenant-id van Microsoft Entra uit de uitvoer van het script en voer deze in het veld Tenant-id van Microsoft Entra in.

      3. Kopieer de Microsoft Entra-toepassings-id uit de uitvoer van het script en voer deze in het veld Microsoft Entra-toepassings-id in. U kunt de URI voor de Microsoft Entra-toepassings-id gebruiken in plaats van de toepassings-id. Zie dit artikel voor meer informatie over de URI voor toepassings-id's.

        Webhook-actie beveiligen

Het gebeurtenisabonnement configureren met behulp van een Microsoft Entra-toepassing

In deze sectie wordt beschreven hoe u het gebeurtenisabonnement configureert met behulp van een Microsoft Entra-toepassing.

  1. Maak een Microsoft Entra-toepassing voor de Schrijver van het Event Grid-abonnement die is geconfigureerd voor gebruik met Microsoft Entra (één tenant).

  2. Maak een geheim voor de Microsoft Entra-toepassing en sla de waarde op (u hebt deze waarde later nodig).

  3. Ga naar de pagina Toegangsbeheer (IAM) voor het Event Grid-onderwerp en wijs de rol Event Grid-inzender toe aan de schrijver-app van het Event Grid-abonnement. Met deze stap hebt u toegang tot de Event Grid-resource wanneer u bent aangemeld bij Azure met de Microsoft Entra-toepassing met behulp van Azure CLI.

  4. Maak een Microsoft Entra-toepassing voor de webhook die is geconfigureerd voor gebruik met Microsoft Entra (één tenant).

  5. Open de Azure Shell in de tenant en selecteer de PowerShell-omgeving.

  6. Wijzig de waarde van $webhookAadTenantId om verbinding te maken met de tenant.

    • Variabelen:
      • $webhookAadTenantId: Azure-tenant-id
    $webhookAadTenantId = "[REPLACE_WITH_YOUR_TENANT_ID]"
    Connect-MgGraph -TenantId $webhookAadTenantId -Scopes "Application.ReadWrite.All, AppRoleAssignment.ReadWrite.All"
    
  7. Open het volgende script en werk de waarden van $webhookAppObjectId en $eventSubscriptionWriterAppId bij met uw id's en ga vervolgens door met het uitvoeren van het script.

    • Variabelen:
      • $webhookAppObjectId: Microsoft Entra-toepassings-id gemaakt voor de webhook
      • $eventSubscriptionWriterAppId: Microsoft Entra-toepassings-id voor de schrijver-app van het Event Grid-abonnement.

    Notitie

    U hoeft de waarde van $eventGridAppId. In dit script is AzureEventGridSecureWebhookSubscriber ingesteld voor de $eventGridRoleName. Houd er rekening mee dat u lid moet zijn van de rol Microsoft Entra-toepassingsbeheerder of eigenaar bent van de service-principal van de webhook-app in Microsoft Entra-id om dit script uit te voeren.

  8. Meld u aan als de Event Grid-abonnementsschrijver Microsoft Entra Application door de opdracht uit te voeren.

    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. Maak uw abonnement door de opdracht uit te voeren.

    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
    

    Notitie

    In dit scenario wordt een systeemonderwerp gebruikt. Als u een abonnement wilt maken voor aangepaste onderwerpen of domeinen met behulp van Azure CLI, raadpleegt u de CLI-verwijzing.

  10. Als alles correct is geconfigureerd, kunt u het webhookabonnement maken in uw Event Grid-onderwerp.

    Notitie

    Op dit moment geeft Event Grid in elk bericht het Microsoft Entra Bearer-token door aan de webhookclient. U moet het autorisatietoken in uw webhook valideren.

Gebeurtenissen leveren aan een webhook in een andere Microsoft Entra-tenant

Als u de verbinding tussen uw gebeurtenisabonnement en uw webhookeindpunt in verschillende Microsoft Entra-tenants wilt beveiligen, moet u een Microsoft Entra ID-toepassing gebruiken, zoals wordt weergegeven in deze sectie. Momenteel is het niet mogelijk om deze verbinding te beveiligen met behulp van een Microsoft Entra ID-gebruiker in Azure Portal.

Gebeurtenissen met meerdere tenants met Microsoft Entra-id en Webhooks

Volg op basis van het diagram de volgende stappen om beide tenants te configureren.

Tenant A

Voer de volgende stappen uit in Tenant A:

  1. Maak een Microsoft Entra-toepassing voor de Schrijver van het Event Grid-abonnement die is geconfigureerd voor gebruik met elke Microsoft Entra (multitenant).

  2. Maak een geheim voor de Microsoft Entra-toepassing en sla de waarde op (u hebt deze waarde later nodig).

  3. Navigeer naar de pagina Toegangsbeheer (IAM) voor het Event Grid-onderwerp. Wijs de rol Event Grid-inzender toe aan de Microsoft Entra-toepassing van de Schrijver van het Event Grid-abonnement. Met deze stap kan de toepassing toegang hebben tot de Event Grid-resource wanneer u zich aanmeldt bij Azure met de Microsoft Entra-toepassing met behulp van Azure CLI.

Tenant B

Voer de volgende stappen uit in Tenant B:

  1. Maak een Microsoft Entra-toepassing voor de webhook die is geconfigureerd voor gebruik met Microsoft Entra (één tenant).

  2. Open De Azure Shell en selecteer de PowerShell-omgeving.

  3. Wijzig de $webhookAadTenantId-waarde om verbinding te maken met tenant B.

    • Variabelen:

      • $webhookAadTenantId: Azure-tenant-id voor tenant B
      $webhookAadTenantId = "[REPLACE_WITH_YOUR_TENANT_ID]"
      Connect-MgGraph -TenantId $webhookAadTenantId -Scopes "Application.ReadWrite.All, AppRoleAssignment.ReadWrite.All"
      
  4. Open het volgende script en werk de waarden van $webhookAppObjectId en $eventSubscriptionWriterAppId bij met uw id's en ga vervolgens door met het uitvoeren van het script.

    • Variabelen:
      • $webhookAppObjectId: Microsoft Entra-toepassings-id gemaakt voor de webhook

      • $eventSubscriptionWriterAppId: Microsoft Entra-toepassings-id voor De schrijver van het Event Grid-abonnement

        Notitie

        U hoeft de waarde van $eventGridAppId. In dit script is AzureEventGridSecureWebhookSubscriber ingesteld voor $eventGridRoleName. Houd er rekening mee dat u lid moet zijn van de rol Microsoft Entra-toepassingsbeheerder of eigenaar bent van de service-principal van de webhook-app in Microsoft Entra-id om dit script uit te voeren.

    Als u het volgende foutbericht ziet, moet u de service-principal uitbreiden. Er is op 30 maart 2021 een extra toegangscontrole geïntroduceerd als onderdeel van het maken of bijwerken van een gebeurtenisabonnement om een beveiligingsprobleem op te lossen. De service-principal van de abonneeclient moet een eigenaar zijn of een rol hebben die is toegewezen aan de service-principal van de doeltoepassing.

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

Tenant A

Voer in tenant A de volgende stappen uit:

  1. Open De Azure Shell en meld u aan als de Event Grid-abonnementschrijver Microsoft Entra Application door de opdracht uit te voeren.

    az login --service-principal -u [REPLACE_WITH_APP_ID] -p [REPLACE_WITH_SECRET_VALUE] --tenant [REPLACE_WITH_TENANT_ID]
    
  2. Maak uw abonnement door de opdracht uit te voeren.

    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
    

    Notitie

    In dit scenario gebruiken we een Event Grid-systeemonderwerp. Zie hier als u een abonnement wilt maken voor aangepaste onderwerpen of Event Grid-domeinen met behulp van de Azure CLI.

  3. Als alles correct is geconfigureerd, kunt u het webhookabonnement maken in uw Event Grid-onderwerp.

    Notitie

    Op dit moment geeft Event Grid in elk bericht het Microsoft Entra Bearer-token door aan de webhookclient. U moet het autorisatietoken in uw webhook valideren.

Volgende stappen