在 TeamsFx 中使用现有 Entra 应用
本部分提供有关使用现有Microsoft Entra应用或手动创建适用于 TeamsFx 项目的Microsoft Entra应用的信息。 按照说明进行操作,并确保在 TeamsFx 项目中正确设置了所有必需的信息。
创建Microsoft Entra应用
注意
如果已有Microsoft Entra应用,则可以跳过此部分。 可以通过 操作自动执行 aadApp/create
此步骤。
转到Azure 门户并选择“Microsoft Entra ID”。
选择“应用注册>”“新建注册”以创建新的Microsoft Entra应用:
- 名称:配置应用的名称。
- 支持的帐户类型: 选择“仅此组织目录中的帐户”。
- 暂时将 “重定向 URL” 字段留空。
- 选择“注册”。
注册应用后,你将被带到应用的 “概述 ”页。 复制 应用程序 (客户端) ID、 对象 ID 和 目录 (租户) ID;稍后需要它。 验证 “支持的帐户类型 ”是否设置为 “仅我的组织”。
为 Microsoft Entra 应用创建客户端密码 (可选)
注意
如果应用程序不需要客户端密码,则可以跳过此部分。 可以通过 操作自动执行 aadApp/create
此步骤。
转到应用的 “证书 & 机密 ”页,选择“ 客户端密码 ”,然后选择“ 新建客户端密码”。
- 说明:客户端密码的说明。
- 过期:客户端密码的过期时间。
- 选择“添加”。
添加客户端密码后,按 “值 ”列下的“复制”按钮以复制 客户端密码。
为Microsoft Entra应用创建访问权限, (可选)
注意
如果你的 M365 帐户有权更新Microsoft Entra应用,则可以跳过此部分。 我们将为你创建范围。 可以通过 操作自动执行 aadApp/update
此步骤。
转到应用的“公开 API”页,选择“此 API 定义的作用域”下的“添加范围”。
- 选择“保存并继续”。
- 范围名称:填写 access_as_user。
- 谁可以同意?:选择 “管理员和用户”。
- 管理员同意显示名称:填写 Teams 可以访问应用的 Web API。
- 管理员同意说明:填写 允许 Teams 以当前用户身份调用应用的 Web API。
- 用户同意显示名称:填写 Teams 可以访问应用的 Web API 并代表你发出请求。
- 用户同意说明:填写 “启用 Teams”,以使用你拥有的相同权限调用此应用的 Web API。
- 状态:选择 “已启用”。
- 选择“添加作用域”。
在同一页上,选择“授权 的客户端应用程序 ”下的“添加 客户端应用程序”。
- 客户端 ID:填写 1fec8e78-bce4-4aaf-ab1b-5451cc387264 ,即移动设备和客户端上 Microsoft Teams 的客户端 ID。
- 授权范围:选择现有 access_as_user 范围。
- 选择“添加应用程序”。
在 “添加客户端应用程序”上再次选择。
- 客户端 ID:填写 5e3ce6c0-2b1f-4285-8d4b-75ee78787346 ,即 Teams 网页版客户端 ID。
- 授权范围:选择现有 access_as_user 范围。
- 选择“添加应用程序”。
转到应用的“清单”页,将 oauth2Permissions 下的 ID 复制为 Access 作为用户范围 ID。
从现有Microsoft Entra应用获取必要信息
注意
如果按照上述说明创建Microsoft Entra应用,则可以跳过此部分。
转到Azure 门户并选择“Microsoft Entra ID”。
选择“应用注册”并查找现有的Microsoft Entra应用。
转到应用的 “概述 ”页,复制 应用程序 (客户端) ID、 对象 ID 和 目录 (租户) ID;稍后需要它。 验证 “支持的帐户类型 ”是否设置为 “仅我的组织”。
转到应用的 “证书 & 机密 ”页,按 “值 ”列下的复制按钮复制 客户端密码。
注意
如果无法复制机密,请按照 说明 创建新的客户端密码。
转到“应用 ”“公开 API ”页。 如果已在此 API 定义的作用域下添加了access_as_user范围并预先对两个 Teams 客户端 ID 进行身份验证,请转到应用的“清单”页,将 oauth2Permissions 下的 ID 复制为 Access As User Scope ID。
在 TeamsFx 项目中设置必要信息
注意
如果不使用aadApp/create
操作创建Microsoft Entra应用程序,则可以使用首选名称添加所需的环境变量,而无需执行以下步骤。
打开
teamsapp.yml
并查找操作aadApp/create
。在 属性中
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
为步骤 2 中的每个环境变量添加值。
将以下环境变量及其值添加到
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
如果应用程序需要Microsoft Entra应用客户端密码,请将以下环境变量及其值添加到
env\.env.{env}.user
文件中。SECRET_AAD_APP_CLIENT_SECRET=<value of Microsoft Entra application's client secret>
注意
如果在 中使用不同的名称,请记住更新示例中的环境变量名称
writeToEnvironmentFile
。
打开 Teams 工具包扩展,然后选择“ 在云中预配”。 等待项目成功预配。
将Microsoft Entra应用清单上传到Azure 门户
如果 Teams 工具包无法更新Microsoft Entra应用,将显示错误消息:
Insufficient privileges to complete the operation.
如果看到上述消息,请更新Microsoft Entra应用权限,并按照说明更新权限。
在 下
build/aad.manifest.{env}.json
查找Microsoft Entra应用清单。复制清单文件中的内容。
转到Azure 门户并选择“Microsoft Entra ID”。
选择“应用注册”并查找现有的Microsoft Entra应用。
转到应用的 “清单 ”页,将清单内容粘贴到编辑器中,然后选择“ 保存 ”以保存更改。