Déployer des stratégies personnalisées avec GitHub Actions

La fonctionnalité GitHub Actions permet de créer des flux de travail d’intégration continue (CI) et de déploiement continu (CD) personnalisés directement dans votre dépôt GitHub. Cet article explique comment automatiser le déploiement de stratégies personnalisées Azure Active Directory B2C (Azure AD B2C) à l’aide de GitHub Actions.

Pour automatiser le processus de déploiement de stratégie personnalisée, utilisez des stratégies personnalisées d’action GitHub pour le déploiement d’Azure AD B2C. Cette action GitHub a été développée par la Communauté Azure AD B2C.

Cette action déploie des stratégies personnalisées Azure AD B2C dans votre locataire Azure AD B2C à l’aide de l’API Microsoft Graph. Si la stratégie n’existe pas encore dans votre locataire, elle est créée. Autrement, elle est remplacée.

Important

La gestion de stratégies personnalisées Azure AD B2C avec Azure Pipelines utilise actuellement des opérations en préversion disponibles sur le point de terminaison /beta de l’API Microsoft Graph. L’utilisation de ces API dans les applications de production n’est pas prise en charge. Pour plus d’informations, voir la référence du point de terminaison beta de l’API REST Microsoft Graph.

Prérequis

Sélectionner un dossier de stratégies personnalisées

Votre dépôt GitHub peut contenir la totalité de vos fichiers de stratégie Azure AD B2C, ainsi que d’autres ressources. Dans le répertoire racine de votre dépôt, créez ou choisissez un dossier existant contenant vos stratégies personnalisées.

Par exemple, sélectionnez un dossier nommé policies. Ajoutez vos fichiers de stratégies personnalisées Azure AD B2C au dossier policies. Ensuite, vous devez Valider les modifications.

N’envoyez (Push) pas les modifications. Vous effectuerez cette opération ultérieurement, après avoir configuré le flux de travail de déploiement.

Inscrire une application Microsoft Graph

Pour permettre l’interaction de l’action GitHub avec l’API Microsoft Graph, créez une inscription d’application dans votre locataire Azure AD B2C. Si vous ne l’avez pas déjà fait, inscrivez une application Microsoft Graph.

Pour permettre à l’action GitHub d’accéder aux données dans Microsoft Graph, accordez à l’application inscrite les autorisations d’application appropriées. Accordez l’autorisation Microsoft Graph>Stratégie>Policy.ReadWrite.TrustFramework dans les API Permissions (Autorisations d’API) de l’inscription d’application.

Créer un secret chiffré GitHub

Les secrets GitHub sont des variables d’environnement chiffrées que vous créez dans une organisation, un dépôt ou un environnement de dépôt. Dans cette étape, vous stockez le secret d’application pour l’application que vous avez inscrite précédemment à l’étape Inscrire une application MS Graph.

L’action GitHub de déploiement de stratégies personnalisées Azure AD B2C utilise le secret pour acquérir un jeton d’accès qui est utilisé pour interagir avec l’API Microsoft Graph. Pour plus d’informations, consultez Création de secrets chiffrés pour un dépôt.

Pour créer un secret GitHub, procédez comme suit :

  1. Dans GitHub, accédez à la page principale du dépôt.
  2. Sous le nom de votre dépôt, sélectionnez Settings (Paramètres) .
  3. Dans la barre latérale de gauche, sélectionnez Secrets.
  4. Sélectionnez New repository secret (Nouveau secret de dépôt).
  5. Pour Name (Nom) , saisissez ClientSecret.
  6. Pour Value (Valeur) , saisissez le secret d’application que vous avez créé précédemment.
  7. Sélectionnez Ajouter un secret.

Créer un flux de travail GitHub

Un flux de travail (workflow) GitHub est une procédure automatisée que vous ajoutez à votre dépôt. Les flux de travail sont constitués d’un ou de plusieurs travaux et peuvent être planifiés ou déclenchés par un événement. Au cours de cette étape, vous allez créer un flux de travail qui déploie votre stratégie personnalisée.

