更新用于 SSO 的应用清单并预览应用

在更新应用清单 (以前称为 Teams 应用清单) 之前,请确保已将代码配置为在应用中启用 SSO。

已在 Microsoft Entra ID 中注册了应用和机器人资源。 你还配置了用于处理令牌的代码。 现在,必须更新应用清单才能为应用启用 SSO。 应用清单介绍了应用如何集成到 Teams 中。

webApplicationInfo 属性

webApplicationInfo在应用清单文件中配置 属性。 此属性为应用启用 SSO,以帮助应用用户无缝访问机器人应用。

webApplicationInfo 有两个元素,idresource

元素 说明
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

配置应用清单

  1. 打开应用项目。

  2. 打开应用清单文件夹。

    注意

  3. 打开 manifest.json文件。

  4. 将以下代码片段之一添加到应用清单文件以添加新属性:

    • 如果应用具有独立机器人,请添加以下代码片段:

      "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。
  5. 从 id 属性中的Microsoft Entra ID更新应用 ID

  6. 更新以下属性中的子域 URL:

    1. contentUrl
    2. configurationUrl
    3. validDomains
  7. 保存应用清单文件。 有关详细信息,请参阅 应用清单


下面是更新后的应用清单示例
{
  "$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 中预览应用,请执行以下操作:

  1. 创建应用包。

    应用包是包含应用清单文件和应用图标的 zip 文件。

  2. 打开 Teams。

  3. 选择“应用”>“管理应用”>“上传应用”。

    将出现用于上传应用的选项。

  4. 选择“ 上传自定义应用 ”,将自定义应用上传到 Teams。

  5. 选择应用包 zip 文件,然后选择“添加”。

    自定义应用已上传。 此时会显示同意对话框,告知你可能需要的权限。

  6. 选择 继续

    机器人同意消息

Teams 会打开应用,你可以使用它。

祝贺你! 你已为机器人或消息扩展应用启用 SSO。

开发人员门户中的 SSO 支持

还可以在开发人员门户中上传已启用 SSO 的应用。 若要在导入后在开发人员门户中启用 SSO 支持,请执行以下操作:

  1. 打开 开发人员门户

  2. 选择“ 工具”,然后从显示的应用列表中选择你的应用,以在开发人员门户中将其打开。

  3. 选择“配置”。

    此时会显示 “配置 ”页。

  4. 输入在 Microsoft Entra ID 配置为终结点地址的消息传送终结点

    对机器人应用中 SSO 的开发人员门户支持

  5. 选择“保存”

开发人员门户现在支持应用的 SSO。