在 Azure 容器應用程式中實作驗證和授權
Azure 容器應用程式提供內建的驗證和授權功能,以最少或無程式碼方式保護您的外部輸入啟用容器應用程式。 適用於容器應用程式的內建驗證功能,可透過提供現成的驗證與同盟識別提供者來節省您的時間與精力,讓您專注於應用程式的其餘部分。
- Azure 容器應用程式可讓您存取各種內建驗證提供者。
- 內建的驗證功能不需要任何特定語言、SDK、安全性專業知識,甚至不需要您撰寫任何程式碼。
此功能只能與 HTTPS 搭配使用。 確定在容器應用程式的輸入設定中停用 allowInsecure
。 您可以設定容器應用程式進行驗證,無論是否限制存取網站內容和 API。
- 若僅要將應用程式存取限制為已驗證的使用者,請將其 [限制存取] 設定設為 [需要驗證]。
- 若要驗證但不限制存取,請將其 [限制存取] 設定設為 [允許未驗證的存取]。
身分識別提供者
容器應用程式使用同盟身分識別,由第三方識別提供者為您管理使用者身分識別和驗證流程。 預設可用的識別提供者如下:
Provider | 登入端點 | 做法指引 |
---|---|---|
Microsoft 身分識別平台 | /.auth/login/aad |
Microsoft 身分識別平台 |
/.auth/login/facebook |
||
GitHub | /.auth/login/github |
GitHub |
/.auth/login/google |
||
X | /.auth/login/twitter |
X |
任何 OpenID Connect 提供者 | /.auth/login/<providerName> |
OpenID Connect |
當您使用上述其中一個提供者,就可使用登入端點進行使用者驗證,及驗證來自提供者的驗證權杖。 您可以為使用者提供不限數量的提供者選項。
功能架構
驗證和授權中介軟體元件是平台的功能,可在應用程式中的每個複本上以 sidecar 容器的形式執行。 啟用時,每個傳入的 HTTP 要求都會通過安全性層,再由您的應用程式進行處理。
平台中介軟體可為您的應用程式處理下列事項:
- 使用指定的識別提供者驗證使用者和用戶端
- 管理已驗證的工作階段
- 將身分識別資訊插入 HTTP 要求標頭
驗證和授權模組會在與您應用程式程式碼隔離的個別容器中執行。 因為安全性容器不執行內含式,所以無法直接與特定的語言架構相整合。 不過,您應用程式所需的相關資訊會在要求標頭中提供。
驗證流程
所有提供者的驗證流程皆相同,差別僅在是否要使用提供者的 SDK 登入:
不使用提供者 SDK (伺服器導向流程或伺服器流程):應用程式會將同盟登入委派給容器應用程式。 委派通常是瀏覽器應用程式的情況,其無法向使用者展示提供者登入頁面。
使用提供者 SDK (用戶端導向的流量或用戶端流量):應用程式會以手動方式將使用者登入提供者,然後將驗證權杖提交給 App Service 進行驗證。 此方法通常是無瀏覽器應用程式的情況,其無法向使用者展示提供者登入頁面。 例如,使用提供者的 SDK 讓使用者登入的原生行動應用程式。