Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Note
Microsoft Authentication Library (MSAL) pour Go est un nouvel ajout à la famille de bibliothèques MSAL. Il a été mis à disposition en préversion prête pour la production pour évaluer l’intérêt des clients et recueillir des commentaires de la communauté. Nous accueillons tous les contributeurs (consultez les instructions de contribution dans le référentiel de bibliothèques) pour nous aider à améliorer la bibliothèque.
La Microsoft Authentication Library (MSAL) pour Go fait partie de la Plateforme d'identités Microsoft pour développeurs. Il vous permet de connecter des utilisateurs ou des applications avec des identités Microsoft (Azure AD et des comptes Microsoft) et d’obtenir des jetons pour appeler des API telles que Microsoft Graph ou vos propres API inscrites auprès du Plateforme d'identités Microsoft. Il est conçu à l’aide des protocoles OAuth2 et OpenID Connect standard du secteur.
Le code le plus récent se trouve dans la branche dev du dépôt GitHub de la bibliothèque.
Installation
Configuration de Go
Pour installer Go, visitez ce lien.
Installation de MSAL Go
go get -u github.com/AzureAD/microsoft-authentication-library-for-go/
Usage
Avant d’utiliser MSAL Go, vous devez inscrire votre application auprès du Plateforme d'identités Microsoft.
Surface publique
L’API publique de la bibliothèque se trouve dans les répertoires suivants sous apps.
-
confidential- API d’application confidentielle -
public- API d’application publique -
cache- Interface de cache qui peut être implémentée pour fournir un stockage de cache de persistance des informations d’identification -
managedidentity- API d’identité managée
L’acquisition de jetons avec MSAL Go suit ce modèle général en trois étapes. Il peut y avoir de légères différences pour d’autres flux d’acquisition de jetons. Voici un exemple de base :
MSAL sépare les applications clientes publiques et confidentielles. Vous allez donc créer une instance d’un
PublicClientApplicationet d’unConfidentialClientApplication, et les utiliser pendant toute la durée de vie de votre application.- Initialisation d’un client public :
publicClientApp, err := public.New("client_id", public.WithAuthority("https://login.microsoftonline.com/Enter_The_Tenant_Name_Here"))- Initialisation d’un client confidentiel :
// 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"))pour utiliser l’application d’identité managée, voir identité managée
MSAL est fourni avec un cache en mémoire. L’utilisation du cache est facultative, mais nous vous recommandons vivement.
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 }S'il n'existe aucun jeton approprié dans le cache, ou si vous choisissez d'ignorer cette étape, envoyez une demande à Azure AD pour obtenir un jeton. Il existe différentes méthodes pour acquérir un jeton en fonction du type et du scénario de votre application. Ici, nous présentons un flux de substitution.
result, err := publicClientApp.AcquireTokenByOneofTheActualMethods([]string{"your_scope"}, ...(other parameters depending on the function)) if err != nil { log.Fatal(err) } accessToken := result.AccessToken
Vous pouvez afficher les exemples d’applications de développeur sur l’utilisation de MSAL Go avec différents types d’applications dans différents scénarios.
Mises à jour
Pour obtenir la liste complète des versions de bibliothèque, reportez-vous à la section Versions du référentiel de code source de la bibliothèque.
Aide et support communautaire
Nous utilisons Stack Overflow pour travailler avec la communauté sur la prise en charge des Azure Active Directory et de ses kits SDK, y compris celui-ci ! Nous vous recommandons vivement de poser vos questions sur Stack Overflow. Vous pouvez également parcourir les questions existantes pour voir si quelqu’un a rencontré le problème avant. Utilisez la azure-ad-msal balise lorsque vous posez vos questions.
Si vous trouvez un bogue ou si vous avez une demande de fonctionnalité, ouvrez un nouveau problème dans la section Problèmes .
Envoyer des commentaires
Si vous avez des commentaires sur la bibliothèque, veillez à envoyer vos demandes de fonctionnalités et rapports de bogues sur GitHub.
Bibliothèque de sécurité
Cette bibliothèque contrôle la façon dont les utilisateurs se connectent et accèdent aux services. Nous vous recommandons d’utiliser la dernière version de notre bibliothèque dans votre application lorsque cela est possible. Nous utilisons le contrôle de version sémantique pour contrôler le risque associé à la mise à jour de votre application. Par exemple, le téléchargement du dernier numéro de version mineure (par exemple, x.y.x) vous permet d’obtenir les dernières améliorations de la sécurité et des fonctionnalités, mais notre surface d’API reste la même. Vous pouvez toujours voir les dernières versions et notes de publication sous l’onglet Versions de GitHub.
Rapports de sécurité
Si vous rencontrez un problème de sécurité avec nos bibliothèques ou services, signalez-le secure@microsoft.com avec autant de détails que possible. Votre soumission peut être éligible à une prime par le biais du programme Microsoft Bounty . Veuillez ne pas signaler de problèmes de sécurité sur GitHub Issues ni sur tout autre site public. Nous vous contacterons prochainement lors de la réception des informations. Nous vous encourageons à recevoir des notifications lorsque des incidents de sécurité se produisent en visitant cette page et en vous abonnant aux alertes de conseil de sécurité.