使用外部身分驗證使用者
本快速入門說明如何使用 Identity-Aware Proxy (IAP) 和外部身分保護應用程式。結合 IAP 和 Identity Platform 後,您就能使用各種身分識別機制 (除了 Google 帳戶外,還包括 OAuth、SAML 和 OIDC) 驗證使用者。
在本快速入門導覽課程中,您將使用 Facebook 驗證機制保護 App Engine 範例應用程式。
事前準備
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Make sure that billing is enabled for your Google Cloud project.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
為專案初始化 App Engine:
gcloud app create --project=project-id
安裝最新版本的 Node.js。
-
npm install -g firebase-tools
啟用 API
首先,請啟用 Identity Platform:
前往Google Cloud 控制台的「Identity Platform Marketplace」頁面。
按一下 [Enable Identity Platform] (啟用 Identity Platform)。 Google Cloud 控制台會顯示「Identity Platform」頁面。
然後啟用 IAP:
前往 Google Cloud 控制台的「IAP」頁面。
選取與 Identity Platform 相同的專案。不支援使用其他專案。
按一下「啟用 API」。
下載及部署範例程式碼
本快速入門導覽課程的程式碼包含兩個元件:用戶端應用程式和驗證應用程式。
用戶端應用程式受到 IAP 保護。如果用戶端收到未驗證使用者的要求,就會將要求重新導向至驗證應用程式,以便驗證使用者的身分。如果使用者成功登入,驗證應用程式會以 JSON Web Token (JWT) 回應。為了示範目的,用戶端應用程式會顯示 JWT。
首先,請下載程式碼並部署用戶端應用程式:
下載程式碼範例:
git clone https://github.com/GoogleCloudPlatform/iap-gcip-web-toolkit.git
切換至用戶端應用程式目錄:
cd iap-gcip-web-toolkit/sample/app
安裝依附元件:
npm install
將用戶端應用程式部署至 App Engine:
npm run deploy
用戶端應用程式會在下列網址啟動:
https://[PROJECT-ID].appspot.com
接著,部署驗證應用程式:
變更為驗證應用程式的目錄:
cd ../authui-firebaseui
安裝依附元件:
npm install
將驗證應用程式設為使用 Firebase 託管。指定包含 IAP 保護用戶端應用程式的 Google Cloud 專案的 Google Cloud專案 ID:
firebase use project-id
部署應用程式:
npm run deploy
驗證應用程式會在下列網址啟動:
https://[PROJECT-ID].firebaseapp.com
您已成功部署用戶端和驗證應用程式!接下來,請設定 Identity Platform 和 IAP。
設定 Identity Platform
IAP 會使用 Identity Platform 驗證外部身分。本快速入門課程以 Facebook 做為範例,但 Identity Platform 支援多種識別資訊提供者。
建立 Facebook 應用程式
如要透過 Facebook 驗證使用者,您需要應用程式 ID和應用程式密鑰。
登入 Facebook 開發人員平台。如果您還沒有 Facebook 帳戶,請先建立一個。
按一下「新增應用程式」。
在左選單中依序選取「設定」>「基本」。
在「隱私權政策網址」方塊中輸入任何有效的網址。如果您稍後將應用程式部署至實際環境,可以更新網址,讓其指向隱私權政策。
請記下應用程式 ID 和應用程式密鑰。您會在下一節中使用這些資訊。
將 Facebook 新增為識別資訊提供者
設定 Identity Platform 使用 Facebook 進行驗證:
前往 Google Cloud 控制台的「Identity Providers」頁面。
按一下「新增供應商」。
從供應商清單中選取「Facebook」Facebook。
輸入您在上一節中取得的應用程式 ID 和應用程式密鑰。
按一下 [儲存]。
設定 OAuth 重新導向 URI
Facebook 處理完驗證應用程式的要求後,就需要重新導向的 URI。
按一下左選單中的「產品」。
找出「Facebook 登入」產品,然後按一下「設定」。
在左側導覽選單中,選取「設定」 (您不需要完成引導式快速入門流程)。
在「有效的 OAuth 重新導向 URI」方塊中輸入重新導向 URI:
https://project-id.firebaseapp.com/__/auth/handler
您也可以在 Identity Platform 提供者設定頁面中找到這個 URI。
按一下 [儲存變更]。
您已完成 Identity Platform 設定!您現在可以設定 IAP 以用於驗證。
啟用 IAP 以使用外部身分
前往 Google Cloud 控制台的「應用程式內購」頁面。
按一下「應用程式」分頁標籤。
選取先前部署的範例 App Engine 應用程式。「Published」類別中的網址應類似於以下範例:
https://project-id.appspot.com
在 IAP 資料欄中,將切換鈕切換為「On」。
在側邊面板中,按一下「使用外部身分進行驗證」的「開始」。
在「Sign-in page」下方,選取「I'll provide my own」。
在「Authentication URL」欄位中,輸入驗證應用程式的網址,格式如下:
https://project-id.firebaseapp.com/
輸入網址後, Google Cloud 控制台會自動附加您的 API 金鑰。
勾選專案名稱旁的方塊。應將 Facebook 列為身分識別提供者。
按一下 [儲存]。
您已完成 IAP 設定。
測試使用者驗證機制
如要測試 IAP 是否能保護您的應用程式,並使用 Facebook 驗證使用者,請按照下列步驟操作:
在瀏覽器中前往用戶端 App Engine 應用程式:
https://project-id.appspot.com
經過短暫的載入畫面後,系統會將您重新導向至 Identity Platform 登入頁面。
按照畫面上的提示使用 Facebook 進行驗證。
系統應會將您重新導向至用戶端應用程式,該應用程式會顯示 Identity Platform 傳回的 JWT。
如要完全登出,您必須登出所建立的範例應用程式和 Facebook。Firebase 會與 Facebook 建立有效時間為一小時的工作階段,因此您必須登出這兩個應用程式。詳情請參閱「管理使用者工作階段」。
恭喜!您已成功將應用程式部署至 App Engine,並使用 IAP 和外部身分保護應用程式。
清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取您在本頁所用資源的費用,請按照下列步驟操作。
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
此外,您可能也想刪除自己建立的 Facebook 應用程式。
後續步驟
- 使用 FirebaseUI 自訂驗證 UI,或從頭開始建構自訂 UI。
- 進一步瞭解如何使用 Identity Platform 設定身分識別資訊提供者。
- 瞭解如何使用 Identity Platform 多用戶群建立不重複的使用者與設定。