准备 Power Platform 连接器和支持 AI 的连接器文件以进行认证

此过程适用于经过验证的发布者和独立发布者。

开发完自定义连接器和/或支持 AI 的连接器后,请按照以下步骤准备认证,并生成连接器和/或支持 AI 的连接器文件以提交给 Microsoft。

备注

本文提供了有关在 Azure 逻辑应用中认证自定义连接器的信息, Microsoft Power Automate Microsoft Power Apps 以及支持 AI 的连接器文件 Microsoft Copilot Studio。 在执行本文中的步骤之前,请阅读 认证您的连接器和/或作(插件)

步骤 1:注册连接器和/或支持 AI 的连接器(仅适用于独立发布者)

本节不适用于经过验证的发布者。

您无需完成自定义连接器和/或支持 AI 的连接器的开发即可申请认证。 要开始认证过程,请填写我们的 注册表,注册您的连接器和/或支持 AI 的连接器以进行认证

预计会在两个工作日内收到 Microsoft 联系人的电子邮件,他将:

  • 了解您的自定义连接器、连接器和/或支持 AI 的连接器。
  • 了解您的开发进度。
  • 向您发送有关认证过程的电子邮件。

步骤 2:满足连接器提交要求

为了在我们的认证连接器之间保持高标准的质量和一致性,Microsoft 有一套要求和准则,您的自定义连接器必须遵守这些要求和准则才能获得认证。

为连接器提供标题

标题必须满足以下要求。

  • 必须有标题,并且必须使用英文书写。
  • 必须是唯一的,并且必须与任何现有的连接器和/或插件标题相区分。
  • 应为您的产品或组织的名称。
  • 应该遵守已认证连接器和/或插件的现有命名模式。 对于独立发布者,连接器名称应遵循以下模式 Connector and/or plugin Name (Independent Publisher)
  • 长度不能超过 30 个字符。
  • 不能包含单词 APIConnector 或我们的 Power Platform 任何产品名称(例如)。 Power Apps
  • 不能以非字母数字字符结尾,包括回车符、换行符或空格。

示例

  • 好的连接器和/或插件标题: Azure Sentinel*, *Office 365 Outlook
  • 连接器和/或插件标题不佳: Azure Sentinel's Power Apps ConnectorOffice 365 Outlook API

为连接器编写说明

说明必须满足下列要求。

  • 必须有标题,并且必须使用英文书写。
  • 必须无语法和拼写错误。
  • 应简明扼要地描述您的连接器所提供的主要用途和价值。
  • 不能短于 30 个字符或超过 500 个字符。
  • 不能包含任何 Power Platform 产品名称(例如,“Power Apps”)。

为连接器设计图标(仅适用于经过验证的发布者)

