Distribuire criteri personalizzati con GitHub Actions
GitHub Actions consente di creare flussi di lavoro personalizzati di integrazione continua (CI) e distribuzione continua (CD) direttamente nel repository GitHub. Questo articolo descrive come automatizzare la distribuzione dei criteri personalizzati di Azure Active Directory B2C (Azure AD B2C) usando GitHub Actions.
Per automatizzare il processo di distribuzione dei criteri personalizzati, usare GitHub Action per distribuire i criteri personalizzati di Azure AD B2C. Questa azione di GitHub è stata sviluppata dalla community di Azure AD B2C.
Questa azione distribuisce i criteri personalizzati di Azure AD B2C nel tenant di Azure AD B2C usando Microsoft API Graph. Se il criterio non esiste ancora nel tenant, verrà creato. In caso contrario, verrà sostituito.
Importante
La gestione dei criteri personalizzati di Azure AD B2C con Azure Pipelines usa attualmente le operazioni di anteprima disponibili nell'endpoint di Microsoft API Graph/beta
. L'uso di queste API nelle applicazioni di produzione non è supportato. Per altre informazioni, vedere le informazioni di riferimento sull'endpoint beta dell'API REST di Microsoft Graph.
Prerequisiti
- Completare le procedure illustrate in Introduzione ai criteri personalizzati in Azure Active Directory B2C.
- Se il repository GitHub non è stato creato, crearne uno.
Selezionare una cartella dei criteri personalizzati
Il repository GitHub può contenere tutti i file di criteri di Azure AD B2C e altri asset. Nella directory radice del repository creare o scegliere una cartella esistente contenente i criteri personalizzati.
Ad esempio, selezionare una cartella denominata policies. Aggiungere i file di criteri personalizzati di Azure AD B2C alla cartella criteri . Eseguire quindi il commit delle modifiche.
Non eseguire il push delle modifiche. Questa operazione verrà eseguita in un secondo momento, dopo aver configurato il flusso di lavoro di distribuzione.
Registrare un'applicazione Microsoft Graph
Per consentire a GitHub Action di interagire con Microsoft API Graph, creare una registrazione dell'applicazione nel tenant di Azure AD B2C. Se non è già stato fatto, registrare un'applicazione Microsoft Graph.
Per consentire a GitHub Action di accedere ai dati in Microsoft Graph, concedere all'applicazione registrata le autorizzazioni dell'applicazione pertinenti. Concedere l'autorizzazioneCriteri> di MicrosoftGraph.ReadWrite.TrustFramework> all'interno delle autorizzazioni API della registrazione dell'app.
Creare un segreto crittografato di GitHub
I segreti di GitHub sono variabili di ambiente crittografate create in un'organizzazione, in un repository o in un ambiente del repository. In questo passaggio si archivia il segreto dell'applicazione per l'applicazione registrata in precedenza nel passaggio Registrare un'applicazione MS Graph .
GitHub Action per la distribuzione di criteri personalizzati di Azure AD B2C usa il segreto per acquisire un token di accesso usato per interagire con microsoft API Graph. Per altre informazioni, vedere Creazione di segreti crittografati per un repository.
Per creare un segreto GitHub, seguire questa procedura:
- In GitHub passare alla pagina principale del repository.
- Sotto il nome del repository selezionare Settings.
- Nella barra laterale sinistra selezionare Segreti.
- Selezionare New repository secret (Nuovo segreto del repository).
- Per Nome digitare ClientSecret.
- Per Valore immettere il segreto dell'applicazione creato in precedenza.
- Selezionare Aggiungi segreto.
Creare un flusso di lavoro GitHub
Il flusso di lavoro di GitHub è una procedura automatizzata aggiunta al repository. I flussi di lavoro sono costituiti da uno o più processi e possono essere pianificati o attivati da un evento. In questo passaggio si crea un flusso di lavoro che distribuisce i criteri personalizzati.
Per creare un flusso di lavoro, seguire questa procedura:
In GitHub passare alla pagina principale del repository.
Sotto il nome del repository selezionare Azioni.
Se in precedenza non è stato configurato un flusso di lavoro, selezionare Configura manualmente un flusso di lavoro. In caso contrario, selezionare Nuovo flusso di lavoro.
GitHub offre di creare un file del flusso di lavoro denominato
main.yml
nella.github/workflows
cartella . Questo file contiene informazioni sul flusso di lavoro, incluso l'ambiente Azure AD B2C e i criteri personalizzati da distribuire. Nell'editor Web GitHub aggiungere il codice YAML seguente: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 }}
Aggiornare le proprietà seguenti del file YAML:
Sezione Nome Valore env
clientId
ID applicazione (client) dell'applicazione registrata nel passaggio Registrare un'applicazione MS Graph . env
tenant
Il nome del tenant di Azure AD B2C, ad esempio contoso.onmicrosoft.com. with
folder
Cartella in cui vengono archiviati i file dei criteri personalizzati, ad esempio ./Policies
.with
files
Elenco delimitato da virgole di file di criteri da distribuire, ad esempio TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml
.Importante
Quando si eseguono gli agenti e si caricano i file dei criteri, assicurarsi che vengano caricati nell'ordine corretto:
- TrustFrameworkBase.xml
- TrustFrameworkLocalization.xml
- TrustFrameworkExtensions.xml
- SignUpOrSignin.xml
- ProfileEdit.xml
- PasswordReset.xml
Selezionare Start commit (Avvia commit).
Sotto i campi del messaggio di commit, indicare se aggiungere il commit al ramo corrente o a un nuovo ramo. Selezionare Commit new file (Esegui commit nuovo file) o Propose new file to create a pull request ( Proponi nuovo file per creare una richiesta pull).
Testare il flusso di lavoro
Per testare il flusso di lavoro creato, eseguire il push delle modifiche dei criteri personalizzati. Dopo aver avviato l'esecuzione del processo, è possibile visualizzare un grafico di visualizzazione dello stato di avanzamento dell'esecuzione e visualizzare l'attività di ogni passaggio in GitHub.
In GitHub passare alla pagina principale del repository.
Sotto il nome del repository selezionare Azioni.
Nella barra laterale sinistra selezionare il flusso di lavoro creato.
In Esecuzioni del flusso di lavoro selezionare il nome dell'esecuzione da visualizzare.
In Processi o nel grafico della visualizzazione selezionare il processo da visualizzare.
Visualizzare i risultati di ogni passaggio. Lo screenshot seguente illustra il log dei passaggi di caricamento dei criteri personalizzati .
Facoltativo: pianificare il flusso di lavoro
Il flusso di lavoro creato viene attivato dall'evento push . Se si preferisce, è possibile scegliere un altro evento per attivare il flusso di lavoro, ad esempio una richiesta pull.
È anche possibile pianificare l'esecuzione di un flusso di lavoro in orari UTC specifici usando la sintassi POSIX cron. L'evento di pianificazione consente di attivare un flusso di lavoro a un'ora pianificata. Per altre informazioni, vedere Eventi pianificati.
L'esempio seguente attiva il flusso di lavoro ogni giorno alle 5:30 e alle 17:30 UTC:
on:
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '30 5,17 * * *'
Per modificare il flusso di lavoro:
In GitHub passare alla pagina principale del repository.
Sotto il nome del repository selezionare Azioni.
Nella barra laterale sinistra selezionare il flusso di lavoro creato.
In Esecuzioni del flusso di lavoro selezionare il nome dell'esecuzione da visualizzare.
Dal menu selezionare i tre puntini ... e quindi selezionare Visualizza il file del flusso di lavoro.
Nell'editor Web GitHub selezionare Modifica.
Passare
on: push
all'esempio precedente.Eseguire il commit delle modifiche.
Passaggi successivi
- Informazioni su come configurare eventi che attivano flussi di lavoro