经过验证的发布者认证流程

此流程适用于经过验证的发布者(不包括独立发布者)。 如果您是独立发布者,请转到独立发布者认证流程

完成自定义连接器的开发后,请执行以下步骤为其做好认证准备,并生成要提交给 Microsoft 的连接器文件。

备注

本主题介绍如何认证 Azure 逻辑应用、Power Automate 和 Power Apps 中的自定义连接器。 在按照本文中的步骤进行操作之前,请阅读认证您的连接器并向 Microsoft 注册您的自定义连接器。

基本认证流程工作流

以下流程图显示了基本认证流程工作流。 本文中带编号的步骤与工作流相对应。 它们可以提供完成认证过程所需的详细信息。

要查看流程图的展开视图,请选择右下角的放大镜图标。

连接器认证流程工作流。

要深入了解此流程图,请转到详细连接器认证流程工作流

步骤 1:注册连接器

无需完成自定义连接器开发即可申请认证。 要开始认证流程,请填写我们的注册表单来注册要认证的连接器。

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

  • 了解您的自定义连接器。
  • 了解您的开发进度。
  • 指导您完成认证过程。

步骤 2:满足提交要求

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

为连接器提供标题

  • 必须有标题,并且必须使用英文书写。
  • 必须是唯一的,并且必须与任何现有的连接器标题相区分。
  • 应为您的产品或组织的名称。
  • 应该遵守已认证连接器的现有命名模式。 对于独立发布者,连接器名称应采用以下模式:连接器名称(独立发布者)
  • 长度不能超过 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"
          }
        }
      }
    }
    
  • 如果您的连接参数使用通用 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 中的解决方案,并按照使用解决方案检查器验证自定义连接器中的说明运行解决方案检查器。

观看此视频,了解如何运行解决方案检查器!

步骤 4:添加元数据

您的连接器项目(文件)必须包含描述连接器及其终端服务的特定元数据。 元数据中提供的信息发布在我们的连接器文档中,所有用户都可以公开访问。 不要提供任何私人或机密信息,如果在向我们提供此信息时有任何问题,请通过您的 Microsoft 联系人告知我们。 要了解元数据是如何记录的,请访问连接器参考下任何一个特定于连接器的文档页面。

步骤 4a:发布者和 stackOwner 属性

  • 发布者是您的公司或组织的名称。 提供完整的公司名称(例如,“Contoso Corporation”)。 必须为字母数字格式。

  • “stackOwner” 是连接器连接到的后端服务堆栈的负责公司或组织。 必须为字母数字格式。

发布服务器 Description 示例
已验证 发布者和 stackOwner 是相同的,除非 ISV 代表一个 stackOwner 构建一个连接器。 "publisher": "Tesla",
"stackOwner": "Tesla"
独立 您必须提供堆栈负责人和发布者负责人。 "publisher": "Nirmal Kumar",
"stackOwner": "ITGlue"

文件位置: apiProperties.json
要了解详细信息,请转到 API 属性文件

语法发布者堆栈负责人属性在 apiProperties.json 文件中作为顶级属性存在。 添加如下所示的突出显示的行。 确保完全按照如下所示输入属性名称和架构。

显示发布者和堆栈负责人属性的屏幕截图,这些属性在示例代码片段中提供。

显示用于定义以红色突出显示的联系人对象的块的代码。 此块必须直接位于说明下方。 另一个块 x-ms-connector-metadata 也以红色突出显示。 此块必须直接位于路径下方:{}。

步骤 4c:示例代码片段

您可以使用以下代码片段复制和输入信息。 确保按前面部分所述在正确位置将片段添加到正确的文件。

    "publisher": "_____",
    "stackOwner": "_____"
    "contact": {
      "name": "_____",
      "url": "_____",
      "email": "_____"
    }
    "x-ms-connector-metadata": [
      {
        "propertyName": "Website",
        "propertyValue": "_____"
      },
      {
        "propertyName": "Privacy policy",
        "propertyValue": "_____"
      },
      {
        "propertyName": "Categories",
        "propertyValue": "_____;_____"
      }
    ]

备注

当前使用 stackOwner 属性和 Paconn CLI 工具时存在限制。 有关详细信息,请转到自述文件中的限制

步骤 4d:JSON 文件格式和限制

  • 确保您的属性已正确对齐。

  • 将 JSON 粘贴到 Visual Studio Code 中。 随意使用拼写检查器等扩展和 JSON 插件等插件。

  • Swagger 文件不应大于 1 MB。

    • 在开始构建连接器之前考虑连接器的设计。 评估连接器是否应分解为两 (2) 个或更多连接器。
    • 使用连接器时,较大的 swagger 文件可能会导致延迟。

    例如,平台上有三 (3) 个不同的 HubSpot 连接器。

    三个 HubSpot 连接器的文件夹的屏幕截图。

步骤 4e:验证您的自定义连接器文件

运行 paconn validate --api-def [Location of apiDefinition.swagger.json]。 该工具验证您的连接器定义,并让您知道在提交之前需要修复的任何错误。

