Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Note
Microsoft Authentication Library (MSAL) для Go — это новое дополнение к семейству библиотек MSAL. Он был доступен в рабочей предварительной версии, чтобы оценить интерес клиентов и собрать отзывы от сообщества. Мы приветствуем всех участников (см. рекомендации по вкладу в репозитории библиотеки), чтобы помочь нам улучшить библиотеку.
Microsoft Authentication Library (MSAL) для Go является частью платформа удостоверений Майкрософт для разработчиков. Он позволяет выполнять вход пользователей и приложений с помощью удостоверений Microsoft (Azure AD и учетные записи Microsoft) и получать токены для вызова API, такие как Microsoft Graph или ваши собственные API, зарегистрированные в платформе удостоверений Майкрософт. Он построен с использованием стандартных протоколов OAuth2 и OpenID Connect.
Последняя версия кода находится в devветке в GitHub-репозитории библиотеки.
Installation
Настройка Go
Чтобы установить Go, перейдите по этой ссылке.
Установка MSAL Go
go get -u github.com/AzureAD/microsoft-authentication-library-for-go/
Usage
Перед использованием MSAL Go необходимо зарегистрировать приложение с помощью платформа удостоверений Майкрософт.
Общедоступная поверхность
Публичный API библиотеки можно найти в следующих каталогах в apps.
-
confidential— API конфиденциального приложения -
public— API общедоступного приложения -
cache— интерфейс кеша, который можно использовать для реализации постоянного хранения учетных данных в кеше -
managedidentity— API управляемой идентификации
Получение токенов с помощью MSAL Go обычно выполняется по следующей общей трехэтапной схеме. В других сценариях получения токенов могут быть небольшие различия. Ниже приведен базовый пример:
MSAL отделяет общедоступные и конфиденциальные клиентские приложения. Итак, вы должны создать экземпляр
PublicClientApplicationиConfidentialClientApplicationи использовать его на протяжении всего времени работы приложения.- Инициализация общедоступного клиента:
publicClientApp, err := public.New("client_id", public.WithAuthority("https://login.microsoftonline.com/Enter_The_Tenant_Name_Here"))- Инициализация конфиденциального клиента:
// 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"))Сведения об использовании приложения управляемого удостоверения см. в разделе "Управляемое удостоверение"
MSAL поставляется с кэшем в памяти. Использование кэша является необязательным, но мы настоятельно рекомендуем его использовать.
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 }Если в кэше нет подходящего маркера или вы решили пропустить этот шаг, отправьте запрос на Azure AD для получения маркера. Существуют различные способы получения токена в зависимости от типа приложения и сценария использования. Здесь мы демонстрируем поток заполнителей.
result, err := publicClientApp.AcquireTokenByOneofTheActualMethods([]string{"your_scope"}, ...(other parameters depending on the function)) if err != nil { log.Fatal(err) } accessToken := result.AccessToken
Вы можете посмотреть примеры приложений для разработчиков, чтобы узнать, как использовать MSAL Go с различными типами приложений в разных сценариях.
Релизы
Полный список выпусков библиотек см. в разделе "Выпуски " в репозитории исходного кода библиотеки.
Помощь сообщества и поддержка
Мы используем Stack Overflow для работы с сообществом по поддержке Azure Active Directory и его пакетов SDK, включая этот! Мы настоятельно рекомендуем задать свои вопросы в Stack Overflow. Вы также можете просмотреть существующие вопросы, чтобы узнать, столкнулся ли кто-то с проблемой раньше. При появлении вопросов используйте azure-ad-msal тег.
Если вы нашли ошибку или запрос на функцию, откройте новую проблему в разделе "Проблемы ".
Отправка отзывов
Если у вас есть отзывы о библиотеке, отправьте запросы на функции и отчеты об ошибках на GitHub.
Библиотека безопасности
Эта библиотека управляет тем, как пользователи входят в систему и получают доступ к службам. Мы рекомендуем использовать последнюю версию библиотеки в приложении, когда это возможно. Мы используем семантическое управление версиями , чтобы управлять риском, связанным с обновлением приложения. Например, если вы всегда скачиваете последнюю минорную версию (например, x.y.x), это гарантирует, что вы получаете последние обновления безопасности и новые функции, при этом интерфейс API остается прежним. Заметки о последней версии и выпуске всегда отображаются на вкладке "Выпуски" GitHub.
Отчеты о безопасности
Если вы найдете проблему безопасности с нашими библиотеками или службами, сообщите о ней secure@microsoft.com максимально подробно. Ваша отправка может иметь право на награду в рамках программы Microsoft Bounty . Пожалуйста, не публикуйте проблемы, связанные с безопасностью, в GitHub Issues или на любом другом общедоступном сайте. Мы свяжемся с вами вскоре после получения информации. Мы рекомендуем получать уведомления о возникновении инцидентов безопасности, перейдя на эту страницу и подписавшись на оповещения рекомендаций по безопасности.