Поделиться через


Включение единого входа для приложения Teams

Microsoft Teams предоставляет функцию единого входа (SSO) для приложения, чтобы получить маркер пользователя Teams для доступа к Microsoft Graph и другим API. Набор средств Microsoft Teams упрощает процесс, включив определенные Microsoft Entra рабочие процессы и интеграции в простые высокоуровневые API. В результате вы можете легко включить возможности единого входа в приложение Teams. Дополнительные сведения см. в статье Проверка подлинности пользователей в Microsoft Teams.

Конфигурации ключей

Чтобы включить единый вход, настройте приложение Teams следующим образом:

  • Microsoft Entra манифесте приложения: обязательно определите URI, включая URI, который определяет приложение проверки подлинности Microsoft Entra и URI перенаправления, возвращающий маркер.

  • Манифест приложения Teams. Подключите приложение единого входа к приложению Teams, включив правильную конфигурацию.

  • Конфигурация Teams Toolkit и инфра-файлы. Убедитесь, что существуют необходимые конфигурации, чтобы включить единый вход для приложения Teams.

  • Сведения о приложении единого входа в файлах конфигурации Teams Toolkit. Убедитесь, что приложение проверки подлинности регистрируется в серверной службе, а набор средств Teams инициирует его во время отладки или предварительного просмотра приложения Teams.

Создание манифеста приложения Microsoft Entra

  1. Скачайте шаблон манифеста приложения Microsoft Entra.

  2. Добавьте в файл скачанный код шаблона манифеста ./aad.manifest.json приложения. Это позволяет настраивать различные аспекты регистрации приложения и обновлять манифест по мере необходимости. Дополнительные сведения см. в манифесте приложения.

Обновление манифеста приложения Teams

./appPackages/manifest.json Добавьте в файл следующий код:

"webApplicationInfo": {
  "id": "${{AAD_APP_CLIENT_ID}}",
  "resource": "api://${{TAB_DOMAIN}}/${{AAD_APP_CLIENT_ID}}"
}

webApplicationInfoпредоставляет Microsoft Entra идентификатор приложения и сведения о Microsoft Graph, чтобы помочь пользователям войти в приложение.

Примечание.

Можно использовать для {{ENV_NAME}} ссылки на переменные в env/.env.{TEAMSFX_ENV} файле.

Обновление файлов конфигурации набора средств Teams

  1. Найдите файлы конфигурации набора средств Teams, например ./teamsapp.yml и ./teamsapp.local.yml. Обновите необходимые конфигурации, связанные с Microsoft Entra в этих файлах.

  2. Добавьте действие provision в и ./teamsapp.yml./teamsapp.local.yml, чтобы создать новое приложение Microsoft Entra, используемое для единого aadApp/create входа:

    - uses: aadApp/create
      with:
        name: "YOUR_AAD_APP_NAME"
        generateClientSecret: true
        signInAudience: "AzureADMyOrg"
      writeToEnvironmentFile:
          clientId: AAD_APP_CLIENT_ID
          clientSecret: SECRET_AAD_APP_CLIENT_SECRET
          objectId: AAD_APP_OBJECT_ID
          tenantId: AAD_APP_TENANT_ID
          authority: AAD_APP_OAUTH_AUTHORITY
    

    Примечание.

    Замените name значение нужным именем для приложения Teams.

    Дополнительные сведения см. в разделе aadApp/create.

  3. aadApp/update Добавьте действие provision в и ./teamsapp.yml./teamsapp.local.yml, чтобы обновить приложение Microsoft Entra:

    - uses: aadApp/update
      with:
        manifestPath: "./aad.manifest.json"
        outputFilePath: "./build/aad.manifest.${{TEAMSFX_ENV}}.json"
    

    Примечание.

    • Измените manifestPath значение на относительный путь к шаблону aad.manifest.jsonманифеста приложения Microsoft Entra , если вы изменили путь к файлу.
    • В локальной конфигурации разместите aad/updatefile/createOrUpdateEnvironmentFile после действия . Это необходимо, так как aad/update использует выходные данные из file/createOrUpdateEnvironmentFile.

    Дополнительные сведения см. в разделе aadApp/update

  4. Для проекта React обновите cli/runNpmCommand в разделе deploy.

  5. Если вы создаете приложение вкладки с помощью платформы React в CLI, найдите cli/runNpmCommand действие с build app в teamsapp.yml файле и добавьте следующие переменные среды:

    env:
      REACT_APP_CLIENT_ID: ${{AAD_APP_CLIENT_ID}}
      REACT_APP_START_LOGIN_PAGE_URL: ${{TAB_ENDPOINT}}/auth-start.html
    
  6. Если вы создаете приложение вкладки с React платформой, найдите file/createOrUpdateEnvironmentFile действие для развертывания в teamsapp.local.yml файле и добавьте следующие переменные среды:

    envs:
      ...
      REACT_APP_CLIENT_ID: ${{AAD_APP_CLIENT_ID}}
      REACT_APP_START_LOGIN_PAGE_URL: ${{TAB_ENDPOINT}}/auth-start.html
    

Обновление исходного кода

После реализации указанных выше изменений среда будет подготовлена. Теперь вы можете обновить код, чтобы включить единый вход в приложение Teams.

Vanilla JavaScript

Для приложения tab, которое не использует React, используйте следующий код в качестве базового примера для получения маркера единого входа:

function getSSOToken() {
  return new Promise((resolve, reject) => {
    microsoftTeams.authentication.getAuthToken()
      .then((token) => resolve(token))
      .catch((error) => reject("Error getting token: " + error));
  });
}

function getBasicUserInfo() {
  getSSOToken().then((ssoToken) => {
    const tokenObj = JSON.parse(window.atob(ssoToken.split(".")[1]));
    console.log(`username: ${tokenObj.name}`);
    console.log(`user email: ${tokenObj.preferred_username}`);
  });
}

React

Для React проектов убедитесь, что в процессе развертывания заданы следующие переменные среды:

Чтобы обновить исходный код, выполните следующие действия.

  1. auth-start.html Переместите файлы и auth-end.html из auth/public папки в папку public/ . Эти HTML-файлы служат для обработки перенаправлений проверки подлинности.

  2. Переместите sso папку в auth/ папку src/sso/.

    1. InitTeamsFx: этот файл выполняет функцию, которая инициализирует пакет SDK TeamsFx. После инициализации пакета SDK открывается GetUserProfile компонент .
    2. GetUserProfile: этот файл выполняет функцию для получения сведений о пользователе путем вызова microsoft API Graph.
  3. Импортируйте и добавьте InitTeamsFx в Welcome.*.

Дополнительные сведения см. в разделе Приложение вкладки с поддержкой единого входа.


Отладка приложения

Чтобы отладить приложение, выберите клавишу F5 . Teams Toolkit использует манифест Microsoft Entra для регистрации приложения с поддержкой единого входа. Дополнительные сведения см. в статье Отладка приложения Teams локально.

Настройка приложений Microsoft Entra

Манифест приложения Teams позволяет настраивать различные аспекты регистрации приложения. Манифест можно обновить по мере необходимости.

Дополнительные разрешения API для доступа к нужным API см. в статье Изменение манифеста Microsoft Entra.

Сведения о просмотре приложения Microsoft Entra в портал Azure см. в статье Изменение манифеста Microsoft Entra.

Следующее действие