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
- Führen Sie die unter Erste Schritte für benutzerdefinierte Richtlinien in Azure Active Directory B2C beschriebenen Schritte aus.
- Wenn Sie kein GitHub-Repositorium erstellt haben, erstellen Sie eines.
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:
- Navigieren Sie in GitHub zur Hauptseite des Repositorys.
- Wählen Sie unter dem Namen Ihres Repositorys settings.
- Wählen Sie in der linken Seitenleiste Secrets.
- Wählen Sie New repository secret (Neues Repositorygeheimnis) aus.
- Geben Sie für NameClientsecret ein.
- Geben Sie für Wert das zuvor erstellte Anwendungsgeheimnis ein.
- 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:
Wechseln Sie in GitHub zur Hauptseite Ihres Repositorys.
Wählen Sie unter dem Namen Ihres Repositorys Aktionen aus.
Wenn Sie noch keinen Workflow konfiguriert haben, wählen Sie Einen Workflow selbst einrichten. Wählen Sie andernfalls Neuer Workflow.
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 }}
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:
- TrustFrameworkBase.xml
- TrustFrameworkLocalization.xml
- TrustFrameworkExtensions.xml
- SignUpOrSignin.xml
- ProfileEdit.xml
- PasswordReset.xml
Klicken Sie auf Start commit (Commit starten).
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.
Wechseln Sie auf GitHub zur Hauptseite Ihres Repositorys.
Wählen Sie unter dem Namen Ihres Repositorys Aktionen aus.
Wählen Sie in der linken Seitenleiste den von Ihnen erstellten Workflow aus.
Unter Workflowausführungen wählen Sie den Namen des Laufs aus, den Sie sehen möchten.
Wählen Sie unter Jobs oder im Visualisierungsdiagramm den Job aus, den Sie sehen möchten.
Zeigen Sie die Ergebnisse der einzelnen Schritte an. Der folgende Screenshot zeigt das Schrittprotokoll Benutzerdefinierte Richtlinie hochladen.
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:
Wechseln Sie in GitHub zur Hauptseite Ihres Repositorys.
Wählen Sie unter dem Namen Ihres Repositorys Aktionen aus.
Wählen Sie in der linken Seitenleiste den von Ihnen erstellten Workflow aus.
Unter Workflowausführungen wählen Sie den Namen des Laufs aus, den Sie sehen möchten.
Wählen Sie im Menü die drei Punkte ... und dann Workflow-Datei anzeigen.
Wählen Sie im GitHub Webeditor Bearbeitung.
Ändern Sie
on: push
wie im obigen Beispiel.Committen Sie Ihre Änderungen.
Nächste Schritte
- Lernen Sie, wie Sie Ereignisse, die Workflows auslösen konfigurieren