更新用于 SSO 的应用清单并预览应用
在更新应用清单 (以前称为 Teams 应用清单) 之前,请确保已将代码配置为在应用中启用 SSO。
已在 Microsoft Entra ID 中注册了应用和机器人资源。 你还配置了用于处理令牌的代码。 现在,必须更新应用清单才能为应用启用 SSO。 应用清单介绍了应用如何集成到 Teams 中。
webApplicationInfo 属性
webApplicationInfo
在应用清单文件中配置 属性。 此属性为应用启用 SSO,以帮助应用用户无缝访问机器人应用。
webApplicationInfo
有两个元素,id
和 resource
。
元素 | 说明 |
---|---|
id |
输入在 Microsoft Entra ID 中创建的应用 ID (GUID) 。 |
resource |
输入应用的子域 URI 以及创建范围时在 Microsoft Entra ID 中创建的应用程序 ID URI。 可以从 Microsoft Entra ID>Expose API 部分复制它。 |
注意
使用应用清单版本 1.5 或更高版本实现 webApplicationInfo
属性。
在 Microsoft Entra ID 中注册的应用程序 ID URI 配置了公开的 API 的范围。 在 中 resource
配置应用的子域 URI,以确保使用的 getAuthToken()
身份验证请求来自应用清单中提供的域。
有关详细信息,请参阅 webApplicationInfo。
配置应用清单
打开应用项目。
打开应用清单文件夹。
注意
- 应用清单文件夹应位于项目的根目录中。 有关详细信息,请参阅 创建 Microsoft Teams 应用包。
- 有关如何创建manifest.json的详细信息,请参阅 Microsoft Teams 的应用清单架构。
打开
manifest.json
文件。将以下代码片段之一添加到应用清单文件以添加新属性:
如果应用具有独立机器人,请添加以下代码片段:
"webApplicationInfo": { "id": "{Azure AD AppId}", "resource": "api://botid-{Azure AD AppId}" }
如果应用包含机器人和选项卡,请添加以下代码片段:
"webApplicationInfo": { "id": "{Azure AD AppId}", "resource": "api://subdomain.example.com/botid-{Azure AD AppId}" }
其中,
-
{Azure AD AppId}
是在 Microsoft Entra ID 中注册应用时创建的应用 ID。 这是 GUID。 -
subdomain.example.com
是在 Microsoft Entra ID 中创建范围时注册的应用程序 ID URI。
-
从 id 属性中的Microsoft Entra ID更新应用 ID。
更新以下属性中的子域 URL:
contentUrl
configurationUrl
validDomains
保存应用清单文件。 有关详细信息,请参阅 应用清单。
下面是更新后的应用清单示例
{
"$schema": "https://developer.microsoft.com/json-schemas/teams/v1.7/MicrosoftTeams.schema.json",
"manifestVersion": "1.7",
"version": "1.0",
"id": "00000000-0000-0000-0000-000000000000",
"packageName": "com.microsoft.teams.samples.auth",
"developer": {
"name": "Your Name Here",
"websiteUrl": "https://www.example.com",
"privacyUrl": "https://www.example.com/PrivacyStatement",
"termsOfUseUrl": "https://www.example.com/TermsOfUse"
},
"name": {
"short": "Teams AuthBot"
},
"description": {
"short": "Authentication sample for Microsoft Teams",
"full": "Authentication sample for Microsoft Teams"
},
"icons": {
"outline": "outline.png",
"color": "color.png"
},
"accentColor": "#F3F4F6",
"configurableTabs": [
],
"staticTabs": [
{
"contentUrl": "https://<<BASE_URI_DOMAIN>>/tab/simple",
"entityId": "simpleAuth",
"name": "Simple Auth",
"scopes": [
"personal"
]
},
{
"contentUrl": "https://<<BASE_URI_DOMAIN>>/tab/silent?loginHint={loginHint}&userObjectId={userObjectId}&tenantId={tid}",
"entityId": "silentAuth",
"name": "Silent Auth",
"scopes": [
"personal"
]
},
{
"contentUrl": "https://<<BASE_URI_DOMAIN>>/tab/sso",
"entityId": "ssoAuth",
"name": "SSO Auth",
"scopes": [
"personal"
]
}
],
"bots": [
{
"botId": "<<REGISTERED_BOT_ID>>",
"scopes": [
"personal"
]
}
],
"permissions": [
"messageTeamMembers",
"identity"
],
"validDomains": [
"<<BASE_URI_DOMAIN>>",
"token.botframework.com"
],
"webApplicationInfo": {
"id": "<<REGISTERED_BOT_ID>>",
"resource": "api://<<BASE_URI_DOMAIN>>/<<REGISTERED_BOT_ID>>"
}
}
注意
在调试期间,可以使用 ngrok 在 Microsoft Entra ID 中测试应用。 在这种情况下,需要将 中的 api://subdomain.example.com/00000000-0000-0000-0000-000000000000
子域替换为 ngrok URL。 每当 ngrok 子域发生更改时,都需要更新 URL。 例如,api://23c3-103-50-148-128.ngrok.io/bccfbe67-e08b-4ec1-a7fd-e0aaf41a097c。
在 Teams 中上传自定义应用和预览
你已将应用配置为启用 SSO。 现在可以在 Teams 中上传自定义应用,并在 Teams 环境中预览它。
若要在 Teams 中预览应用,请执行以下操作:
创建应用包。
应用包是包含应用清单文件和应用图标的 zip 文件。
打开 Teams。
选择“应用”>“管理应用”>“上传应用”。
将出现用于上传应用的选项。
选择“ 上传自定义应用 ”,将自定义应用上传到 Teams。
选择应用包 zip 文件,然后选择“添加”。
自定义应用已上传。 此时会显示同意对话框,告知你可能需要的权限。
选择 继续。
Teams 会打开应用,你可以使用它。
祝贺你! 你已为机器人或消息扩展应用启用 SSO。
开发人员门户中的 SSO 支持
还可以在开发人员门户中上传已启用 SSO 的应用。 若要在导入后在开发人员门户中启用 SSO 支持,请执行以下操作:
打开 开发人员门户。
选择“ 工具”,然后从显示的应用列表中选择你的应用,以在开发人员门户中将其打开。
选择“配置”。
此时会显示 “配置 ”页。
输入在 Microsoft Entra ID 配置为终结点地址的消息传送终结点。
选择“保存”。
开发人员门户现在支持应用的 SSO。