Pour créer un flux de travail, procédez comme suit :

  1. Dans GitHub, accédez à la page principale de votre dépôt.

  2. Sous le nom de votre dépôt, sélectionnez Settings (Paramètres) .

    Capture d’écran montrant l’onglet GitHub Actions

  3. Si vous n’avez pas configuré de flux de travail auparavant, sélectionnez set up a workflow yourself (Configurer un workflow vous-même) . Sinon, sélectionnez New Workflow (Nouveau flux de travail) .

    Capture d’écran montrant comment créer un flux de travail

  4. GitHub propose de créer un fichier de flux de travail nommé main.yml dans le dossier .github/workflows. Ce fichier contient des informations sur le flux de travail, incluant votre environnement Azure AD B2C et les stratégies personnalisées à déployer. Dans l’éditeur web GitHub, ajoutez le code YAML suivant :

    on: push
    
    env:
      clientId: 00000000-0000-0000-0000-000000000000
      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. Mettez à jour les propriétés suivantes du fichier YAML :

    Section Nom Valeur
    env clientId ID d’application (client) de l’application que vous avez inscrite à l’étape Inscrire une application MS Graph.
    env tenant Votre nom de locataire Azure AD B2C (par exemple, contoso.onmicrosoft.com).
    with folder Dossier dans lequel sont stockés les fichiers de stratégies personnalisées, par exemple, ./Policies.
    with files Liste délimitée par des virgules des fichiers de stratégie à déployer, par exemple, TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml.

    Important

    Lors de l’exécution des agents et du chargement des fichiers de stratégie, assurez-vous que ceux-ci ont été chargés dans l’ordre correct :

    1. TrustFrameworkBase.xml
    2. TrustFrameworkLocalization.xml
    3. TrustFrameworkExtensions.xml
    4. SignUpOrSignin.xml
    5. ProfileEdit.xml
    6. PasswordReset.xml
  6. Sélectionnez Démarrer la validation.

  7. Sous les champs de message de validation, indiquez si vous souhaitez ajouter votre validation à la branche active ou à une nouvelle branche. Sélectionnez Commit new file (Valider le nouveau fichier) ou Propose new file (Proposer un nouveau fichier) pour créer une demande de tirage (pull request).

Tester votre workflow

Pour tester le flux de travail que vous avez créé, envoyez (Push) les modifications de votre stratégie personnalisée. Une fois l’exécution de votre travail démarrée, vous pouvez voir un graphique de visualisation de la progression de l’exécution, ainsi que l’activité de chaque étape sur GitHub.

  1. Sur GitHub, accédez à la page principale de votre dépôt.

  2. Sous le nom de votre dépôt, sélectionnez Settings (Paramètres) .

  3. Dans le volet gauche, sélectionnez le flux de travail que vous avez créé.

  4. Sous Workflow runs (Exécutions de flux de travail) , sélectionnez le nom de l’exécution que vous souhaitez afficher.

    Capture d’écran montrant comment sélectionner l’activité de flux de travail

  5. Sous Jobs (Travaux) ou dans le graphique de visualisation, sélectionnez le travail que vous souhaitez afficher.

  6. Affichez les résultats de chaque étape. La capture d’écran suivante montre le journal de l’étape Charger une stratégie personnalisée.

    Journal de l’étape de chargement d’une stratégie personnalisée

Facultatif : Planifier votre flux de travail

Le flux de travail que vous avez créé est déclenché par l’événement d’envoi (push). Si vous préférez, vous pouvez choisir un autre événement pour déclencher le flux de travail, tel qu’une demande de tirage (pull request).

Vous pouvez également planifier l’exécution d’un flux de travail à des heures UTC spécifiques à l’aide de la syntaxe cron POSIX. L’événement de planification (schedule) vous permet de déclencher un flux de travail à une heure planifiée. Pour plus d’informations, consultez Événements planifiés.

L’exemple suivant déclenche le flux de travail chaque jour à 5h30 et à 17h30 UTC :

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

Pour modifier votre flux de travail :

  1. Dans GitHub, accédez à la page principale de votre dépôt.

  2. Sous le nom de votre dépôt, sélectionnez Settings (Paramètres) .

  3. Dans le volet gauche, sélectionnez le flux de travail que vous avez créé.

  4. Sous Workflow runs (Exécutions de flux de travail) , sélectionnez le nom de l’exécution que vous souhaitez afficher.

  5. Dans le menu, sélectionnez les trois points de suspension ... , puis View the workflow file (Afficher le fichier de flux de travail) .

    Capture d’écran montrant comment afficher le fichier de flux de travail

  6. Dans l’éditeur web de GitHub, sélectionnez Edit (Modifier) .

  7. Définissez on: push sur l’exemple ci-dessus.

  8. Validez (Commit) vos modifications.

Étapes suivantes