Microsoft Authentication Library (MSAL) voor Go

Note

Microsoft Authentication Library (MSAL) voor Go is een nieuwe toevoeging aan de MSAL-serie bibliotheken. Het is beschikbaar gesteld in de preview-versie die gereed is voor productie om de interesse van klanten te meten en feedback van de community te verzamelen. We verwelkomen alle inzenders (zie richtlijnen voor bijdragen in de bibliotheekopslagplaats) om ons te helpen de bibliotheek te verbeteren.

De Microsoft Authentication Library (MSAL) voor Go maakt deel uit van de Microsoft identity platform voor ontwikkelaars. Hiermee kunt u gebruikers of apps met Microsoft identiteiten (Azure AD- en Microsoft-accounts) aanmelden en tokens verkrijgen om API's aan te roepen, zoals Microsoft Graph of uw eigen API's die zijn geregistreerd bij de Microsoft identity platform. Het is gebouwd met behulp van industriestandaard OAuth2- en OpenID Connect-protocollen.

De meest recente code bevindt zich in de dev branch van de library GitHub-repository.

Installatie

Go installeren

Als u Go wilt installeren, gaat u naar deze koppeling.

MSAL Go installeren

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

Gebruik

Voordat u MSAL Go gebruikt, moet u uw toepassing registreren bij de Microsoft identity platform.

Openbaar oppervlak

De openbare API van de bibliotheek vindt u in de volgende mappen onder apps.

  • confidential - De API voor vertrouwelijke toepassingen
  • public - De API voor openbare toepassingen
  • cache - De cache-interface die kan worden geïmplementeerd om persistentiecacheopslag van referenties te bieden
  • managedidentity - De API voor beheerde identiteit

Het verkrijgen van tokens met MSAL Go volgt dit algemene driestapspatroon. Er kunnen enkele kleine verschillen zijn voor andere tokenverwervingsstromen. Hier volgt een basisvoorbeeld:

  1. MSAL scheidt openbare en vertrouwelijke clienttoepassingen. U maakt dus een exemplaar van een PublicClientApplication en ConfidentialClientApplication gebruikt dit gedurende de hele levensduur van uw toepassing.

    • Een openbare client initialiseren:
    publicClientApp, err := public.New("client_id", public.WithAuthority("https://login.microsoftonline.com/Enter_The_Tenant_Name_Here"))
    
    • Een vertrouwelijke client initialiseren:
    // 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"))
    

    Zie Managed Identity voor het gebruik van de toepassing Managed Identity.

  2. MSAL wordt geleverd met een cache in het geheugen. Het gebruik van de cache is optioneel, maar we raden het ten zeerste aan.

    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
    }
    

    Als er geen geschikt token in de cache staat of als u deze stap wilt overslaan, stuurt u een aanvraag naar Azure AD om een token te verkrijgen. Er zijn verschillende methoden om een token te verkrijgen op basis van uw toepassingstype en scenario. Hier demonstreren we een plaatsaanduidingsflow.

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

U kunt de voorbeeld-apps voor ontwikkelaars bekijken over het gebruik van MSAL Go met verschillende toepassingstypen in verschillende scenario's.

Uitgaven

Raadpleeg de sectie Releases in de bibliotheekbroncodeopslagplaats voor een volledige lijst met bibliotheekreleases.

Help en ondersteuning uit de community

We gebruiken Stack Overflow om samen te werken met de community voor het ondersteunen van Azure Active Directory en de bijbehorende SDK's, waaronder deze! We raden u ten zeerste aan uw vragen te stellen over Stack Overflow. U kunt ook door bestaande vragen bladeren om te zien of iemand het probleem eerder heeft aangetroffen. Gebruik de tag bij het azure-ad-msal stellen van uw vragen.

Als u een bug vindt of een functieaanvraag hebt, opent u een nieuw probleem in de sectie Problemen .

Feedback verzenden

Als u bibliotheekfeedback hebt, moet u uw functieaanvragen en foutenrapporten indienen op GitHub.

Beveiligingsbibliotheek

Deze bibliotheek bepaalt hoe gebruikers zich aanmelden en toegang krijgen tot services. We raden u aan waar mogelijk de nieuwste versie van onze bibliotheek in uw app te gebruiken. We gebruiken semantische versiebeheer , zodat u het risico kunt beheren dat is gekoppeld aan het bijwerken van uw app. Als voorbeeld zorgt het altijd downloaden van het meest recente secundaire versienummer (bijvoorbeeld x.y.x) ervoor dat u de nieuwste beveiligings- en functieverbeteringen krijgt, maar ons API-oppervlak blijft hetzelfde. U kunt altijd de nieuwste versie en releaseopmerkingen zien op het tabblad Releases op GitHub.

Beveiligingsrapportage

Als u een beveiligingsprobleem met onze bibliotheken of services vindt, kunt u dit zo secure@microsoft.com gedetailleerd mogelijk melden. Uw inzending komt mogelijk in aanmerking voor een premie via het Microsoft Bounty-programma. Plaats geen beveiligingsproblemen in GitHub Issues of op een andere openbare site. Wij zullen binnenkort contact met u opnemen na ontvangst van de informatie. We raden u aan meldingen te ontvangen wanneer er beveiligingsincidenten optreden door naar deze pagina te gaan en u te abonneren op beveiligingsadvieswaarschuwingen.