准备 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 个字符。
- 不能包含单词 API、 Connector 或我们的 Power Platform 任何产品名称(例如)。 Power Apps
- 不能以非字母数字字符结尾,包括回车符、换行符或空格。
示例
- 好的连接器和/或插件标题:
Azure Sentinel*, *Office 365 Outlook
- 连接器和/或插件标题不佳:
Azure Sentinel's Power Apps Connector
,Office 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 的连接器,请使用最后一种方案。
打包您的自定义连接器并提交进行认证
创建解决方案的自定义连接器。
导出连接器解决方案。
导出流解决方案。
使用步骤 3 和 5 中的解决方案 创建包。
作为 zip 文件创建最后一个包,使用以下格式:
备注
解决方案外部的文件夹和文件的名称仅供参考,您可以根据需要进行选择。 但是,请勿在解决方案内操作文件。
- 将包上传到存储 blob 并 生成 SAS URL。 确保您的 SAS URI 在 15 天内有效。
- 将包提交到 合作伙伴中心。
打包自定义连接器和支持 AI 的连接器以进行认证
按照本文中的打包自定义连接器中的步骤 1 到 5 提交认证 。
从以下内容创建包 :
- 运行 solution checker (打包自定义连接器并提交认证 中的步骤 2)。
- 导出流解决方案(打包自定义连接器并提交认证 中的步骤 5)。
- 在中 Microsoft Copilot Studio 创建一个插件并将其导出为解决方案 (此过程中的步骤 2)。
作为 zip 文件创建最后一个包,使用以下格式。
备注
解决方案外部的文件夹和文件的名称仅供参考,您可以根据需要进行选择。 但是,请勿在解决方案内操作文件。
- 将包上传到存储 blob 并 生成 SAS URL。 确保您的 SAS URI 在 15 天内有效。
- 将包提交到 合作伙伴中心。
打包现有的认证连接器和支持 AI 的连接器以进行认证
在 Power Automate 中创建解决方案并在其中添加已认证的连接器。
按照本文中的打包自定义连接器中的 步骤 2 到 4 提交认证 。
将插件导出为解决方案。
从以下内容创建包 :
- 在连接器解决方案上运行解决方案检查器 (本文中的 打包自定义连接器并提交认证 中的步骤 2)。
- 在中 Copilot Studio 创建一个插件并将其导出为解决方案 (此过程中的步骤 3)。
- 在中 Copilot Studio 创建一个插件并将其导出为解决方案 (此过程中的步骤 4)。
作为 zip 文件创建最后一个包,使用以下格式。
备注
解决方案外部的文件夹和文件的名称仅供参考,您可以根据需要进行选择。 但是,请勿在解决方案内操作文件。
- 将包上传到存储 blob 并 生成 SAS URL。 确保您的 SAS URI 在 15 天内有效。
- 将包提交到 合作伙伴中心。
经过验证的发布者和独立发布者都会下载 openapidefinition.json
其构件。 您需要在此文件中设置 IconBrandColor。
- 已验证的发布者:在 openapidefinition 文件中将 iconBrandColor 设置为您的品牌颜色。
-
独立发布者:在 openapidefinition 文件中将 iconBrandColor 设置为“#da3b01”。
创建 intro.md 项目
独立发布者和经过验证的发布者都需要 intro.md 文件。 您需要创建一个 intro.md 文件来记录连接器的特性和功能。 有关要包含的文档示例,请转到 Readme.md 示例。 要了解如何编写 intro.md 文件,请查看我们 GitHub 存储库中的其他 intro.md 文件(也称为 Readme.md 文件)。
如果您是独立发布者并且您的连接器使用 OAuth,请确保包含有关如何获取凭据的说明。
小费
已知问题和限制 是一个很好的维护部分,可以让您的用户保持最新状态。
步骤 6:验证包的结构
包验证脚本验证包结构,并帮助您以可接受的格式生成包以进行认证。 使用以下链接下载包验证程序脚本: ConnectorPackageValidator.ps1。
要运行该脚本,请执行以下步骤:
在管理员模式下打开 Windows PowerShell。
输入更改驱动器位置
cd /
。以下示例使用
C:\
。转到您下载软件包验证程序脚本的路径。
例如,如果路径为
C:\Users\user01\Downloads
,则输入cd .\Users\user01\Downloads\
。输入以下命令,将执行策略设置为 unrestricted:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
此命令使 PowerShell 可以不受任何限制地执行。
输入 Y 确认您的输入,这意味着 Yes。
执行 ConnectorPackageValidator.ps1 的步骤如下:
- 输入包含连接器包的 zip 文件路径。
- 指定是否启用 AI 插件。
如以下示例所示,第一个参数是包含包的有效 zip 文件路径。 第二个参数用于
yes
/y
指示 AI 插件已启用,或no
/n
指示它已禁用。如果包结构正确,则会显示以下成功消息:
如果包结构存在问题,该脚本会通过检测并突出显示包结构中的缺陷来提供问题详细信息。
步骤 7:提交连接器和/或插件以进行认证
在提交过程中,您将连接器和/或插件开源到我们的 Microsoft Power Platform 连接器存储库。
(适用于独立出版商)若要将程序包提交给 Microsoft 进行认证,请按照独立发布者认证过程中 的说明进行作。
(适用于经过验证的发布者)若要将包提交给 Microsoft 以认证到合作伙伴中心,请按照已验证发布者认证过程中 的说明进行作。
如果您是经验证的发布者,并且使用自定义代码,则需要提交 script.csx 文件。
如果连接器已提供 OAuth,请在 合作伙伴中心提供客户端 ID 和密码。 此外,从连接器提交请求中获取 APIname 以更新应用程序。
作为提交的一部分,Microsoft 会对您的连接器和/或插件进行认证。 如果您需要排查 Swagger 错误,请转到 修复 Swagger 验证程序错误。
提交之前的清单
在继续提交 连接器进行 Microsoft 认证之前,请确保:
您已经测试了自定义连接器和/或插件以确保操作按预期运行(每个操作至少有 10 次成功的调用)。
自定义连接器向导的 test 部分中 不会显示运行时或架构验证错误。
有关认证的查询
您需要 Microsoft Teams 加入 Office Hours 会议。 如果您需要访问权限,请在中 Microsoft Teams查看您的选项。
加入 每周二下午 3:30 到 4:30 UTC(协调世界时)的办公时间会议 。
小费