Microsoft Authentication Library (MSAL) (MSAL) für Go

Note

Microsoft Authentication Library (MSAL) (MSAL) für Go ist eine neue Ergänzung der MSAL-Bibliotheksfamilie. Es wurde in produktionsbereiter Vorschau zur Verfügung gestellt, um das Interesse des Kunden zu messen und Feedback von der Community zu sammeln. Wir begrüßen alle Mitwirkenden (siehe Beitragsrichtlinien im Bibliotheks-Repository), damit wir die Bibliothek verbessern können.

Die Microsoft Authentication Library (MSAL) (MSAL) für Go ist Teil der Microsoft-Identitätsplattform für Entwickler. Sie können Benutzer oder Apps mit Microsoft Identitäten (Azure AD und Microsoft Konten) anmelden und Token abrufen, um APIs wie Microsoft Graph oder Ihre eigenen APIs aufzurufen, die mit dem Microsoft Identity Platform registriert sind. Es wird mithilfe von Branchenstandard-OAuth2- und OpenID Connect-Protokollen erstellt.

Der neueste Code befindet sich in der dev-Verzweigung im GitHub-Repository der Bibliothek.

Installation

Einrichten von Go

Um Go zu installieren, besuchen Sie diesen Link.

Installieren von MSAL Go

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

Usage

Bevor Sie MSAL Go verwenden, müssen Sie Ihre Anwendung bei der Microsoft Identity Platform registrieren.

Öffentliche Oberfläche

Die öffentliche API der Bibliothek finden Sie in den folgenden Verzeichnissen unter apps.

  • confidential – Die vertrauliche Anwendungs-API
  • public – Die öffentliche Anwendungs-API
  • cache – Die Cacheschnittstelle, die implementiert werden kann, um den Persistenzcachespeicher von Anmeldeinformationen bereitzustellen
  • managedidentity – Die verwaltete Identitäts-API

Das Abrufen von Token mit MSAL Go folgt diesem allgemeinen dreistufigen Muster. Es kann einige geringfügige Unterschiede bei anderen Tokenakquisitionsflüssen geben. Hier ist ein einfaches Beispiel:

  1. MSAL trennt öffentliche und vertrauliche Clientanwendungen. Sie würden also eine Instanz eines PublicClientApplication und ConfidentialClientApplication erstellen und sie während der gesamten Lebensdauer Ihrer Anwendung verwenden.

    • Initialisieren eines öffentlichen Clients:
    publicClientApp, err := public.New("client_id", public.WithAuthority("https://login.microsoftonline.com/Enter_The_Tenant_Name_Here"))
    
    • Initialisieren eines vertraulichen Clients:
    // 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"))
    

    informationen zur Verwendung der Verwalteten Identitätsanwendung finden Sie unter verwaltete Identität

  2. MSAL wird mit einem Speichercache verpackt. Die Verwendung des Caches ist optional, es wird jedoch dringend empfohlen.

    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
    }
    

    Wenn im Cache kein geeignetes Token vorhanden ist oder Sie diesen Schritt überspringen möchten, senden Sie eine Anforderung an Azure AD, um ein Token abzurufen. Es gibt verschiedene Methoden zum Abrufen eines Tokens basierend auf Dem Anwendungstyp und Szenario. Hier wird ein Platzhalterflow veranschaulicht.

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

Sie können die Entwicklerbeispiel-Apps für die Verwendung von MSAL Go mit verschiedenen Anwendungstypen in verschiedenen Szenarien anzeigen.

Veröffentlichungen

Eine vollständige Liste der Bibliotheksversionen finden Sie im Abschnitt "Versionen" im Quellcode-Repository der Bibliothek.

Hilfe und Support durch die Community

Wir verwenden Stack Overflow, um mit der Community zusammenzuarbeiten, um Azure Active Directory und seine SDKs zu unterstützen, einschließlich dieser! Es wird dringend empfohlen, Ihre Fragen auf Stack Overflow zu stellen. Sie können auch vorhandene Fragen durchsuchen, um festzustellen, ob zuvor ein Problem aufgetreten ist. Verwenden Sie das azure-ad-msal-Tag, wenn Sie Ihre Fragen stellen.

Wenn Sie einen Fehler finden oder eine Featureanforderung haben, öffnen Sie ein neues Problem im Abschnitt "Probleme ".

Feedback übermitteln

Wenn Sie über Bibliotheksfeedback verfügen, stellen Sie sicher, dass Sie Ihre Featureanforderungen und Fehlerberichte zu GitHub übermitteln.

Sicherheitsbibliothek

Diese Bibliothek steuert, wie Benutzer sich anmelden und auf Dienste zugreifen. Wir empfehlen, nach Möglichkeit die neueste Version unserer Bibliothek in Ihrer App zu verwenden. Wir verwenden die semantische Versionsverwaltung , damit Sie das Risiko steuern können, das mit der Aktualisierung Ihrer App verbunden ist. Beispielsweise stellt das herunterladen der neuesten Nebenversionsnummer (z. B. x.y.x) sicher, dass Sie die neuesten Sicherheits- und Featureverbesserungen erhalten, aber unsere API-Oberfläche bleibt gleich. Auf GitHub können Sie immer die neuesten Versions- und Versionshinweise unter der Registerkarte "Versionen" anzeigen.

Sicherheitsberichte

Wenn Sie ein Sicherheitsproblem mit unseren Bibliotheken oder Diensten finden, melden Sie es secure@microsoft.com mit möglichst vielen Details. Ihre Einreichung kommt möglicherweise im Rahmen des Microsoft Bounty-Programms für eine Prämie infrage. Bitte veröffentlichen Sie keine Sicherheitsprobleme in GitHub Issues oder auf einer anderen öffentlichen Website. Wir werden Sie kurz nach Erhalt der Informationen kontaktieren. Wir empfehlen Ihnen, Benachrichtigungen darüber zu erhalten, wann Sicherheitsvorfälle auftreten, indem Sie diese Seite besuchen und Sicherheitsempfehlungswarnungen abonnieren.