如果连接器使用 OAuth 作为其身份验证类型,将这些允许的重定向 URL 添加到应用:

  • https://global.consent.azure-apim.net/redirect/{apiname}

  • https://global-test.consent.azure-apim.net/redirect/{apiname}

步骤 5:准备连接器项目

此步骤应会需要大约一周的时间完成。

备注

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

您正在向 Microsoft 提交一组名为连接器构件的文件,这些文件是使用 Microsoft 提供的命令行界面 (CLI) 工具下载的。 此工具验证连接器是否有任何中断错误。

请按照以下步骤开始:

  1. 按照安装说明安装 Microsoft Power Platform 连接器 CLI 工具。

  2. 通过运行 paconn login 来使用命令行登录到 Microsoft Power Platform。 按照说明使用 Microsoft 的设备代码流程登录。

  3. 在经过身份验证后,下载自定义连接器文件:

    • 运行 paconn download。 选择自定义连接器所在的环境,方法是:在命令行中指定其编号,然后选择自定义连接器名称。

    该工具将文件夹中的连接器构件下载到您运行 paconn 的文件系统位置。 根据发布者的类型,您会发现各种构件:

发布服务器 项目
已验证 apiDefinition.swagger.json
apiProperties.json
settings.json
连接器图标
独立 apiDefinition.swagger.json
apiProperties.json

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

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

创建自述文件项目

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

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

提示

已知问题和限制是一个需要维护的重要部分,可以让您的用户及时了解最新信息。

步骤 6:提交连接器以进行部署

在提交过程中,您将连接器开源到我们的 Microsoft Power Platform 连接器库

  1. 请按照提交您的连接器以获得 Microsoft 认证中的说明提交到 GitHub 和认证门户。

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

  2. 在您向开放源代码存储库提交拉取请求后,Microsoft 将在 1 到 2 周内部署并验证您的连接器。 如果需要更新,请再等待 1 到 2 周。

    **如果您的连接器具有 OAuth,将在 ISV Studio 中提交包,然后从连接器提交请求中获取 APIname 以更新应用。

    作为提交的一部分,Microsoft 通过使用 CLA-bot、Swagger Validator 和 Breaking Change Detector 工具来验证您的连接器。 如果您需要解决 Swagger 错误,请转到修复 Swagger 验证者错误

步骤 7:对经过验证的发布者进行的测试的要求

在我们验证您的连接器后,我们会要求您进行彻底的测试。

  1. 按照在认证中测试连接器中的说明进行操作,以在预览区域中创建环境,从而为测试做好准备。

  2. 在一周内,请通知您的 Microsoft 联系人您已完成测试,以便我们可以开始部署。

  3. 在 Microsoft 和您验证连接器的功能和内容后,我们将在预览区域中暂存要部署的连接器以进行测试。

步骤 8:等待部署

在连接器通过测试验证后,我们将在所有产品和区域中部署它。

重要

通常,部署连接器需要 3 到 4 周。 无论您的连接器的大小或复杂程度如何,无论是新的还是更新,都需要这些时间。 为了保护完整性,连接器将接受相同的验证任务,以测试每个部署中跟踪的功能和内容。

我们通过电子邮件通知您连接器将部署到的区域名称,因为部署到区域是分步骤完成的。 如果出现部署延迟或冻结,经过验证的发布者可以在 ISV 门户活动控制中找到状态。 独立发布者将会收到电子邮件通知。

生产部署

我们的生产连接器部署计划从太平洋标准时间/太平洋夏令时周五早上开始。 您需要至少提前 24 小时让 Microsoft 知道您已经准备好进行生产部署,以便我们将您的连接器包括在下一次计划的部署中。 经过验证的发布者可以在 ISV 门户活动控制中通知我们。 独立发布者可以通知他们的 Microsoft 联系人。

区域部署

在不同地区的部署按预先确定的每日顺序进行。 这些区域包括:

  • 测试。
  • 美国预览。
  • 亚洲(日本和印度除外)。
  • 欧洲(英国除外)。
  • 巴西、加拿大、日本和印度。
  • 澳大利亚、英国和美国。

例如,如果您的连接器计划在星期一部署,那么它将在第一天部署到测试区域。 然后,它在第二天部署到美国预览区域。 每天继续部署,直到连接器部署到所有六个区域。

我们不会在星期六、星期日和美国节假日部署。

由于您的连接器即将完成认证,我们在 Power Automate博客 上向您介绍连接器的营销机会。

步骤 9:了解部署后选项

部署连接器后,您可以了解以下一些选项:

提交之前的清单

在继续提交您的连接器以获得 Microsoft 认证之前,请确保:

提示

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

如果您是经过验证的发布者(而不是独立发布者),当您提交 Microsoft 认证时,会要求您同意我们的合作伙伴协议和保密协议。 如果想要在提交之前查看这些条款和语言,请联系你的 Microsoft 联系人。

下一步

提交连接器进行 Microsoft 认证

提供反馈

我们非常感谢大家提出有关连接器平台问题或新功能想法的反馈。 要提供反馈,请转到提交问题或获取连接器帮助,然后选择反馈类型。