共用方式為


準備 Power Platform 連接器和外掛程式檔以進行認證

此程序對已驗證發行者和獨立發行者都適用。

完成自訂連接器和/或外掛程式的開發後,請遵循這些步驟來為其做好認證準備,並產生要提交給 Microsoft 的連接器和/或外掛程式檔案。

注意

本文提供在 Azure Logic Apps、Power Automate 和 Power Apps 以及 Copilot 的外掛程式中,認證自訂連接器的資訊。 執行本文中的步驟前,請先閱讀取得連接器和/或外掛程式認證

步驟 1:註冊連接器和/或外掛程式 (僅適用於獨立發行者)

本節不適用於已驗證的發行者。

您不需要完成自訂連接器和/或外掛程式的開發就能申請認證。 若要開始認證程序,請填寫我們的註冊表單來註冊您的連接器和/或外掛程式以取得認證。

預計會在兩個工作日內收到 Microsoft 連絡人的電子郵件,他會:

  • 了解您的自訂連接器、連接器和/或外掛程式。
  • 了解您的開發進度。
  • 透過電子郵件向您傳送有關完成認證程序的資訊。

步驟 2:符合連接器的提交需求

為了維持我們認證連接器中品質和一致性的高標準,Microsoft 有一套需求和指導方針,您的自訂連接器必須遵守才能進行認證。

為您的連接器命名

標題必須符合下列需求。

  • 必須存在並以英文撰寫。
  • 必須是唯一的,且可與任何現有的連接器和/或外掛程式標題區別。
  • 應為您的產品或組織的名稱。
  • 應遵循認證連接器和/或外掛程式的現有命名模式。 如果是獨立發行者,則連接器名稱應遵循 Connector and/or plugin Name (Independent Publisher) 模式。
  • 長度不能超過 30 個字元。
  • 不能包含 API連接器 等字眼,或任何 Power Platform 產品名稱 (例如,Power Apps)。
  • 不能以非英數的字元結尾,包括歸位字元、換行或空格。

範例

  • 適當的連接器和/或外掛程式標題:Azure Sentinel*, *Office 365 Outlook
  • 不當的連接器和/或外掛程式標題:Azure Sentinel's Power Apps ConnectorOffice 365 Outlook API

為您的連接器撰寫描述

描述必須符合下列需求。

  • 必須存在並以英文撰寫。
  • 必須沒有語法和拼字錯誤。
  • 應該簡潔描述您的連接器所提供的主要目的和價值。
  • 不能少於 30 個字元或多於 500 個字元。
  • 不能包含任何 Power Platform 產品名稱 (例如 'Power Apps ')。

設計連接器的圖示 (僅適用於已驗證的發行者)

