在 TeamsFx 中使用现有 Entra 应用

本部分提供有关使用现有Microsoft Entra应用或手动创建适用于 TeamsFx 项目的Microsoft Entra应用的信息。 按照说明进行操作,并确保在 TeamsFx 项目中正确设置了所有必需的信息。

创建Microsoft Entra应用

注意

如果已有Microsoft Entra应用,则可以跳过此部分。 可以通过 操作自动执行 aadApp/create 此步骤。

  1. 转到Azure 门户并选择“Microsoft Entra ID”。

  2. 选择“应用注册>”“新建注册”以创建新的Microsoft Entra应用:

    • 名称:配置应用的名称。
    • 支持的帐户类型选择“仅此组织目录中的帐户”。
    • 暂时将 “重定向 URL” 字段留空。
    • 选择“注册”。
  3. 注册应用后,你将被带到应用的 “概述 ”页。 复制 应用程序 (客户端) ID对象 ID目录 (租户) ID;稍后需要它。 验证 “支持的帐户类型 ”是否设置为 “仅我的组织”。

为 Microsoft Entra 应用创建客户端密码 (可选)

注意

如果应用程序不需要客户端密码,则可以跳过此部分。 可以通过 操作自动执行 aadApp/create 此步骤。

  1. 转到应用的 “证书 & 机密 ”页,选择“ 客户端密码 ”,然后选择“ 新建客户端密码”。

    • 说明:客户端密码的说明。
    • 过期:客户端密码的过期时间。
    • 选择“添加”。
  2. 添加客户端密码后,按 “值 ”列下的“复制”按钮以复制 客户端密码

为Microsoft Entra应用创建访问权限, (可选)

注意

如果你的 M365 帐户有权更新Microsoft Entra应用,则可以跳过此部分。 我们将为你创建范围。 可以通过 操作自动执行 aadApp/update 此步骤。

  1. 转到应用的“公开 API”页,选择“此 API 定义的作用域”下的“添加范围”。

    • 选择“保存并继续”
    • 范围名称:填写 access_as_user
    • 谁可以同意?:选择 “管理员和用户”。
    • 管理员同意显示名称:填写 Teams 可以访问应用的 Web API
    • 管理员同意说明:填写 允许 Teams 以当前用户身份调用应用的 Web API
    • 用户同意显示名称:填写 Teams 可以访问应用的 Web API 并代表你发出请求
    • 用户同意说明:填写 “启用 Teams”,以使用你拥有的相同权限调用此应用的 Web API
    • 状态:选择 “已启用”。
    • 选择“添加作用域”。
  2. 在同一页上,选择“授权 的客户端应用程序 ”下的“添加 客户端应用程序”。

    • 客户端 ID:填写 1fec8e78-bce4-4aaf-ab1b-5451cc387264 ,即移动设备和客户端上 Microsoft Teams 的客户端 ID。
    • 授权范围:选择现有 access_as_user 范围。
    • 选择“添加应用程序”
  3. “添加客户端应用程序”上再次选择。

    • 客户端 ID:填写 5e3ce6c0-2b1f-4285-8d4b-75ee78787346 ,即 Teams 网页版客户端 ID。
    • 授权范围:选择现有 access_as_user 范围。
    • 选择“添加应用程序”
  4. 转到应用的“清单”页,将 oauth2Permissions 下的 ID 复制为 Access 作为用户范围 ID

从现有Microsoft Entra应用获取必要信息

注意

如果按照上述说明创建Microsoft Entra应用,则可以跳过此部分。

  1. 转到Azure 门户并选择“Microsoft Entra ID”。

  2. 选择“应用注册”并查找现有的Microsoft Entra应用。

  3. 转到应用的 “概述 ”页,复制 应用程序 (客户端) ID对象 ID目录 (租户) ID;稍后需要它。 验证 “支持的帐户类型 ”是否设置为 “仅我的组织”。

  4. 转到应用的 “证书 & 机密 ”页,按 “值 ”列下的复制按钮复制 客户端密码

    注意

    如果无法复制机密,请按照 说明 创建新的客户端密码。

  5. 转到“应用 ”“公开 API ”页。 如果已在此 API 定义的作用域下添加了access_as_user范围并预先对两个 Teams 客户端 ID 进行身份验证,请转到应用的“清单”页,将 oauth2Permissions 下的 ID 复制为 Access As User Scope ID

在 TeamsFx 项目中设置必要信息

注意

如果不使用aadApp/create操作创建Microsoft Entra应用程序,则可以使用首选名称添加所需的环境变量,而无需执行以下步骤。

  1. 打开 teamsapp.yml 并查找操作 aadApp/create

  2. 在 属性中writeToEnvironmentFile查找存储Microsoft Entra应用的信息的环境变量名称。 下面是使用 Teams 工具包创建项目的默认 writeToenvironmentFile 定义:

     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
       authorityHost: AAD_APP_OAUTH_AUTHORITY_HOST
    
  3. 为步骤 2 中的每个环境变量添加值。

    1. 将以下环境变量及其值添加到 env\.env.{env} 文件中。

      AAD_APP_CLIENT_ID=<value of Microsoft Entra application's client id (application id)> # example: 00000000-0000-0000-0000-000000000000
      AAD_APP_OBJECT_ID=<value of Microsoft Entra application's object id> # example: 00000000-0000-0000-0000-000000000000
      AAD_APP_TENANT_ID=<value of Microsoft Entra's (tenant) id> # example: 00000000-0000-0000-0000-000000000000
      AAD_APP_OAUTH_AUTHORITY=<value of Microsoft Entra's authority> # example: https://login.microsoftonline.com/<Directory (tenant) ID>
      AAD_APP_OAUTH_AUTHORITY_HOST=<host of Microsoft Entra's authority> # example: https://login.microsoftonline.com
      AAD_APP_ACCESS_AS_USER_PERMISSION_ID=<id of access_as_user permission> # example: 00000000-0000-0000-0000-000000000000
      
    2. 如果应用程序需要Microsoft Entra应用客户端密码,请将以下环境变量及其值添加到env\.env.{env}.user文件中。

      SECRET_AAD_APP_CLIENT_SECRET=<value of Microsoft Entra application's client secret>
      

      注意

      如果在 中使用不同的名称,请记住更新示例中的环境变量名称 writeToEnvironmentFile

  4. 打开 Teams 工具包扩展,然后选择“ 在云中预配”。 等待项目成功预配。

将Microsoft Entra应用清单上传到Azure 门户

如果 Teams 工具包无法更新Microsoft Entra应用,将显示错误消息:

Insufficient privileges to complete the operation.

如果看到上述消息,请更新Microsoft Entra应用权限,并按照说明更新权限。

  1. 在 下build/aad.manifest.{env}.json查找Microsoft Entra应用清单。

  2. 复制清单文件中的内容。

  3. 转到Azure 门户并选择“Microsoft Entra ID”。

  4. 选择“应用注册”并查找现有的Microsoft Entra应用。

  5. 转到应用的 “清单 ”页,将清单内容粘贴到编辑器中,然后选择“ 保存 ”以保存更改。