保護對 API 管理開發人員入口網站的存取 \(部分機器翻譯\)
適用於:開發人員 |基本 |基本 v2 |標準 |標準 v2 |Premium |進階 v2
APIM 具有可完全自訂的獨立受控開發人員入口網站,可在外部 (或內部) 使用,讓開發人員使用者能夠對透過 APIM 發佈的 API 進行探索與互動。 開發人員入口網站提供數個選項,可協助使用者安全註冊及登入。
注意
根據預設,開發人員入口網站會啟用匿名存取。 這表示任何人都可以在不登入的情況下檢視入口網站和內容,儘管使用測試控制台等功能受到限制。 您可以啟用需要使用者登入才能檢視開發人員入口網站的設定。 在 Azure 入口網站 中,於 API 管理 實例的左側功能表中,於 [開發人員入口網站] 底下,選取 [身分識別>設定]。 在 [匿名使用者] 底下,選取 [啟用] [將匿名使用者重新導向至登入] 頁面。
驗證選項
外部使用者 - 當開發人員入口網站會由外部取用時,慣用選項是透過 Azure Active Directory B2C (Azure AD B2C) 啟用企業對取用者的存取控制。
- Azure AD B2C 提供使用 Azure AD B2C 原生帳戶的選項:使用者註冊 Azure AD B2C,並使用該身分識別存取開發人員入口網站。
- 若您想讓使用者運用現有的社交媒體或同盟組織帳戶來存取開發人員入口網站,Azure AD B2C 也很實用。
- Azure AD B2C 提供許多功能來改善終端使用者註冊和登入體驗,包括條件式存取和 MFA。
如需在開發人員入口網站中啟用 Azure AD B2C 驗證的步驟,請參閱如何在 Azure APIM 中使用 Azure Active Directory B2C 授權開發人員帳戶。
內部使用者 - 在內部取用開發人員入口網站時的慣用選項是利用您的公司 Microsoft Entra ID。 針對需要透過開發人員入口網站存取和探索 API 的企業使用者,Microsoft Entra ID 提供順暢的單一登入 (SSO) 體驗。
如需在開發人員入口網站中啟用 Microsoft Entra 驗證的步驟,請參閱如何在 Azure APIM 中使用 Microsoft Entra ID 授權開發人員帳戶。
基本驗證 - 預設選項是使用內建開發人員入口網站使用者名稱和密碼提供者,這可讓開發人員直接在 APIM 中註冊,並使用 APIM 使用者帳戶登入。 透過此選項註冊的使用者會受到 CAPTCHA 服務保護。
開發人員入口網站測試主控台
除了為開發人員使用者提供設定來註冊存取和登入之外,開發人員入口網站還包含測試主控台,開發人員可透過 APIM 傳送測試要求至後端 API。 對於使用 Azure 入口網站管理服務的 APIM 參與使用者來說,也有這樣的測試設備存在。
如果透過 Azure APIM 公開的 API 受到 OAuth 2.0 保護 (即呼叫應用程式 (持有人) 需要取得並傳遞有效的存取權杖),您可以設定 APIM,代表 Azure 入口網站或開發人員入口網站測試主控台使用者來產生有效權杖。 如需詳細資訊,請參閱如何透過設定 OAuth 2.0 使用者授權來授權開發人員入口網站的測試主控台。
讓測試主控台取得有效的 OAuth 2.0 權杖以進行 API 測試:
將 OAuth 2.0 使用者授權伺服器新增至您的執行個體。 您可以使用任何 OAuth 2.0 提供者,包括 Microsoft Entra ID、Azure AD B2C 或第三方識別提供者。
然後,使用該授權伺服器的設定來設定 API。 在入口網站中,在 API 的 [設定] 頁面>[安全性]>[使用者授權] 上,設定 OAuth 2.0 授權。
這個適用於 API 測試的 OAuth 2.0 設定,與使用者存取開發人員入口網站所需的設定無關。 不過,識別提供者與使用者可能相同。 例如,內部網路應用程式可能需要使用者搭配其公司身分識別使用 SSO 來存取開發人員入口網站。 相同的公司身分識別可以透過測試主控台取得權杖,以使用相同的使用者內容呼叫後端服務。
案例
不同的驗證和授權選項適用於不同案例。 下列各節會探索三個範例案例的高階設定。 需要更多步驟,才能完全保護和設定透過 APIM 公開的 API。 不過,這些案例會特意著重於每個案例中建議的最低設定,以提供所需的驗證和授權。
案例 1 - 內部網路 API 和應用程式
- APIM 參與者和後端 API 開發人員想要發佈受 OAuth 2.0 保護的 API。
- 使用者透過 Microsoft Entra ID 使用 SSO 登入的傳統型應用程式將會取用此 API。
- 桌面應用程式開發人員也需要透過 APIM 開發人員入口網站來探索及測試 API。
金鑰設定:
組態 | 參考 |
---|---|
使用公司身分識別和 Microsoft Entra ID 授權 APIM 開發人員入口網站的開發人員使用者。 | 在 Azure API 管理中使用 Microsoft Entra ID 來授權開發人員帳戶 |
在開發人員入口網站中設定測試主控台,取得有效的 OAuth 2.0 權杖,供桌面應用程式開發人員執行後端 API。 相同的設定可用於 Azure 入口網站中的測試主控台,可供 APIM 參與者和後端開發人員存取。 權杖可以與 APIM 訂閱金鑰搭配使用。 |
如何藉由設定 OAuth 2.0 使用者授權來授權開發人員入口網站的測試主控台 Azure APIM 中的訂用帳戶 |
當使用存取權杖透過 APIM 呼叫 API 時,驗證 OAuth 2.0 權杖和宣告。 | 驗證 JWT 原則 |
接下來在此案例中更進一步,將 APIM 移至網路周邊,並透過反向 Proxy 控制輸入。 如需參考架構,請參閱使用應用程式閘道和 APIM 保護 API。
案例 2 - 外部 API、合作夥伴應用程式
- APIM 參與者和後端 API 開發人員想要快速進行概念證明,透過 Azure APIM 公開一個舊版的 API。 透過 APIM 的 API 會面向外部網際網路。
- 該 API 使用用戶端憑證驗證,並將由對外公開的新單頁應用程式 (SPA) 取用,這類應用程式是由合作夥伴在海外所開發。
- SPA 搭配 OpenID Connect (OIDC) 使用 OAuth 2.0。
- 應用程式開發人員會透過開發人員入口網站存取測試環境中的 API,並使用測試後端端點來加速前端開發。
金鑰設定:
組態 | 參考 |
---|---|
使用預設的使用者名稱和密碼驗證,設定前端開發人員對開發人員入口網站的存取。 開發人員亦能獲邀至開發人員入口網站。 |
將開發人員入口網站的使用者設為以使用者名稱和密碼進行驗證 如何在 Azure API 管理中管理使用者帳戶 |
當 SPA 使用存取權杖呼叫 APIM 時,驗證 OAuth 2.0 權杖和宣告。 在此情況下,對象為 APIM。 | 驗證 JWT 原則 |
設定 APIM 以使用用戶端憑證驗證至後端。 | 在 Azure APIM 中,使用用戶端憑證驗證來保護後端服務 |
在此案例中更進一步,使用開發人員入口網站搭配 Microsoft Entra 授權和 Microsoft Entra B2B 共同作業,讓傳遞合作夥伴能夠更緊密地共同作業。 請考慮在開發或測試環境中,透過 RBAC 委派對 APIM 的存取,並使用自己的公司認證在開發人員入口網站中啟用 SSO。
案例 3 - 外部 API、SaaS、對外公開
APIM 參與者和後端 API 開發人員正在撰寫數個新的 API,要提供給社群開發人員使用。
這些 API 將會公開提供,功能完整且受收費牆保護,並使用 OAuth 2.0 保護其安全性。 在購買授權之後,開發人員會收到自己的用戶端認證和適用於生產用途的訂閱金鑰。
外部社群開發人員會使用開發人員入口網站探索 API。 開發人員會使用其社交媒體帳戶註冊及登入開發人員入口網站。
有興趣的開發人員入口網站使用者若擁有測試訂閱金鑰,也可以探索測試內容中的 API 功能,無須購買授權。 開發人員入口網站測試主控台將代表呼叫的應用程式,並產生後端 API 的預設存取權杖。
警告
若將用戶端認證流程與開發人員入口網站測試主控台搭配使用時,需要特別小心。 請參閱安全性考量。
金鑰設定:
組態 | 參考 |
---|---|
在 Azure APIM 中設定產品,以表示向社群開發人員公開的 API 組合。 設定訂閱,使開發人員能夠取用 API。 |
教學課程:建立和發行產品 Azure APIM 中的訂用帳戶 |
使用 Azure AD B2C 設定社群開發人員對開發人員入口網站的存取。 接著,可將 Azure AD B2C 設為與一或多個下游社交媒體識別提供者搭配使用。 | 如何在 Azure API 管理中使用 Azure Active Directory B2C 來授權開發人員帳戶 |
在開發人員入口網站中,設定測試主控台,以使用用戶端認證流程取得有效的後端 API OAuth 2.0 權杖。 | 如何藉由設定 OAuth 2.0 使用者授權來授權開發人員入口網站的測試主控台 調整本文所示的設定步驟,以使用用戶端認證授與流程,而非授權碼授與流程。 |
更進一步,委派使用者註冊或產品訂閱,使用自己的邏輯來擴充程序。
下一步
- 深入了解 Microsoft 身分識別平台中的驗證與授權。
- 了解如何使用 APIM 減輕 OWASP API 的安全性威脅。