Share via


GitHub Actions gebruiken om verbinding te maken met Azure

Meer informatie over het gebruik van Azure-aanmelding met Azure PowerShell of Azure CLI om te communiceren met uw Azure-resources.

Als u Azure PowerShell of Azure CLI wilt gebruiken in een GitHub Actions-werkstroom, moet u zich eerst aanmelden met de Azure-aanmeldingsactie .

De azure-aanmeldingsactie ondersteunt twee verschillende manieren om te verifiëren met Azure:

De aanmeldingsactie meldt zich standaard aan met de Azure CLI en stelt de GitHub Actions runner-omgeving in voor Azure CLI. U kunt Azure PowerShell gebruiken met enable-AzPSSession de eigenschap van de Azure-aanmeldingsactie. Hiermee stelt u de GitHub Actions runner-omgeving in met de Azure PowerShell-module.

U kunt Azure-aanmelding gebruiken om verbinding te maken met openbare of onafhankelijke clouds, waaronder Azure Government en Azure Stack Hub.

De azure-aanmeldingsactie gebruiken met OpenID Verbinding maken

Als u een Azure-aanmelding wilt instellen met OpenID Verbinding maken en deze wilt gebruiken in een GitHub Actions-werkstroom, hebt u het volgende nodig:

  • Een Microsoft Entra-toepassing, met een service-principal die is toegewezen met een geschikte rol voor uw abonnement.
  • Een Microsoft Entra-toepassing die is geconfigureerd met een federatieve referentie voor het vertrouwen van tokens die door GitHub Actions zijn uitgegeven aan uw GitHub-opslagplaats. U kunt dit configureren in Azure Portal of met Microsoft Graph REST API's.
  • Een GitHub Actions-werkstroom die gitHub-uitgiftetokens voor de werkstroom aanvraagt en de Azure-aanmeldingsactie gebruikt.

Een Microsoft Entra-toepassing en service-principal maken

U moet een Microsoft Entra-toepassing en service-principal maken en vervolgens een rol voor uw abonnement toewijzen aan uw toepassing, zodat uw werkstroom toegang heeft tot uw abonnement.

  1. Als u geen bestaande toepassing hebt, registreert u een nieuwe Microsoft Entra-toepassing en service-principal die toegang heeft tot resources. Zorg ervoor dat u als onderdeel van dit proces het volgende doet:

    • Uw toepassing registreren bij Microsoft Entra-id en een service-principal maken
    • Een rol toewijzen aan de toepassing
  2. Open App-registraties in Azure Portal en zoek uw toepassing. Kopieer de waarden voor toepassings-id (client) en map-id (tenant) voor gebruik in uw GitHub Actions-werkstroom.

  3. Open Abonnementen in De Azure-portal en zoek uw abonnement. Kopieer de abonnements-id.

Federatieve referenties toevoegen

U kunt federatieve referenties toevoegen in Azure Portal of met de Microsoft Graph REST API.

  1. Ga naar App-registraties in Azure Portal en open de app die u wilt configureren.
  2. Ga in de app naar Certificaten en geheimen.
    Select Certificates & secrets.
  3. Selecteer op het tabblad Federatieve referenties de optie Referentie toevoegen. Add the federated credential
  4. Selecteer het referentiescenario voor GitHub Actions waarmee Azure-resources worden geïmplementeerd. Genereer uw referentie door uw referentiegegevens in te voeren.
Veld Omschrijving Voorbeeld
Organisatie De naam van uw GitHub-organisatie of de GitHub-gebruikersnaam. contoso
Opslagplaats De naam van uw GitHub-opslagplaats. contoso-app
Entiteitstype Het filter dat wordt gebruikt voor het bereik van de OIDC-aanvragen van GitHub-werkstromen. Dit veld wordt gebruikt om de subject claim te genereren. Environment, , , BranchPull requestTag
GitHub-naam De naam van de omgeving, vertakking of tag. main
Naam Id voor de federatieve referentie. contoso-deploy

Zie Een app configureren om een GitHub-opslagplaats te vertrouwen voor een gedetailleerder overzicht.

GitHub-geheimen maken

