Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Пользователям необходимо пройти проверку подлинности с помощью идентификатора Microsoft Entra, чтобы Microsoft Graph получить доступ к данным организации. В этом упражнении вы узнаете, как компонент Microsoft Graph Toolkit mgt-login можно использовать для проверки подлинности пользователей и получения маркера доступа. Затем маркер доступа можно использовать для вызова Microsoft Graph.
Замечание
Если вы не знакомы с Microsoft Graph, вы можете узнать больше об этом в схеме обучения Microsoft Graph.
В этом упражнении вы выполните следующие действия.
- Узнайте, как связать приложение Идентификатора Microsoft Entra с Microsoft Graph Toolkit для проверки подлинности пользователей и получения данных организации.
- Узнайте о важности областей.
- Узнайте, как компонент mgt-login Microsoft Graph Toolkit можно использовать для проверки подлинности пользователей и получения маркера доступа.
Использование функции входа
В предыдущем упражнении вы создали регистрацию приложения в идентификаторе Microsoft Entra и запустили сервер приложений и сервер API. Вы также обновили следующие значения в
.envфайле (TEAM_IDиCHANNEL_IDявляются необязательными):ENTRAID_CLIENT_ID=<APPLICATION_CLIENT_ID_VALUE> TEAM_ID=<TEAMS_TEAM_ID> CHANNEL_ID=<TEAMS_CHANNEL_ID>Прежде чем продолжить, убедитесь, что вы выполнили предыдущее упражнение .
Вернитесь в браузер (http://localhost:4200), выберите вход в заголовок и войдите с помощью учетной записи пользователя администратора из клиента разработчика Microsoft 365.
Подсказка
Войдите с помощью учетной записи администратора клиента разработчика Microsoft 365. Вы можете просмотреть других пользователей в клиенте разработчика, перейдя в Центр администрирования Microsoft 365.
Если вы впервые вошли в приложение, вам будет предложено предоставить согласие на разрешения, запрошенные приложением. Дополнительные сведения об этих разрешениях (также называемых "областями") см. в следующем разделе при изучении кода. Нажмите кнопку "Принять ", чтобы продолжить.
После входа в систему вы увидите имя пользователя, отображаемого в заголовке.
Изучение кода входа
Теперь, когда вы вошли, давайте рассмотрим код, используемый для входа пользователя и получения маркера доступа и профиля пользователя. Вы узнаете о веб-компоненте mgt-login , который входит в состав Microsoft Graph Toolkit.
Подсказка
Если вы используете Visual Studio Code, вы можете открывать файлы напрямую, выбрав:
- Windows/Linux: CTRL +P
- Mac: Cmd + P
Затем введите имя файла, который нужно открыть.
Откройте клиент илиpackage.json и обратите внимание, что
@microsoft/mgtв зависимости включены и@microsoft/mgt-componentsпакеты. Пакет@microsoft/mgtсодержит функции поставщика MSAL (библиотека проверки подлинности Майкрософт) и веб-компоненты, такие как mgt-login и другие, которые можно использовать для входа пользователей и получения и отображения данных организации.Откройте клиент или src/main.ts и обратите внимание на следующие импорты из
@microsoft/mgt-componentsпакета. Импортированные символы используются для регистрации компонентов Microsoft Graph Toolkit, используемых в приложении.import { registerMgtLoginComponent, registerMgtSearchResultsComponent, registerMgtPersonComponent, } from '@microsoft/mgt-components';Прокрутите внизу файла и запишите следующий код:
registerMgtLoginComponent(); registerMgtSearchResultsComponent(); registerMgtPersonComponent();Этот код регистрирует
mgt-loginиmgt-search-resultsвеб-компоненты иmgt-personвключает их для использования в приложении.Чтобы использовать компонент mgt-login для входа пользователей, необходимо ссылаться на и использовать идентификатор клиента приложения Microsoft Entra ID (хранящегося в env-файле как
ENTRAID_CLIENT_ID).Откройте graph.service.ts и найдите функцию
init(). Полный путь к файлу — client/src/app/core/graph.service.ts. Вы увидите следующий импорт и код:import { Msal2Provider, Providers, ProviderState } from '@microsoft/mgt'; init() { if (!this.featureFlags.microsoft365Enabled) return; if (!Providers.globalProvider) { console.log('Initializing Microsoft Graph global provider...'); Providers.globalProvider = new Msal2Provider({ clientId: ENTRAID_CLIENT_ID, scopes: ['User.Read', 'Presence.Read', 'Chat.ReadWrite', 'Calendars.Read', 'ChannelMessage.Read.All', 'ChannelMessage.Send', 'Files.Read.All', 'Mail.Read'] }); } else { console.log('Global provider already initialized'); } }Этот код создает новый
Msal2Providerобъект, передав идентификатор клиента Microsoft Entra ID из регистрации приложения, аscopesтакже идентификатор, для которого приложение запрашивает доступ. Ониscopesиспользуются для запроса доступа к ресурсам Microsoft Graph, к которым будет обращаться приложение.Msal2ProviderПосле создания объекта он назначаетсяProviders.globalProviderобъекту, который используется компонентами Microsoft Graph Toolkit для получения данных из Microsoft Graph.Откройте header.component.html в редакторе и найдите компонент mgt-login . Полный путь к файлу — client/src/app/header/header.component.html.
@if (this.featureFlags.microsoft365Enabled) { <mgt-login class="mgt-dark" (loginCompleted)="loginCompleted()"></mgt-login> }Компонент mgt-login включает вход пользователя и предоставляет доступ к маркеру, используемому с Microsoft Graph. После успешного входа
loginCompletedсобытие активируется, которое вызывает функциюloginCompleted(). Хотя mgt-login используется в компоненте Angular в этом примере, он совместим с любым веб-приложением.Отображение компонента mgt-login зависит от заданного
featureFlags.microsoft365Enabledtrueзначения. Этот пользовательский флаг проверяет наличие переменнойENTRAID_CLIENT_IDсреды, чтобы убедиться, что приложение правильно настроено и может пройти проверку подлинности в идентификаторе Microsoft Entra. Флаг добавляется для размещения случаев, когда пользователи предпочитают выполнять только упражнения ИИ или коммуникации в рамках руководства, а не после всей последовательности упражнений.Откройте header.component.ts и найдите функцию
loginCompleted. Эта функция вызывается, когдаloginCompletedсобытие создается и обрабатывает извлечение вошедшего в систему профиля пользователя с помощьюProviders.globalProvider.async loginCompleted() { const me = await Providers.globalProvider.graph.client.api('me').get(); this.userLoggedIn.emit(me); }В этом примере вызов выполняется в API Microsoft Graph
meдля получения профиля пользователя (meпредставляет текущего вошедшего пользователя). Операторthis.userLoggedIn.emit(me)кода выдает событие из компонента для передачи данных профиля родительскому компоненту. Родительский компонент — это app.component.ts файл в данном случае, который является корневым компонентом для приложения.Дополнительные сведения о компоненте mgt-login см. в документации по Microsoft Graph Toolkit .
Теперь, когда вы вошли в приложение, давайте рассмотрим, как можно получить данные организации.