Identity a ověřování Microsoftu (MSAL) pro Go

Note

Identity a ověřování Microsoftu (MSAL) pro Go je novým doplňkem řady knihoven MSAL. Tato verze byla zpřístupněna v produkční verzi Preview, aby se změřila zájem zákazníků a shromáždila zpětnou vazbu od komunity. Vítáme všechny přispěvatele (viz pokyny pro přispívání v úložišti knihoven), abychom mohli knihovnu vylepšit.

Identity a ověřování Microsoftu (MSAL) pro Go je součástí Microsoft identity platform pro vývojáře. Umožňuje přihlásit se uživatele nebo aplikace s identitami Microsoft (Azure AD a účty Microsoft) a získat tokeny pro volání rozhraní API, jako jsou Microsoft Graph nebo vlastní rozhraní API zaregistrovaná v Microsoft identity platform. Je postaveno na standardních oborových protokolech OAuth2 a OpenID Connect.

Nejnovější kód se nachází ve dev větvi v úložišti knihovny GitHub.

Instalace

Nastavení Go

Pokud chcete nainstalovat Go, přejděte na tento odkaz.

Instalace MSAL pro Go

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

Využití

Než začnete používat MSAL Go, budete muset aplikaci zaregistrovat v Microsoft identity platform.

Veřejný povrch

Veřejné rozhraní API knihovny najdete v následujících adresářích v části apps.

  • confidential – Důvěrné rozhraní API aplikace
  • public – Veřejné aplikační API
  • cache – Rozhraní mezipaměti, které lze implementovat pro zajištění perzistentního úložiště mezipaměti pro přihlašovací údaje
  • managedidentity – Rozhraní API spravované identity

Získání tokenů pomocí MSAL Go se řídí tímto obecným vzorem tří kroků. U jiných toků získávání tokenů může docházet k mírným rozdílům. Tady je základní příklad:

  1. MSAL odděluje veřejné a důvěrné klientské aplikace. Takže byste vytvořili instanci objektu PublicClientApplication a ConfidentialClientApplication používali ji po celou dobu životnosti vaší aplikace.

    • Inicializace veřejné klientské aplikace:
    publicClientApp, err := public.New("client_id", public.WithAuthority("https://login.microsoftonline.com/Enter_The_Tenant_Name_Here"))
    
    • Inicializace důvěrné klientské aplikace:
    // 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"))
    

    informace o používání aplikace využívající spravovanou identitu naleznete v tématu spravovaná identita

  2. Knihovna MSAL obsahuje mezipaměť v paměti. Využití mezipaměti je volitelné, ale důrazně bychom ji doporučili.

    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
    }
    

    Pokud v mezipaměti není vhodný token nebo se rozhodnete tento krok přeskočit, odešlete žádost o získání tokenu Azure AD. Existují různé metody získání tokenu na základě typu a scénáře vaší aplikace. Tady předvedeme zástupný tok.

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

Ukázkové aplikace pro vývojáře si můžete prohlédnout, jak používat MSAL Go s různými typy aplikací v různých scénářích.

Vydání

Úplný seznam vydaných verzí knihovny najdete v části Vydané verze v úložišti zdrojového kódu knihovny.

Nápověda a technická podpora komunity

Stack Overflow používáme ke spolupráci s komunitou na podpoře Azure Active Directory a jejích sad SDK, včetně této. Důrazně doporučujeme, abyste své dotazy pokládali na Stack Overflow. Můžete také procházet existující otázky a zjistit, jestli se někdo dříve s problémem setkal. Při kladení otázek prosím použijte azure-ad-msal značku.

Pokud najdete chybu nebo máte žádost o funkci, otevřete nový problém v části Problémy .

Odeslat názor

Pokud máte zpětnou vazbu ke knihovně, nezapomeňte odeslat žádosti o funkce a hlášení o chybách na GitHub.

Bezpečnostní knihovna

Tato knihovna určuje, jak se uživatelé přihlašují a přistupují ke službám. Pokud je to možné, doporučujeme ve vaší aplikaci používat nejnovější verzi naší knihovny. Používáme sémantickou správu verzí , abyste mohli řídit riziko spojené s aktualizací aplikace. Například stahování nejnovější vedlejší verze (např. x.y.x) zajišťuje, že získáte nejnovější bezpečnostní vylepšení a nové funkce, ale rozhraní API zůstává stejné. Nejnovější verzi a poznámky k verzi najdete na kartě Vydané verze na GitHub.

Hlášení o zabezpečení

Pokud zjistíte problém se zabezpečením našich knihoven nebo služeb, nahlaste ho secure@microsoft.com s co nejvíce podrobnostmi. Vaše odeslání může být způsobilé pro bounty prostřednictvím programu Microsoft Bounty. Nezveřejňujte bezpečnostní problémy na GitHub Issues ani na žádném jiném veřejně přístupném webu. Brzy vás budeme kontaktovat při přijetí informací. Doporučujeme vám dostávat oznámení o výskytu incidentů zabezpečení tak, že navštívíte tuto stránku a přihlásíte se k odběru výstrah poradce pro zabezpečení.