U moet de client-id, tenant-id en abonnements-id van uw toepassing opgeven voor de aanmeldingsactie. Deze waarden kunnen rechtstreeks in de werkstroom worden opgegeven of kunnen worden opgeslagen in GitHub-geheimen en waarnaar wordt verwezen in uw werkstroom. Het opslaan van de waarden als GitHub-geheimen is de veiligere optie.

  1. Open uw GitHub-opslagplaats en ga naar Instellingen.

    Select Settings in the navigation

  2. Selecteer Acties voor beveiligingsgeheimen > en variabelen>.

    Choose to add a secret

  3. Geheimen maken voor AZURE_CLIENT_ID, AZURE_TENANT_IDen AZURE_SUBSCRIPTION_ID. Gebruik deze waarden uit uw Azure Active Directory-toepassing voor uw GitHub-geheimen:

    GitHub Secret Azure Active Directory-toepassing
    AZURE_CLIENT_ID Client-id van toepassing
    AZURE_TENANT_ID Id van directory (tenant)
    AZURE_SUBSCRIPTION_ID Abonnements-id
  4. Sla elk geheim op door Geheim toevoegen te selecteren.

Azure-aanmelding met OpenID Verbinding maken-verificatie instellen

Uw GitHub Actions-werkstroom maakt gebruik van OpenID Verbinding maken voor verificatie met Azure. Raadpleeg de Documentatie voor GitHub Actions voor meer informatie over deze interactie.

In dit voorbeeld gebruikt u OpenID Verbinding maken Azure CLI om te verifiëren met Azure met de aanmeldingsactie van Azure. In het voorbeeld worden GitHub-geheimen gebruikt voor de client-id, tenant-iden subscription-id waarden. U kunt deze waarden ook rechtstreeks doorgeven in de aanmeldingsactie.

De Azure-aanmeldingsactie bevat een optionele audience invoerparameter die standaard wordt gebruikt api://AzureADTokenExchange. U kunt deze parameter bijwerken voor aangepaste doelgroepwaarden.

Deze werkstroom wordt geverifieerd met OpenID Verbinding maken en gebruikt Azure CLI om de details van het verbonden abonnement op te halen en de resourcegroep weer te geven.

name: Run Azure Login with OpenID Connect
on: [push]

permissions:
      id-token: write
      contents: read
      
jobs: 
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
    - name: 'Az CLI login'
      uses: azure/login@v1
      with:
          client-id: ${{ secrets.AZURE_CLIENT_ID }}
          tenant-id: ${{ secrets.AZURE_TENANT_ID }}
          subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
  
    - name: 'Run Azure CLI commands'
      run: |
          az account show
          az group list
          pwd 

Geslaagde Azure-aanmelding verifiëren met OpenID

Open de Az CLI login actie en controleer of deze is uitgevoerd. Als het goed is, ziet u nu het bericht Login successful. Als uw aanmelding mislukt, ziet u het bericht Az CLI Login failed..

GitHub Actions Azure Login successful.

De azure-aanmeldingsactie gebruiken met een service-principalgeheim

Als u Azure-aanmelding wilt gebruiken met een service-principal, moet u eerst uw Azure-service-principal als geheim toevoegen aan uw GitHub-opslagplaats.

Een service-principal maken

In dit voorbeeld maakt u een geheim met de naam AZURE_CREDENTIALS dat u kunt gebruiken voor verificatie met Azure.

  1. Open Azure Cloud Shell in Azure Portal of Azure CLI lokaal.

    Notitie

    Als u Azure Stack Hub gebruikt, moet u uw SQL Management-eindpunt instellen op not supported. az cloud update -n {environmentName} --endpoint-sql-management https://notsupported

  2. Maak een nieuwe service-principal in Azure Portal voor uw app. De service-principal moet worden toegewezen met een geschikte rol.

        az ad sp create-for-rbac --name "myApp" --role contributor \
                                    --scopes /subscriptions/{subscription-id}/resourceGroups/{resource-group} \
                                    --json-auth
    

    De parameter --json-auth voert de resultatenwoordenlijst uit die is geaccepteerd door de aanmeldingsactie, die toegankelijk is in Azure CLI-versies >= 2.51.0. Versies vóór dit gebruik --sdk-auth met een afschaffingswaarschuwing.

  3. Kopieer het JSON-object voor uw service-principal.

    {
        "clientId": "<GUID>",
        "clientSecret": "<GUID>",
        "subscriptionId": "<GUID>",
        "tenantId": "<GUID>",
        (...)
    }
    

