共用方式為


設定認證管理員 - GitHub API

適用於:所有 API 管理 層

在本文中,您將瞭解如何在 API 管理 中建立受控 連線 ,並呼叫需要 OAuth 2.0 權杖的 GitHub API。 此範例使用授權碼授與類型。

您將學習如何:

  • 在 GitHub 中註冊應用程式
  • 在 API 管理 中設定認證提供者
  • 設定連線
  • 在 API 管理 中建立 API 並設定原則
  • 在 API 管理 中測試您的 GitHub API

先決條件

步驟 1:在 GitHub 中註冊應用程式

建立 API 的 GitHub OAuth 應用程式,並為其提供您要呼叫之要求的適當權限。

  1. 登入 GitHub。

  2. 在您的帳戶設定檔中,前往 「設定」 > 「開發人員設定 > 」「OAuth 應用程式」。 選取 [新增 OAuth 應用程式]。

    在 GitHub 中註冊新 OAuth 應用程式的螢幕擷取畫面。

    1. 輸入應用程式的 應用程式名稱首頁 URL 。 在此範例中,您可以提供預留位置 URL,例如 http://localhost
    2. 或者,新增 應用程式描述
    3. [授權回呼 URL (重新導向 URL)] 中,輸入 https://authorization-manager.consent.azure-apim.net/redirect/apim/<YOUR-APIM-SERVICENAME>,以取代您要設定認證提供者的 API 管理 執行個體名稱。
  3. 選取 [註冊應用程式]。

  4. 在 [ 一般] 頁面上,複製您將在步驟 2 中使用的 用戶端 ID

  5. 選取 [產生新的用戶端密碼]。 複製密碼,該密碼不會再次顯示,您將在步驟 2 中使用。

    螢幕擷取畫面,示範如何在 GitHub 中取得應用程式的用戶端識別碼和用戶端密碼。

步驟 2:在 API 管理 中設定認證提供者

  1. 登入 Azure 入口網站 並移至您的 API 管理 執行個體。

  2. 在左側功能表中,選取 API> 認證管理員>+ 建立

    在 Azure 入口網站 中建立 API 管理 認證的螢幕擷取畫面。

  3. [建立認證提供者 ] 頁面上,輸入下列設定:

    設定 價值觀
    認證提供者名稱 您選擇的名稱,例如 github-01
    身分識別提供者 選取 [GitHub]
    撥款類型 選取 [授權碼]
    用戶端識別碼 貼上您先前從應用程式註冊複製的值
    客戶端密碼 貼上您先前從應用程式註冊複製的值
    Scope 在此範例中,請將範圍設定為 User
  4. 選取 ,創建

  5. 出現提示時,請檢閱顯示的 OAuth 重新導向 URL,然後選取 [ ] 以確認它符合您在應用程式註冊中輸入的 URL。

步驟 3:設定連線

[連線] 索引標籤上,完成連線至提供者的步驟。

備註

當您設定連線時,API 管理 預設會設定 存取原則 ,以啟用執行個體系統指派的受控識別的存取。 此存取權對於此範例來說已經足夠了。 您可以視需要新增其他存取原則。

  1. 輸入 連線名稱,然後選取 儲存
  2. [步驟 2:登入連線 (針對授權碼授與類型)] 下,選取 [登入] 按鈕。 完成該處的步驟以授權存取,然後返回 API 管理。
  3. 在 [ 步驟 3:判斷誰將有權存取此連線 (存取原則)] 底下,會列出受控識別成員。 新增其他成員是選擇性的,視您的案例而定。
  4. 選取 [完成]。

新連線會出現在連線清單中,並顯示「 已連線」狀態。 如果您想要為認證提供者建立另一個連線,請完成上述步驟。

小提示

使用 Azure 入口網站隨時新增、更新或刪除認證提供者的連線。 如需詳細資訊,請參閱 設定多個連線

步驟 4:在 API 管理 中建立 API 並設定原則

  1. 登入 Azure 入口網站 並移至您的 API 管理 執行個體。

  2. 在左側功能表中,選取 [API>>API + 新增 API]。

  3. 選取 HTTP 並輸入下列設定,然後選取 建立。

    Setting 價值觀
    顯示名稱 github用戶
    Web 服務 URL https://api.github.com
    API URL 尾碼 github用戶
  4. 導覽至新建立的 API,然後選取 新增作業。 輸入下列設定,然後選取 [儲存]。

    Setting 價值觀
    顯示名稱 getauthdata
    GET 的 URL /user

    在入口網站的 API 中新增 getauthdata 作業的螢幕截圖。

  5. 請依照上述步驟,使用下列設定新增另一個作業。

    Setting 價值觀
    顯示名稱 getauthfollowers
    GET 的 URL /用戶/關注者
  6. 選取 所有作業。 在 [傳入處理 ] 區段中,選取 (</>) (程式碼編輯器) 圖示。

  7. 在原則編輯器中複製並貼上下列內容。 請確定provider-id原則中的 authorization-idget-authorization-context 值分別對應於您在上述步驟中設定的認證提供者和連線的名稱。 選取 [儲存]。

    <policies>
        <inbound>
            <base />
            <get-authorization-context provider-id="github-01" authorization-id="first-connection" context-variable-name="auth-context" identity-type="managed" ignore-error="false" />
            <set-header name="Authorization" exists-action="override">
                <value>@("Bearer " + ((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</value>
            </set-header>
            <set-header name="User-Agent" exists-action="override">
                <value>API Management</value>
            </set-header>
        </inbound>
        <backend>
            <base />
        </backend>
        <outbound>
            <base />
        </outbound>
        <on-error>
            <base />
        </on-error>
    </policies>
    

上述原則定義由三個部分組成:

  • get-authorization-context 程式會參照您先前建立的認證提供者和連線,以取得授權憑證。
  • 第一個 set-header 原則會使用擷取的授權權杖建立 HTTP 標頭。
  • 第二個 set-header 原則會建立 User-Agent 標頭 (GitHub API 需求)。

步驟 5:測試 API

  1. [測試 ] 索引標籤上,選取您設定的一個作業。

  2. 選擇 傳送

    在入口網站中成功測試 API 的螢幕擷取畫面。

    成功的回應會從 GitHub API 傳回使用者資料。