本節不適用於獨立發行者。

  • 建立 1:1 尺寸、畫素介於 100 x 100 與 230×230 之間 (無圓角) 的標誌。
  • 使用與您指定的圖示背景色彩相符的非透明、非白色 (#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 識別碼作為驗證,請確認 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 當地語系化的一部分;因此,開發連接器時,英文語言字串的品質是翻譯品質的關鍵。 在建立要提供的字串值時,請注意以下重要部分。

  • 請務必執行拼字檢查程式,以確保所有字串值都沒有打錯字。 如有任何不完整的英語字串,則內容中的翻譯結果會不完整或不正確。

  • 請確定句子格式完整。 如果句子不完整,產生的翻譯品質也會較低。

  • 請確認該句子的含義是清晰的。 如果該句子的含義不明確,產生的翻譯品質也會較低或不正確。

  • 請確定摘要、 x-ms-summaries 和描述的語法正確。 請勿複製和貼上它們。 若要瞭解它們在產品中的顯示方式,請 轉到連接器字串指南

  • 請盡量避免執行階段複合字串。 請改用格式完整的句子。 串連字串或句子會使翻譯變得困難,或造成錯誤的翻譯。

  • 如果您使用縮寫,請確保將它們大寫以免混淆。 這會減少被誤認為是拼字錯誤的機會。

  • 通常會將駝峰形式字串 (例如,minimizeHighways 或 MinimizeHighways) 視為不可翻譯。 如果您想要當地語系化字串值,則應修正 CaMel 格式字串。

步驟 3:執行解決方案檢查工具來驗證您的連接器

解決方案檢查工具是一種執行靜態分析的機制,可確保您的連接器符合 Microsoft 認證所需的標準。 按照使用解決方案檢查工具驗證自訂連接器中的指示,將您的連接器新增至 Power Automate 或 Power Apps 中的解決方案,並執行解決方案檢查工具。

觀看此 影片,瞭解如何運行解決方案檢查器。

步驟 4:新增中繼資料

您的連接器成品 (檔案) 必須包含描述連接器及其最終服務的特定中繼資料。 中繼資料中提供的資訊會發佈在我們的連接器文件中,而且所有使用者都可以公開存取。 請勿提供任何私人或機密資訊,如果有任何關於提供此資訊給我們的問題,請透過您的 Microsoft 連絡人告知我們。 若要了解中繼資料的記載方式,請造訪連接器參考 底下的任一連接器特定文件頁面。

步驟 4a:Publisher 和 stackOwner 屬性

  • "Publisher" 是您的公司或組織的名稱。 提供完整的公司名稱 (例如,"Contoso Corporation")。 這必須是英數字元格式。
  • "stackOwner" 是連接器所連線後端服務堆疊的擁有公司或組織。 這必須是英數字元格式。
發行者 Description 範例
已驗證 除非 ISV 是代表 stackOwner 組建連接器,否則發行者和 stackOwner 會是相同的。 「發行者」:"Tesla",
"stackOwner": "Tesla"
獨立 您必須提供堆疊負責人和發行者負責人。 「發行者」:"Nirmal Kumar",
"stackOwner": "ITGlue"

檔位置: openapidefinition.json

語法: publisherstackOwner 屬性作為頂級屬性存在於openapidefinition.json檔中。 新增醒目提示行,如下所示。 請確認您完全按照所示輸入屬性名稱和架構。

顯示可在範例程式碼片斷中使用之發佈者和 stackOwner 屬性的螢幕截圖。

顯示定義連絡人物件 (以紅色醒目提示) 之區塊的程式碼。 此區塊必須直接位於描述之下。 其他區塊 (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 工具方面存在限制。 有關詳細資訊,請參閱 README檔中的限制

步驟 4d:JSON 檔案格式和限制

  • 請確定您的屬性已正確對齊。

  • 將您的 JSON 貼上至 Visual Studio Code 中。 可隨意使用拼字檢查工具和外掛程式 (例如 JSON 外掛程式) 之類的擴充功能。

  • Swagger 檔案不應大於 1 MB。

    • 開始組建之前,請先考慮連接器的設計。 評估連接器是否應分成兩 (2) 個或多個連接器。
    • 較大的 Swagger 檔案可能會在使用連接器時造成延遲。

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

    三個 HubSpot 連接器的資料夾螢幕截圖。

步驟 5:符合外掛程式的提交需求

如果您還要提交用於認證的相關聯連接器外掛程式,則適用本節內容。

步驟 6:準備連接器和/或外掛程式成品

注意

  • 在認證之前,請確保您遵循了規格並確保連接器和/或外掛程式的品質。 若未能做到將會導致認證延遲,因為系統會要求您進行變更。
  • 提供主機 URL 的產品版本。 不允許使用暫存、開發及測試主機 URL。

你要向 Microsoft 提交一組檔,這是從製作者門戶 Microsoft Copilot Studio 或生成的解決方案。 要打包檔,請 跟隨 本節中的步驟。

連接器和外掛程式封裝指南

本節中的程序引導您完成各種封裝案例。 如果只想打包自定義連接器,請使用第一種方案。 如果要同時打包自定義連接器 外掛程式,請使用第二種方案。 如果要打包 現有的 連接器和外掛程式,請使用最後一種方案。

封裝自訂連接器,並提交以進行認證

  1. 建立解決方案的自訂連接器

  2. 在步驟 1 中對連接器解決方案執行解決方案檢查工具

  3. 匯出連接器解決方案。

  4. 使用新建立的自訂連接器建立流程 (測試),並將流程新增至解決方案

  5. 匯出流程解決方案。

  6. 在步驟 3 和 5 中建立包含解決方案的封裝

  7. 建立 intro.md 檔案

  8. 將最終的封裝建立為 ZIP 檔案,該檔案採用以下格式:

    ZIP 檔案中要認證的已驗證連接器的資料夾和檔案的螢幕擷取畫面。

注意

解決方案外部的資料夾和檔案的名稱僅供參考—您可以根據需求進行選擇。 但是,不要操作解決方案內的檔案。

  1. 將封裝上傳至儲存體 Blob,並產生 SAS URL。 請確保 SAS URI 的有效期至少為 15 天。
  2. 將封裝提交至合作夥伴中心

封裝自訂連接器和外掛程式以進行認證

  1. 依照本文封裝自訂連接器,並提交以進行認證中的步驟 1 到 5 進行操作。

  2. 在 Microsoft Copilot Studio 入口網站中建立外掛程式,並將其匯出為解決方案

  3. 根據以下內容建立封裝

  4. 建立 intro.md 檔案

  5. 將最終的封裝建立為 ZIP 檔案,該檔案採用以下格式。

    ZIP 檔案中要認證的已驗證連接器和外掛程式的資料夾和檔案的螢幕擷取畫面。

注意

解決方案外部的資料夾和檔案的名稱僅供參考—您可以根據需求進行選擇。 但是,不要操作解決方案內的檔案。

  1. 將封裝上傳至儲存體 Blob,並產生 SAS URL。 請確保 SAS URI 的有效期至少為 15 天。
  2. 將封裝提交至合作夥伴中心

封裝現有已驗證連接器和外掛程式以進行認證

  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,請務必包含取得認證的指示。

提示

可維護已知問題和限制區段,讓您的使用者保持最新狀態。

步驟 7:驗證包的結構

包驗證文本驗證包結構,並説明您以可接受的格式生成包以進行認證。 使用此鏈接下載包驗證器腳本: ConnectorPackageValidator.ps1

要運行文稿,請 跟隨 以下步驟:

  1. 在管理員模式下打開 Windows PowerShell。

    管理員模式下的 Windows PowerShell 螢幕截圖。

  2. 通過輸入更改 cd / 驅動器位置。

    以下示例使用 C:\

    更改驅動器的語法螢幕截圖。

  3. 轉到下載包驗證器文本的路徑。

    例如,如果路徑是, C:\Users\user01\Downloads 則輸入 cd .\Users\user01\Downloads\

    用於更改路徑的語法螢幕截圖。

  4. 通過輸入以下命令,將執行策略設置為不受限制:

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted

    用於設置執行策略的語法螢幕截圖。

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

  5. 輸入 Y 以確認您的輸入,這意味著

  6. 執行 ConnectorPackageValidator.ps1 with the following steps:

    1. 輸入包含連接器包的 zip 檔案路徑。
    2. 指定是否啟用 AI 外掛程式。

    如以下範例所示,第一個參數是包含包的有效 zip 檔案路徑。 第二個參數是 yes/y 指示 AI 外掛程式 已啟用,或 no/n 指示它已禁用。

    執行 ConnectorPackageValidator.ps1 的語法螢幕截圖。

    如果包結構正確,則會顯示以下成功消息:

    成功消息的屏幕截圖。

    如果包結構存在問題,腳本會通過檢測和突出顯示包結構中的缺陷來提供問題詳細資訊。

    問題詳細信息的屏幕截圖。

步驟 8:提交您的連接器和/或外掛程式以進行認證

在提交過程中,您將連接器和/或外掛程式的開放原始碼公開在我們的 Microsoft Power Platform 連接器存放庫

  1. (適用於獨立發行者) 若要將封裝提交至 Microsoft 進行認證,請依照獨立發行者認證程序中的指示操作。

  2. (適用於已驗證的發行者) 若要將封裝提交至 Microsoft 以取得合作夥伴中心的認證,請依照已驗證發行者認證程序中的指示操作。

    如果您是已驗證的發行者,且您使用的是自訂程式碼,則需要提交 script.csx 檔案。

    如果連接器具有 OAuth,請在合作夥伴中心提供用戶端識別碼和密碼。 此外,從連接器提交請求中取得 APIname 以更新您的應用程式。

    在提交過程中,Microsoft 會認證您的連接器和/或外掛程式。 如果您需要疑難排解 Swagger 錯誤,請移至修正 Swagger 驗證程式錯誤

提交前的檢查清單

在繼續提交連接器以進行 Microsoft 認證之前,請先確定:

提示

  • 建立 YouTube 影片、部落格或其他內容,以分享如何開始使用連接器和/或外掛程式的範例或螢幕擷取畫面。
  • intro.md 檔案中附上連結,讓我們可以新增至文件中。
  • 工具提示新增至 Swagger 檔案,以幫助使用者更加順利。

下一個步驟