[GCP] 如何於 GCP 上設置外部身份認證 (External IDP)
在以下文章,我將展示如何設定一個外部 IDP 搭配 Active Directory (AD) 給 Cloud Identity 作為 GCP 主控台身份認證使用。
在使用 Google Cloud Platform 時,當要登入至 GCP主控台 ,預設的身分驗證來源為 Google Cloud Identity。所以擁有 Google 帳號的使用者,例如 gmail 或是 GSuite 帳號等,都可以利用這樣子的驗證機制的登入使用 GCP。
然而,對於大多數的企業 IT 來說,既有公司的環境內早已有公司內定的身份認證服務,例如 Microsoft 的 Active Directory(AD) 就是一個知名的例子。為了滿足企業用戶的需要,Google Cloud Identity 支援與外部第三方身份認證服務 (IDP) 做整合。
整個配置 Demo 將從頭開始,當作一間剛創立的公司從頭建起整個環境。而在這邊外部 IDP 的選擇,將採用 Active Directory Federation Service (ADFS) 作為公司內認證服務。按實際需要,外部IDP亦可能為其他方案,如:Okta, Keycloak 等。
此篇文章是參考 Google Cloud混合雲解決方案教程 ,更多的資訊你可以在該連結內找到。
準備開始
在按照步驟執行下面操作之前,請先確認已準備好所有預先準備:
- 可以在 Internet 上被有效解析的域名。
- 準備一個有效網域憑證 (之後將用在ADFS設定上)。
- 註冊 Google Cloud Identity。
- 註冊將用於託管 AD 和 ADFS 的 Google Cloud Platform 帳戶。
之後的安裝過程,簡略來說將包括:
- 安裝和配置 Active Directory (AD) 服務。
- 安裝 Google Cloud Directory Sync,並將其配置為將 AD 身份同步到Google Cloud Identity。
- 安裝並配置 Active Directory Federation Servicer(ADFS) 服務器。
- 將 Cloud Identity 配置為使用 ADFS 進行用戶身份驗證。
- 對整體方案進行測試。
A. 安裝與配置Active Directory (AD) 伺服器.
- 在GCP主控台上,創建一台 Window Server 2016 的運行伺服器。
- 安裝AD並註冊一個自定義域名。
- 當配置創建 Windows 2016 伺服器時,為了之後 ADFS 使用,記得先勾選
允許 HTTPS 流量
。 - 安裝 Microsoft Remote Desktop 用戶端程式 (For Windows、For Mac),以協助在遠端桌面中複製/貼上命令,並支持與本機作分享資料夾。
B. 於 Cloud Identity 上創建帳號用於 Directory 同步
- 使用你的
管理者帳號
登入到Google Admin。
- 點選
使用者
->新增使用者
,然後新增一個給Directory Sync使用的帳號。
- 找到新建立的使用者並點擊打開。
- 在管理員角色與權限下,點擊
已指派角色
。 - 指派
超級管理員
角色給該帳號。
C. 安裝 Google Cloud Directory Sync 並配置它,作AD 身份同步至 Google Cloud Identity
- 產生一個 Google Identity 帳戶,專門用作AD同步
- 產生一個 AD 帳戶,專門用作 AD 同步。
- 安裝並配置 Google Cloud Directory Sync。
- 產生一個一般 AD 帳戶用於測試同步功能。
資源:
- 下載 Directory Sync 連結在此
- PowerShell 命令,用於產生 Windows 內環境資料夾(
c:\ProgramData\gcds
),之後將用於儲存 GCDS 配置檔。
提示:
- 在配置 GCDS 的 Authorized User (在 LDAP Configuration 頁籤下),兩種帳號格式皆可:
domain\username
或是username@[FQDN]
。 - 預設的 query rule 將搜尋出所有 email 欄位有值的帳號。
(&(objectCategory=person)(objectClass=user)(mail=*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
- 當產生 AD 帳號用來測試同步功能時,email 欄位必須設置,該欄位之後將被配置成為 Cloud Identity 用戶 ID。
D. 安裝與配置 Active Directory Federation Services(ADFS)
- 安裝與配置 ADFS,使其能夠被用戶訪問。
- 配置將 AD email 欄位映射到 SAML NameID。
- 配置 Cloud Identity 以採用 ADFS 作為其外部 IDP。
提示:
- 在 ADFS 安裝過程中,一個有效的 PTX 格式的 SSL 憑證會被需要,憑證產生與簽署的部分可以參考:使用 Let’s Encrypt 產生 SSL 憑證
E. 情境測試
- 使用 AD 帳戶登入 GCP 主控台。
F. 排程 AD 同步
- 為 GCDS 產生一份 PowerShell 運行腳本(ps1)。
- 為 ps1 腳本,設置排程工作。
- 手動觸發排程做驗證。
資源:
- PowerShell 運行腳本範例
- 從你個人 Profile 複製 GCDS 所需之金鑰至
NT AUTHORITY\LOCAL SERVICE
的Profile:
- 排程配置範例
延伸筆記
- 用命令列手動執行 GCDS
// Simulate
C:\Program Files\Google Cloud Directory Sync> .\sync-cmd.exe -c c:\ProgramData\gcds\config.xml
// Commit
C:\Program Files\Google Cloud Directory Sync> .\sync-cmd.exe -c c:\ProgramData\gcds\config.xml