Libreria di Autenticazione Microsoft (MSAL) per il linguaggio Go

Note

Libreria di Autenticazione Microsoft (MSAL) per Go è una nuova aggiunta alla famiglia di librerie MSAL. È stata resa disponibile nell'anteprima pronta per la produzione per misurare l'interesse dei clienti e raccogliere feedback dalla community. Tutti i collaboratori (vedere linee guida per i contributi nel repository di librerie) sono invitati a migliorare la libreria.

Il Libreria di Autenticazione Microsoft (MSAL) per Go fa parte del Microsoft Identity Platform per sviluppatori. Consente di accedere a utenti o app con identità Microsoft (Azure AD e account Microsoft) e ottenere token per chiamare API, ad esempio Microsoft Graph o le proprie API registrate con il Microsoft Identity Platform. Viene compilato usando protocolli OAuth2 e OpenID Connect standard del settore.

Il codice più recente risiede nel dev ramo nella libreria GitHub repository.

Installazione

Configurazione di Go

Per installare Go, visitare questo collegamento.

Installazione di MSAL Go

go get -u github.com/AzureAD/microsoft-authentication-library-for-go/

Utilizzo

Prima di usare MSAL Go, è necessario registrare l'applicazione con il Microsoft Identity Platform.

Superficie pubblica

L'API pubblica della libreria si trova nelle seguenti directory sotto apps.

  • confidential - API dell'applicazione riservata
  • public - API dell'applicazione pubblica
  • cache - Interfaccia della cache che può essere implementata per fornire l'archiviazione della cache di persistenza delle credenziali
  • managedidentity - API dell'identità gestita

L'acquisizione di token con MSAL Go segue questo modello generale a tre passaggi. Potrebbero esserci alcune lievi differenze per altri flussi di acquisizione di token. Ecco un esempio di base:

  1. MSAL separa le applicazioni client pubbliche e riservate. Quindi, creeresti un'istanza di PublicClientApplication e ConfidentialClientApplication e la useresti per l'intero ciclo di vita dell'applicazione.

    • Inizializzazione di un client pubblico:
    publicClientApp, err := public.New("client_id", public.WithAuthority("https://login.microsoftonline.com/Enter_The_Tenant_Name_Here"))
    
    • Inizializzazione di un client riservato:
    // Initializing the client credential
    cred, err := confidential.NewCredFromSecret("client_secret")
    if err != nil {
        return nil, fmt.Errorf("could not create a cred from a secret: %w", err)
    }
    confidentialClientApp, err := confidential.New("client_id", cred, confidential.WithAuthority("https://login.microsoftonline.com/Enter_The_Tenant_Name_Here"))
    

    Per usare l'applicazione Managed Identity, vedi Managed Identity

  2. MSAL viene incluso in un pacchetto con una cache in memoria. L'uso della cache è facoltativo, ma è consigliabile.

    var userAccount public.Account
    accounts := publicClientApp.Accounts()
    if len(accounts) > 0 {
        // Assuming the user wanted the first account
        userAccount = accounts[0]
        // found a cached account, now see if an applicable token has been cached
        result, err := publicClientApp.AcquireTokenSilent(context.Background(), []string{"your_scope"}, public.WithSilentAccount(userAccount))
        accessToken := result.AccessToken
    }
    

    Se nella cache non è presente alcun token appropriato o si sceglie di ignorare questo passaggio, inviare una richiesta a Azure AD per ottenere un token. Esistono diversi metodi per acquisire un token in base al tipo e allo scenario dell'applicazione. In questo caso viene illustrato un flusso segnaposto.

    result, err := publicClientApp.AcquireTokenByOneofTheActualMethods([]string{"your_scope"}, ...(other parameters depending on the function))
    if err != nil {
        log.Fatal(err)
    }
    accessToken := result.AccessToken
    

È possibile visualizzare le app di esempio per sviluppatori su come usare MSAL Go con vari tipi di applicazione in vari scenari.

Rilasci

Per un elenco completo delle versioni della libreria, vedere la sezione Versioni nel repository del codice sorgente della libreria.

Supporto e guida della community

Stack Overflow viene usato per collaborare con la community per supportare Azure Active Directory e gli SDK, incluso questo. È consigliabile porre domande su Stack Overflow. È anche possibile esplorare le domande esistenti per verificare se qualcuno ha riscontrato il problema in precedenza. Usare il azure-ad-msal tag per porre domande.

Se si trova un bug o si dispone di una richiesta di funzionalità, aprire un nuovo problema nella sezione Problemi .

Invia commenti

Se si hanno commenti e suggerimenti sulla libreria, assicurarsi di inviare le richieste di funzionalità e i report sui bug su GitHub.

Libreria di sicurezza

Questa libreria controlla il modo in cui gli utenti accedono e accedono ai servizi. Ti consigliamo di usare la versione più recente della libreria nella tua app, quando possibile. Usiamo il controllo delle versioni semantiche per controllare il rischio associato all'aggiornamento dell'app. Ad esempio, scaricare sempre il numero di versione secondaria più recente (ad esempio x.y.x) garantisce di ottenere i miglioramenti più recenti per la sicurezza e le funzionalità, ma la superficie dell'API rimane invariata. È sempre possibile visualizzare le note sulla versione e sulla versione più recenti nella scheda Versioni di GitHub.

Creazione di report sulla sicurezza

Se si riscontra un problema di sicurezza con le librerie o i servizi, segnalarlo con secure@microsoft.com il maggior numero di dettagli possibile. La segnalazione potrebbe essere idonea a un premio tramite il programma Microsoft Bounty. Non pubblicare problemi di sicurezza su GitHub Issues o su qualsiasi altro sito pubblico. Ti contatteremo poco dopo aver ricevuto le informazioni. È consigliabile ricevere notifiche relative ai casi in cui si verificano eventi imprevisti di sicurezza visitando questa pagina e sottoscrivendo gli avvisi di avviso di sicurezza.