本节不适用于独立发布者。

  • 在 100 x 100 到 230 x 230 像素范围内创建 1:1 尺寸的徽标(无圆角)。
  • 使用与您指定的图标背景颜色相匹配的非透明的非白色 (#ffffff) 背景和非默认颜色 (#007ee5)。
  • 确保图标为任何其他已认证的连接器图标所特有。
  • 以 PNG 格式提交徽标。 <icon>.png
  • 将徽标尺寸设置为图像高度和宽度的 70% 以下,背景保持一致。
  • 确保品牌颜色是有效的十六进制颜色,而不是白色 (#ffffff) 或默认颜色 (#007ee5)。

定义操作和参数摘要及说明

摘要和说明必须满足下列要求。

  • 必须有标题,并且必须使用英文书写。
  • 必须无语法和拼写错误。
  • 操作和参数摘要应为包含 80 个字符或更少的短语,并且只能包含字母数字字符或括号。
  • 操作和参数说明应该是完整的描述性句子并以标点符号结尾。
  • 不能包含任何 Microsoft Power Platform 产品名称(例如 "Power Apps")。

定义确切操作响应

操作响应必须满足下列要求。

  • 应定义仅包含预期响应的具有精确架构的操作响应。
  • 不要使用具有精确架构定义的默认响应。
  • 为 Swagger 中的所有操作提供有效的响应架构定义。
  • 除非在响应架构是动态这一特殊情况下,否则不允许使用空响应架构。 这意味着输出中不会显示动态内容,制作者必须使用 JSON 来解析响应。
  • 不允许使用空操作。
  • 除非需要,否则删除空属性。

验证 swagger 属性

属性必须满足下列要求。

  • 确保“openapidefinition”位于格式正确的 JSON 文件中。
  • 确保 Swagger 定义符合 OpenAPI 2.0 标准和连接器的扩展标准。

验证连接参数

参数必须满足下列要求。

  • 确保使用 "UIDefinition"(显示名称,描述)的适当值更新该属性。

  • 如果您的连接参数使用基本身份验证,请确保 JSON 格式正确,如下例所示。

    {
      "username": {
        "type": "securestring",
        "uiDefinition": {
          "displayName": "YourUsernameLabel",
          "description": "The description of YourUsernameLabel for this api",
          "tooltip": "Provide the YourUsernameLabel tooltip text",
          "constraints": {
            "tabIndex": 2,
            "clearText": true,
            "required": "true"
            }
      }
    },
      "password": {
        "type": "securestring",
        "uiDefinition": {
          "displayName": "YourPasswordLabel",
          "description": "The description of YourPasswordLabel for this api",
          "tooltip": "Provide the YourPasswordLabel tooltip text",
          "constraints": {
            "tabIndex": 3,
            "clearText": false,
            "required": "true"
          }
        }
      }
    }
    
  • 如果您的连接参数使用 APIKey 作为身份验证,请确保 JSON 的格式正确,如下例所示。

    {
      "api_key": {
        "type": "securestring",
        "uiDefinition": {
          "displayName": "YourApiKeyParameterLabel",
          "tooltip": "Provide your YourApiKeyParameterLabel tooltip text",
          "constraints": {
            "tabIndex": 2,
            "clearText": false,
            "required": "true"
          }
        }
      }
    }
    
  • 如果您的连接参数将 Generic OAuth 作为身份验证,请确保 JSON 格式正确,如以下示例所示。

    {
      "token": {
        "type": "oAuthSetting",
        "oAuthSettings": {
          "identityProvider": "oauth2",
          "scopes": [
            "scope1"
          ],
          "redirectMode": "GlobalPerConnector",
          "customParameters": {
            "AuthorizationUrl": {
              "value": "https://contoso.com"
            },
            "TokenUrl": {
              "value": "https://contoso.com"
            },
            "RefreshUrl": {
              "value": "https://contoso.com"
            }
          },
          "clientId": "YourClientID"
        },
        "uiDefinition": null
      }
    }
    
  • 如果您的连接参数包含 OAuth2 身份提供者,请确保该身份提供者来自受支持的 OAuth2 提供者列表。 以下是 GitHub OAuth2 身份提供者的示例:

    {
      "token": {
        "type": "oAuthSetting",
        "oAuthSettings": {
          "identityProvider": "github",
          "scopes": [
            "scope1"
          ],
          "redirectMode": "GlobalPerConnector",
          "customParameters": {},
          "clientId": "YourClientId"
        },
        "uiDefinition": null
      }
    }
    
  • 如果您的连接参数具有 Microsoft Entra ID 作为身份验证,请确保 JSON 的格式正确,如下例所示。

    {
      "token": {
        "type": "oAuthSetting",
        "oAuthSettings": {
          "identityProvider": "aad",
          "scopes": [
            "scope1"
          ],
          "redirectMode": "GlobalPerConnector",
          "customParameters": {
            "LoginUri": {
              "value": "https://login.microsoftonline.com"
            },
            "TenantId": {
              "value": "common"
            },
            "ResourceUri": {
              "value": "resourceUri"
            },
            "EnableOnbehalfOfLogin": {
              "value": false
            }
          },
          "clientId": "AzureActiveDirectoryClientId"
        },
        "uiDefinition": null
      }
    }
    

创建高质量的英语语言字符串

连接器将作为 Power Automate 本地化的一部分进行本地化;因此,当您开发连接器时,英语语言字符串的质量是翻译质量的关键。 在创建所提供的字符串值时,需要重点关注以下几个主要方面。

  • 确保运行拼写检查程序,以确保所有字符串值都没有排字错误。 如果有任何不完整的英语字符串,翻译结果是不完整的或上下文不正确的。

  • 确保语句格式完整。 如果语句不完整,也会产生较低质量的翻译。

  • 确保语句意思清晰。 如果语句的意思不明确,也会产生较低质量或不正确的翻译。

  • 确保 summaries、x-ms-summaries 和 descriptions 在语法上是正确的。 不要进行复制和粘贴。 要了解它们在产品中的显示方式,请转到 连接器字符串指南

  • 如果可能,避免运行时复合字符串。 改用完整格式的语句。 串联的字符串或语句会让翻译变得困难,或可能导致错误翻译。

  • 如果您使用缩写,请确保将它们大写以清晰显示。 这减少了被误认为是印刷错误的机会。

  • CaMel 形式的字符串(例如,minimizeHighways 或 MinimizeHighways)通常被视为不可翻译。 如果您想要本地化此字符串值,您应该修复 CaMel 形式的字符串。

步骤 3:运行解决方案检查器来验证连接器

解决方案检查器是一种进行静态分析的机制,以确保您的连接器符合 Microsoft 认证所要求的标准。 按照使用解决方案检查器 Power Automate 验证自定义连接器中的 Power Apps 说明,将连接器添加到解决方案中或运行解决方案检查器。

观看此视频以了解如何运行 Solution Checker。

步骤 4:满足插件提交要求

如果您还提交相关的连接器插件进行认证,本节适用。

  • 确保您按照创建 AI 插件( 预览版) Microsoft Copilot 中的准则创作了插件。
  • 提交的所有支持 AI 的连接器都应符合 100.10 不当内容 突出显示的标准。
  • 所有启用 AI 的连接器都遵循 负责任 AI 准则
  • 插件不得生成、包含或提供对不适当、有害或冒犯性的人工智能(AI)生成的内容的访问权限,这符合 100.10 不当内容 概述的现有商业市场政策。

步骤 5:准备连接器和/或插件项目

备注

  • 在认证之前,请确保您遵循规范并确保连接器和/或支持 AI 的连接器的质量。 否则,会导致认证延迟,因为系统会要求您进行更改。
  • 提供主机 URL 的生产版本。 不允许使用暂存、开发和测试主机 URL。

您正在向 Microsoft 提交一组文件,这是来自制作者门户的解决方案生成。 Microsoft Copilot Studio 要打包文件,请按照本节中的步骤作。

连接器和插件打包指南

本节中的过程将指导您完成各个打包场景。 如果您只想打包自定义连接器,请使用第一种方案。 如果要同时打包自定义连接器 启用 AI 的连接器,请使用第二种方案。 如果要打包 现有 连接器和启用 AI 的连接器,请使用最后一种方案。

打包您的自定义连接器并提交进行认证

  1. 创建解决方案的自定义连接器。

  2. 在步骤 1 中,对连接器解决方案运行 solution checker

  3. 导出连接器解决方案。

  4. 使用新创建的自定义连接器创建流(测试),或者将现有流添加到解决方案中

  5. 导出流解决方案。

  6. 使用步骤 3 和 5 中的解决方案 创建包。

  7. 创建一个 intro.md 文件

  8. 作为 zip 文件创建最后一个包,使用以下格式:

    要认证的已认证连接器的 zip 文件中的文件夹和文件的屏幕截图。

备注

解决方案外部的文件夹和文件的名称仅供参考,您可以根据需要进行选择。 但是,请勿在解决方案内操作文件。

  1. 将包上传到存储 blob 并 生成 SAS URL。 确保您的 SAS URI 在 15 天内有效。
  2. 将包提交到 合作伙伴中心

打包自定义连接器和支持 AI 的连接器以进行认证

  1. 按照本文中的打包自定义连接器中的步骤 1 到 5 提交认证

  2. 在 Microsoft Copilot Studio 门户中创建插件并将其导出为解决方案

  3. 从以下内容创建包

  4. 创建一个 intro.md 文件

  5. 作为 zip 文件创建最后一个包,使用以下格式。

    要认证的连接器和插件的 zip 文件中的文件夹和文件的屏幕截图。

备注

解决方案外部的文件夹和文件的名称仅供参考,您可以根据需要进行选择。 但是,请勿在解决方案内操作文件。

  1. 将包上传到存储 blob 并 生成 SAS URL。 确保您的 SAS URI 在 15 天内有效。
  2. 将包提交到 合作伙伴中心

打包现有的认证连接器和支持 AI 的连接器以进行认证

  1. Power Automate 中创建解决方案并在其中添加已认证的连接器。

  2. 按照本文中的打包自定义连接器中的 步骤 2 到 4 提交认证

  3. 在中 Copilot Studio 创建一个插件并将其导出为解决方案

  4. 将插件导出为解决方案。

  5. 从以下内容创建包

  6. 创建一个 intro.md 文件

  7. 作为 zip 文件创建最后一个包,使用以下格式。

    要认证的现有认证连接器和插件的 zip 文件中的文件夹和文件的屏幕截图。

备注

解决方案外部的文件夹和文件的名称仅供参考,您可以根据需要进行选择。 但是,请勿在解决方案内操作文件。

  1. 将包上传到存储 blob 并 生成 SAS URL。 确保您的 SAS URI 在 15 天内有效。
  2. 将包提交到 合作伙伴中心

经过验证的发布者和独立发布者都会下载 openapidefinition.json 其构件。 您需要在此文件中设置 IconBrandColor。

  • 已验证的发布者:在 openapidefinition 文件中将 iconBrandColor 设置为您的品牌颜色。
  • 独立发布者:在 openapidefinition 文件中将 iconBrandColor 设置为“#da3b01”。
    鲜艳的橙色(da3b01)图标的屏幕截图。

创建 intro.md 项目

独立发布者和经过验证的发布者都需要 intro.md 文件。 您需要创建一个 intro.md 文件来记录连接器的特性和功能。 有关要包含的文档示例,请转到 Readme.md 示例。 要了解如何编写 intro.md 文件,请查看我们 GitHub 存储库中的其他 intro.md 文件(也称为 Readme.md 文件)。

如果您是独立发布者并且您的连接器使用 OAuth,请确保包含有关如何获取凭据的说明。

小费

已知问题和限制 是一个很好的维护部分,可以让您的用户保持最新状态。

步骤 6:验证包的结构

包验证脚本验证包结构,并帮助您以可接受的格式生成包以进行认证。 使用以下链接下载包验证程序脚本: ConnectorPackageValidator.ps1

要运行该脚本,请执行以下步骤:

  1. 在管理员模式下打开 Windows PowerShell。

    管理员模式下的 Windows PowerShell 的屏幕截图。

  2. 输入更改驱动器位置 cd /

    以下示例使用 C:\

    用于更改驱动器的语法的屏幕截图。

  3. 转到您下载软件包验证程序脚本的路径。

    例如,如果路径为 C:\Users\user01\Downloads,则输入 cd .\Users\user01\Downloads\

    用于更改路径的语法的屏幕截图。

  4. 输入以下命令,将执行策略设置为 unrestricted:

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted

    用于设置执行策略的语法屏幕截图。

    此命令使 PowerShell 可以不受任何限制地执行。

  5. 输入 Y 确认您的输入,这意味着 Yes

  6. 执行 ConnectorPackageValidator.ps1 的步骤如下:

    1. 输入包含连接器包的 zip 文件路径。
    2. 指定是否启用 AI 插件。

    如以下示例所示,第一个参数是包含包的有效 zip 文件路径。 第二个参数用于 yes/y 指示 AI 插件已启用,或 no/n 指示它已禁用。

    用于执行 ConnectorPackageValidator.ps1 的语法的屏幕截图。

    如果包结构正确,则会显示以下成功消息:

    成功消息的屏幕截图。

    如果包结构存在问题,该脚本会通过检测并突出显示包结构中的缺陷来提供问题详细信息。

    问题详细信息的屏幕截图。

步骤 7:提交连接器和/或插件以进行认证

在提交过程中,您将连接器和/或插件开源到我们的 Microsoft Power Platform 连接器存储库

  1. (适用于独立出版商)若要将程序包提交给 Microsoft 进行认证,请按照独立发布者认证过程中 的说明进行作。

  2. (适用于经过验证的发布者)若要将包提交给 Microsoft 以认证到合作伙伴中心,请按照已验证发布者认证过程中 的说明进行作。

    如果您是经验证的发布者,并且使用自定义代码,则需要提交 script.csx 文件。

    如果连接器已提供 OAuth,请在 合作伙伴中心提供客户端 ID 和密码。 此外,从连接器提交请求中获取 APIname 以更新应用程序。

    作为提交的一部分,Microsoft 会对您的连接器和/或插件进行认证。 如果您需要排查 Swagger 错误,请转到 修复 Swagger 验证程序错误

提交之前的清单

在继续提交 连接器进行 Microsoft 认证之前,请确保:

  • 您的连接器和/或插件满足步骤 2:满足连接器 的提交要求和 步骤 4:满足插件 的提交要求中设置的所有标准。

  • 没有作缺少 摘要描述可见性信息

  • 您已经测试了自定义连接器和/或插件以确保操作按预期运行(每个操作至少有 10 次成功的调用)。

  • 自定义连接器向导的 test 部分中 不会显示运行时或架构验证错误。

有关认证的查询

您需要 Microsoft Teams 加入 Office Hours 会议。 如果您需要访问权限,请在中 Microsoft Teams查看您的选项。

加入 每周二下午 3:30 到 4:30 UTC(协调世界时)的办公时间会议

小费

  • 创建 YouTube 视频、博客或其他内容来分享示例或屏幕截图,让用户了解如何开始使用连接器和/或插件。
  • 在 intro.md 文件中包含链接 ,以便我们可以添加到我们的文档中。
  • 向 swagger 文件添加 工具提示 ,以帮助用户取得更大的成功。

下一步