Share via


Distribuera anpassade principer med GitHub Actions

GitHub Actions kan du skapa anpassade arbetsflöden för kontinuerlig integrering (CI) och kontinuerlig distribution (CD) direkt i GitHub-lagringsplatsen. Den här artikeln beskriver hur du automatiserar distributionen av anpassade principer för Azure Active Directory B2C (Azure AD B2C) med hjälp av GitHub Actions.

Om du vill automatisera distributionsprocessen för anpassade principer använder du GitHub-åtgärden för att distribuera Azure AD anpassade B2C-principer. Den här GitHub-åtgärden har utvecklats av Azure AD B2C-communityn.

Den här åtgärden distribuerar Azure AD anpassade B2C-principer till din Azure AD B2C-klientorganisation med hjälp av Microsoft Graph API. Om principen ännu inte finns i din klientorganisation skapas den. Annars kommer den att ersättas.

Viktigt

För att hantera Azure AD anpassade B2C-principer med Azure Pipelines används för närvarande förhandsversionsåtgärder som är tillgängliga på Microsoft Graph API /beta slutpunkt. Användning av dessa API:er i produktionsprogram stöds inte. Mer information finns i betaslutpunktsreferensen för Microsoft Graph REST API.

Förutsättningar

Välj en anpassad principmapp

GitHub-lagringsplatsen kan innehålla alla dina Azure AD B2C-principfiler och andra tillgångar. Skapa eller välj en befintlig mapp som innehåller dina anpassade principer i lagringsplatsens rotkatalog.

Välj till exempel en mapp med namnet policies. Lägg till dina Azure AD anpassade B2C-principfiler i mappen policies. Checka sedan in ändringarna.

Push-överför inte ändringarna. Du kommer att göra detta senare när du har konfigurerat distributionsarbetsflödet.

Registrera ett Microsoft Graph-program

Om du vill tillåta att GitHub-åtgärden interagerar med Microsoft Graph API skapar du en programregistrering i din Azure AD B2C-klientorganisation. Om du inte redan har gjort det registrerar du ett Microsoft Graph-program.

För att GitHub-åtgärden ska få åtkomst till data i Microsoft Graph beviljar du det registrerade programmet relevanta programbehörigheter. Ge Microsoft Graph>Policy>Policy.ReadWrite.TrustFramework behörighet inom API-behörigheterna för appregistreringen.

Skapa en GitHub-krypterad hemlighet

GitHub-hemligheter är krypterade miljövariabler som du skapar i en miljö för organisation, lagringsplats eller lagringsplats. I det här steget lagrar du programhemligheten för det program som du registrerade tidigare i steget Registrera ett MS Graph-program .

GitHub-åtgärden för att distribuera Azure AD anpassade B2C-principer använder hemligheten för att hämta en åtkomsttoken som används för att interagera med Microsoft Graph API. Mer information finns i Skapa krypterade hemligheter för en lagringsplats.

Följ dessa steg för att skapa en GitHub-hemlighet:

  1. I GitHub navigerar du till huvudsidan för lagringsplatsen.
  2. Under namnet på din lagringsplats väljer du Inställningar.
  3. I det vänstra sidofältet väljer du Hemligheter.
  4. Välj Ny lagringsplatshemlighet.
  5. För Namn skriver du ClientSecret.
  6. För Värdet anger du den programhemlighet som du skapade tidigare.
  7. Välj Add secret (Lägg till hemlighet).

Skapa ett GitHub-arbetsflöde

GitHub-arbetsflödet är en automatiserad procedur som du lägger till på lagringsplatsen. Arbetsflöden består av ett eller flera jobb och kan schemaläggas eller utlösas av en händelse. I det här steget skapar du ett arbetsflöde som distribuerar din anpassade princip.

