Freigeben über


Bereitstellen benutzerdefinierter Richtlinien mit GitHub Actions

Mit GitHub Actions können Sie benutzerdefinierte Workflows für Continuous Integration (Cl) und Continuous Deployment (CD) direkt in Ihrem GitHub-Repository erstellen. Dieser Artikel beschreibt, wie Sie die Bereitstellung von Azure Active Directory B2C (Azure AD B2C) benutzerdefinierten Richtlinien mithilfe von GitHub Actions automatisieren können.

Um den Prozess der Bereitstellung von benutzerdefinierten Richtlinien zu automatisieren, verwenden Sie die GitHub-Aktion für die Bereitstellung von benutzerdefinierten Azure AD B2C-Richtlinien. Diese GitHub-Aktion wurde von der Azure AD B2C-Community entwickelt.

Diese Aktion stellt benutzerdefinierte Azure AD B2C-Richtlinien in Ihrem Azure AD B2C-Mandanten unter Verwendung der Microsoft Graph API bereit. Wenn die Richtlinie noch nicht in Ihrem Mandaten vorhanden ist, wird sie erstellt. Andernfalls wird sie ersetzt.

Wichtig

Bei der Verwaltung von benutzerdefinierten Richtlinien in Azure AD B2C mit Azure Pipelines werden derzeit Vorschau-Vorgänge verwendet, die im /beta-Endpunkt der Microsoft Graph-API zur Verfügung stehen. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Weitere Informationen finden Sie in der Microsoft Graph-REST-API-Beta-Endpunkt-Referenz.

Voraussetzungen

Wählen Sie einen Ordner für benutzerdefinierte Richtlinien

Ihr GitHub-Repository kann alle Ihre Azure AD B2C-Richtliniendateien und andere Objekte enthalten. Erstellen Sie im Stammordner Ihres Repositorys einen Ordner oder wählen Sie einen vorhandenen Ordner aus, der Ihre benutzerdefinierten Richtlinien enthält.

Wählen Sie zum Beispiel einen Ordner namens Richtlinien. Fügen Sie Ihre benutzerdefinierten Azure AD B2C-Richtliniendateien in den Ordner Richtlinien ein. Committen Sie dann die Änderungen mit Commit.

Die Änderungen nicht pushen. Sie werden dies später tun, nachdem Sie den Bereitstellungsworkflow eingerichtet haben.

Registrieren einer Microsoft Graph-Anwendung

Damit die GitHub Action mit der Microsoft Graph API interagieren kann, erstellen Sie eine Anwendungsregistrierung in Ihrem Azure AD B2C-Mandanten. Wenn dies noch nicht erfolgt ist, registrieren Sie eine Microsoft Graph-Anwendung.

Damit die GitHub Action auf Daten in Microsoft Graph zugreifen kann, erteilen Sie der registrierten Anwendung die entsprechenden Anwendungsberechtigungen. Erteilen Sie der Microsoft Graph>Richtlinie> die Berechtigung Policy.ReadWrite.TrustFramework innerhalb der API-Berechtigungen der App-Registrierung.

Ein verschlüsseltes GitHub-Geheimnis erstellen

GitHub-Geheimnisse sind verschlüsselte Umgebungsvariablen, die Sie in einer Organisation, einem Repository oder einer Repository-Umgebung erstellen. In diesem Schritt speichern Sie das Anwendungsgeheimnis für die Anwendung, die Sie zuvor im Schritt Registrieren einer MS Graph-Anwendung registriert haben.

Die GitHub-Aktion für die Bereitstellung von benutzerdefinierten Azure AD B2C-Richtlinien verwendet das Geheimnis, um ein Zugriffstoken zu erhalten, das für die Interaktion mit der Microsoft Graph-API verwendet wird. Weitere Informationen finden Sie unter Erstellen verschlüsselter Geheimnisse für ein Repository.

Gehen Sie folgendermaßen vor, um ein GitHub-Geheimnis zu erstellen:

  1. Navigieren Sie in GitHub zur Hauptseite des Repositorys.
  2. Wählen Sie unter dem Namen Ihres Repositorys settings.
  3. Wählen Sie in der linken Seitenleiste Secrets.
  4. Wählen Sie New repository secret (Neues Repositorygeheimnis) aus.
  5. Geben Sie für NameClientsecret ein.
  6. Geben Sie für Wert das zuvor erstellte Anwendungsgeheimnis ein.
  7. Klicken Sie auf Add secret (Geheimnis hinzufügen).

Erstellen eines GitHub-Workflows

Der GitHub-Workflow ist eine automatisierte Prozedur, die Sie zu Ihrem Repository hinzufügen. Workflows bestehen aus einem oder mehreren Jobs und können geplant oder durch ein Ereignis ausgelöst werden. In diesem Schritt erstellen Sie einen Workflow, der Ihre benutzerdefinierte Richtlinie bereitstellt.