De service-principal toevoegen als een GitHub-geheim

  1. Ga in GitHub naar uw opslagplaats.

  2. Ga naar Instellingen in het navigatiemenu.

  3. Selecteer Acties voor beveiligingsgeheimen > en variabelen>.

    Screenshot of select Actions menu item.

  4. Selecteer Nieuw opslagplaatsgeheim.

  5. Plak de volledige JSON-uitvoer van de Azure CLI-opdracht in het waardeveld van het geheim. Geef het geheim de naam AZURE_CREDENTIALS.

  6. Selecteer Geheim toevoegen.

De azure-aanmeldingsactie gebruiken

Gebruik het service-principalgeheim met de azure-aanmeldingsactie om te verifiëren bij Azure.

In deze werkstroom verifieert u met behulp van de azure-aanmeldingsactie met de details van de service-principal die zijn opgeslagen in secrets.AZURE_CREDENTIALS. Vervolgens voert u een Azure CLI-actie uit. Zie Versleutelde geheimen gebruiken in een werkstroom in GitHub Docs voor meer informatie over het verwijzen naar GitHub-geheimen in een werkstroom .

Zodra u een werkende Azure-aanmeldingsstap hebt, kunt u de Azure PowerShell - of Azure CLI-acties gebruiken. U kunt ook andere Azure-acties gebruiken, zoals De implementatie van Azure-web-apps en Azure-functies.

on: [push]

name: AzureLoginSample

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Log in with Azure
        uses: azure/login@v1
        with:
          creds: '${{ secrets.AZURE_CREDENTIALS }}'

De Azure PowerShell-actie gebruiken

In dit voorbeeld meldt u zich aan met de azure-aanmeldingsactie en haalt u vervolgens een resourcegroep op met de Azure PowerShell-actie.

on: [push]

name: AzureLoginSample

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Log in with Azure
        uses: azure/login@v1
        with:
          creds: '${{ secrets.AZURE_CREDENTIALS }}'
          enable-AzPSSession: true
      - name: Azure PowerShell Action
        uses: Azure/powershell@v1
        with:
          inlineScript: Get-AzResourceGroup -Name "< YOUR RESOURCE GROUP >"
          azPSVersion: "latest"

De Azure CLI-actie gebruiken

In dit voorbeeld meldt u zich aan met de azure-aanmeldingsactie en haalt u vervolgens een resourcegroep op met de Azure CLI-actie.

on: [push]

name: AzureLoginSample

jobs:
build-and-deploy:
  runs-on: ubuntu-latest
  steps:

    - name: Log in with Azure
      uses: azure/login@v1
      with:
          creds: ${{ secrets.AZURE_CREDENTIALS }}

    - name: Azure CLI script
      uses: azure/CLI@v1
      with:
          azcliversion: 2.0.72
          inlineScript: |
            az account show
            az storage -h

Verbinding maken naar Azure Government- en Azure Stack Hub-clouds

Als u zich wilt aanmelden bij een van de Azure Government-clouds, stelt u de optionele parameteromgeving in met ondersteunde cloudnamen AzureUSGovernment of AzureChinaCloud. Als deze parameter niet is opgegeven, wordt de standaardwaarde AzureCloud gebruikt en wordt er verbinding gemaakt met de openbare Azure-cloud.

   - name: Login to Azure US Gov Cloud with CLI
     uses: azure/login@v1
        with:
          creds: ${{ secrets.AZURE_US_GOV_CREDENTIALS }}
          environment: 'AzureUSGovernment'
          enable-AzPSSession: false
   - name: Login to Azure US Gov Cloud with Az Powershell
      uses: azure/login@v1
        with:
          creds: ${{ secrets.AZURE_US_GOV_CREDENTIALS }}
          environment: 'AzureUSGovernment'
          enable-AzPSSession: true

Verbinding maken met andere Azure-services

De volgende artikelen bevatten informatie over het maken van verbinding met GitHub vanuit Azure en andere services.

Microsoft Entra ID

Power BI

Connectors

Azure Databricks