Följ dessa steg för att skapa ett arbetsflöde:

  1. I GitHub navigerar du till huvudsidan för din lagringsplats.

  2. Under namnet på lagringsplatsen väljer du Åtgärder.

    Skärmbild som visar fliken GitHub Actions

  3. Om du inte har konfigurerat ett arbetsflöde tidigare väljer du konfigurera ett arbetsflöde själv. Annars väljer du Nytt arbetsflöde.

    Skärmbild som visar hur du skapar ett nytt arbetsflöde

  4. GitHub erbjuder sig att skapa en arbetsflödesfil med namnet main.yml i .github/workflows mappen. Den här filen innehåller information om arbetsflödet, inklusive din Azure AD B2C-miljö och de anpassade principer som ska distribueras. Lägg till följande YAML-kod i GitHub-webbredigeraren:

    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. Uppdatera följande egenskaper för YAML-filen:

    Avsnitt Name Värde
    env clientId Program-ID för det program som du registrerade i steget Registrera ett MS Graph-program .
    env tenant Ditt Azure AD B2C-klientnamn (till exempel contoso.onmicrosoft.com).
    with folder En mapp där filerna för anpassade principer lagras, till exempel ./Policies.
    with files Kommaavgränsad lista över principfiler som ska distribueras, TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xmltill exempel .

    Viktigt

    När du kör agenterna och laddar upp principfilerna kontrollerar du att de laddas upp i rätt ordning:

    1. TrustFrameworkBase.xml
    2. TrustFrameworkLocalization.xml
    3. TrustFrameworkExtensions.xml
    4. SignUpOrSignin.xml
    5. ProfileEdit.xml
    6. PasswordReset.xml
  6. Välj Start commit (Starta incheckning).

  7. Under fälten för incheckningsmeddelande anger du om du vill lägga till din incheckning i den aktuella grenen eller till en ny gren. Välj Checka in ny fil eller Föreslå ny fil för att skapa en pull-begäran.

Testa arbetsflödet

Om du vill testa arbetsflödet som du skapade skickar du ändringarna i din anpassade princip. När jobbet har börjat köras kan du se en visualiseringsgraf över körningens förlopp och visa varje stegs aktivitet på GitHub.

  1. Gå till huvudsidan för din lagringsplats på GitHub.

  2. Under namnet på lagringsplatsen väljer du Åtgärder.

  3. I det vänstra sidofältet väljer du det arbetsflöde som du skapade.

  4. Under Arbetsflödeskörningar väljer du namnet på den körning som du vill se.

    Skärmbild som visar hur du väljer arbetsflödesaktivitet

  5. Under Jobb eller i visualiseringsdiagrammet väljer du det jobb som du vill se.

  6. Visa resultatet av varje steg. Följande skärmbild visar stegloggen Ladda upp anpassad princip .

    Stegloggen för att ladda upp anpassad princip

Valfritt: Schemalägg arbetsflödet

Arbetsflödet som du skapade utlöses av push-händelsen . Om du vill kan du välja en annan händelse för att utlösa arbetsflödet, till exempel en pull-begäran.

Du kan också schemalägga ett arbetsflöde så att det körs vid specifika UTC-tider med hjälp av POSIX cron-syntax. Med schemahändelsen kan du utlösa ett arbetsflöde vid en schemalagd tidpunkt. Mer information finns i Schemalagda händelser.

I följande exempel utlöses arbetsflödet varje dag kl. 5:30 och 17:30 UTC:

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

Så här redigerar du arbetsflödet:

  1. I GitHub navigerar du till huvudsidan för din lagringsplats.

  2. Under namnet på lagringsplatsen väljer du Åtgärder.

  3. I det vänstra sidofältet väljer du det arbetsflöde som du skapade.

  4. Under Arbetsflödeskörningar väljer du namnet på den körning som du vill se.

  5. På menyn väljer du de tre punkterna ... och sedan Visa arbetsflödesfilen.

    Skärmbild som visar hur du visar arbetsflödesfilen

  6. I GitHub-webbredigeraren väljer du Redigera.

  7. Ändra on: push till exemplet ovan.

  8. Checka in ändringarna.

Nästa steg