Gehen Sie zum Erstellen eines Workflows wie folgt vor:

  1. Wechseln Sie in GitHub zur Hauptseite Ihres Repositorys.

  2. Wählen Sie unter dem Namen Ihres Repositorys Aktionen aus.

    Screenshot mit der Registerkarte „GitHub Actions“

  3. Wenn Sie noch keinen Workflow konfiguriert haben, wählen Sie Einen Workflow selbst einrichten. Wählen Sie andernfalls Neuer Workflow.

    Screenshot, der das Erstellen eines neuen Workflows zeigt

  4. GitHub bietet Ihnen an, eine Workflow-Datei mit dem Namen main.yml im Ordner .github/workflows zu erstellen. Diese Datei enthält Informationen über den Workflow, einschließlich Ihrer Azure AD B2C-Umgebung und der bereitzustellenden benutzerdefinierten Richtlinien. Fügen Sie im GitHub Webeditor den folgenden YAML-Code ein:

    on: push
    
    env:
      clientId: 00001111-aaaa-2222-bbbb-3333cccc4444
      tenant: your-tenant.onmicrosoft.com
    
    jobs:
      build-and-deploy:
        runs-on: ubuntu-latest
        steps:
        - uses: actions/checkout@v2
    
        - name: 'Upload TrustFrameworkBase Policy'
          uses: azure-ad-b2c/deploy-trustframework-policy@v3
          with:
            folder: "./Policies"
            files: "TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml"
            tenant: ${{ env.tenant }}
            clientId: ${{ env.clientId }}
            clientSecret: ${{ secrets.clientSecret }}
    
  5. Aktualisieren Sie die folgenden Eigenschaften der YAML-Datei:

    `Section` Name Wert
    env clientId Anwendungs-(Client-)ID der Anwendung, die Sie im Schritt Registrieren einer MS Graph-Anwendung registriert haben.
    env tenant Ihr Azure AD B2C Mandantenname (z. B. contoso.onmicrosoft.com).
    with folder Ein Ordner, in dem die benutzerdefinierten Richtliniendateien gespeichert sind, z. B../Policies
    with files Durch Kommas getrennte Liste der bereitzustellenden Richtliniendateien, z. B.TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml

    Wichtig

    Achten Sie beim Ausführen der Agenten und Hochladen der Richtliniendateien darauf, dass sie in der richtigen Reihenfolge hochgeladen werden:

    1. TrustFrameworkBase.xml
    2. TrustFrameworkLocalization.xml
    3. TrustFrameworkExtensions.xml
    4. SignUpOrSignin.xml
    5. ProfileEdit.xml
    6. PasswordReset.xml
  6. Klicken Sie auf Start commit (Commit starten).

  7. Geben Sie unterhalb der Felder für Commit-Nachrichten an, ob Ihr Commit der aktuellen Verzweigung oder einer neuen Verzweigung hinzugefügt werden soll. Wählen Sie Neue Datei committen oder Neue Datei vorschlagen, um eine Pull-Anforderung zu erstellen.

Testen Ihres Workflows

Um den von Ihnen erstellten Workflow auszuprobieren Pushen Sie die Änderungen Ihrer benutzerdefinierten Richtlinie. Sobald Ihr Einzelvorgang läuft, können Sie den Fortschritt des Verlaufs in einem Diagramm visualisieren und die Aktivitäten der einzelnen Schritte auf GitHub einsehen.

  1. Wechseln Sie auf GitHub zur Hauptseite Ihres Repositorys.

  2. Wählen Sie unter dem Namen Ihres Repositorys Aktionen aus.

  3. Wählen Sie in der linken Seitenleiste den von Ihnen erstellten Workflow aus.

  4. Unter Workflowausführungen wählen Sie den Namen des Laufs aus, den Sie sehen möchten.

    Screenshot mit der Auswahl der Workflow-Aktivität

  5. Wählen Sie unter Jobs oder im Visualisierungsdiagramm den Job aus, den Sie sehen möchten.

  6. Zeigen Sie die Ergebnisse der einzelnen Schritte an. Der folgende Screenshot zeigt das Schrittprotokoll Benutzerdefinierte Richtlinie hochladen.

    Das Schrittprotokoll für das Hochladen benutzerdefinierter Richtlinien

Optional: Planen Sie Ihren Workflow

Der von Ihnen erstellte Workflow wird durch das Ereignis pushen ausgelöst. Wenn Sie möchten, können Sie auch ein anderes Ereignis als Auslöser für den Workflow wählen, z. B. eine Pull-Anforderung.

Sie können einen Workflow auch so planen, dass er mittles POSIX cron-Syntax zu bestimmten UTC-Zeiten läuft. Mit dem Zeitplanereignis können Sie einen Workflow zu einem geplanten Zeitpunkt auslösen. Weitere Informationen finden Sie unter Geplante Ereignisse.

Im folgenden Beispiel wird der Workflow jeden Tag um 5:30 und 17:30 UTC ausgelöst:

on:
  schedule:
    # * is a special character in YAML so you have to quote this string
    - cron:  '30 5,17 * * *'

So bearbeiten Sie Ihren Workflow:

  1. Wechseln Sie in GitHub zur Hauptseite Ihres Repositorys.

  2. Wählen Sie unter dem Namen Ihres Repositorys Aktionen aus.

  3. Wählen Sie in der linken Seitenleiste den von Ihnen erstellten Workflow aus.

  4. Unter Workflowausführungen wählen Sie den Namen des Laufs aus, den Sie sehen möchten.

  5. Wählen Sie im Menü die drei Punkte ... und dann Workflow-Datei anzeigen.

    Screenshot mit der Anzeige der Workflow-Datei

  6. Wählen Sie im GitHub Webeditor Bearbeitung.

  7. Ändern Sie on: push wie im obigen Beispiel.

  8. Committen Sie Ihre Änderungen.

Nächste Schritte