最近被指派要將 ADFS 徹底摸透, 從最基本的 ADFS 安裝, 到 ADFS 管理, OAuth 整合, ADFS 遷移與升級, ADFS 維運以及 Troubleshooting 等主題都要清楚, 因此我準備把學習的筆記記錄下來, 作為參考文件.

第一的部分從建立單機版的 ADFS 步驟開始.

1. 環境準備

(1) 本範例以 Windows Server 2016 為安裝 ADFS 的作業系統, 因此需要安裝好 Windows Server 2016, 並且加入網域中

(2) 憑證: 可以使用公開憑證作為 ADFS 憑證使用, 也可以使用 CA Server 發行憑證 (本篇筆記以 CA Server 發行憑證為範例), 如果要使用 CA Server, 請確認企業內部有 Enterprise 憑證主機

2. 為 ADFS 準備憑證

ADFS 可以使用公開憑證(需要花錢購買), 也可以使用 CA Server 發行憑證, 以下步驟為 CA Server 與 ADFS Server 請求憑證的步驟

2.1 建立 ADFS Certificate Template

(1) 登入 CA Server, 從 Tool 中開啟 Certification Authority 管理中心

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第1张图片

(2) 在 CA 管理中心 Console 中選取 Certificate Templates 按右鍵, 選取 Manage

https://ithelp.ithome.com.tw/upload/images/20190402/20111871xnOY3PNDHk.png

(3) 在憑證 Templates 中選取 Web Server 按右鍵, 選取 Duplicate Template

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第2张图片

(4) 開啟屬性視窗, 選取 General, 輸入 ADFS Template 作為 Template 名稱

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第3张图片

(5) 選取 Security 頁籤, 新增 帳戶選項

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第4张图片

(6) 輸入 Domain Computers 群組

https://ithelp.ithome.com.tw/upload/images/20190402/201118710djHjgydwa.png

(7) 選取 Enroll 權限

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第5张图片

(8) 選取 Request Handling 頁籤, 勾選 Allow private key to be exported 選項允許匯出 Private key

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第6张图片

(9) 完成後 ADFS Template 出現在列表中

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第7张图片

(10) 回到 CA 管理 Console, 選取 Certificate Templates 按右鍵, 選取 New, 並選取 Certificate Template to Issue

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第8张图片

(11) 選取 ADFS Template 進行啟用

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第9张图片

(12) ADFS Tempate 便完成在 CA Server 新增的作業

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第10张图片

2.2 申請 ADFS 憑證

(1) 登入 ADFS 主機, 開啟命令提示視窗, 輸入命令 certlm, 開啟本機電腦憑證管理員

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第11张图片

(2) 選取 Personal > Certificates 按右鍵, 選取 All Tasks, 再選取 Request New Certificate...

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第12张图片

(3) 根據設定精靈, 進行設置

https://ithelp.ithome.com.tw/upload/images/20190402/20111871zQLFHTYyUQ.png

(4) 選取 Active Directory Enrollment Policy

https://ithelp.ithome.com.tw/upload/images/20190402/20111871DHGCAHlBZT.png

(5) 選取 ADFS Template, 並點選 More information is required to enroll for this certificate. Click here to configure settings.

如果沒有看到 ADFS Template 選項, 請先執行 GPUpdate /force, 或將 CA 跟憑證匯入 ADFS 主機 Trusted Root Authority

https://ithelp.ithome.com.tw/upload/images/20190402/20111871Kt07mI9TuF.png

(6) 在憑證屬性中, Subject name 欄位, 請選擇 Common name Type, Alternative name 欄位, 請選擇 DNS Type, 並且加入以下的設定值:

a. CNadfs.yourdomain.com

b. DNSadfsservername.yourdomain.com, adfs.yourdomain.com, enterpriseregistration.yourdomain.com, certauth.adfs.yourdomain.com

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第13张图片

(7) 設定 ADFS certificate 為 Friendly name

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第14张图片

(8) 選擇 ADFS Template 並進行 Enroll

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第15张图片

(9) Enroll 成功便完成憑證請求與安裝

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第16张图片

(10) ADFS 憑證會出現在 Personal > Certificates 列表中

https://ithelp.ithome.com.tw/upload/images/20190402/20111871k6F6r8q0o8.png

2.3 將 KDS Root Key 加入至 Group Managed Service Account

(1) 登入 AD Server, 開啟 PowerShell, 使用以下指令新增 KDS Root Key 到 group managed service account

Add-KdsRootKey -EffectiveTime (Get-Date).AddHours(-10)

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第17张图片

(2) 使用以下指令建立 group managed service account

New-ADServiceAccount FsGmsa -DNSHostName adfs.asabuludemo.com -ServicePrincipalNames http/adfs.asabuludemo.com

(3) 為 ADFS 設定 SPN, 指令如下:

setspn -s host/adfs.asabuludemo.com asabuludemo\FsGmsa$

https://ithelp.ithome.com.tw/upload/images/20190402/20111871c56HyggJzf.png

2.4 在 DNS Server 加入 ADFS A record

在 DNS 主機上加入一筆 A Record 如下:

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第18张图片

2.5 安裝 ADFS

(1) 開啟 Windows Add Roles and Features 精靈

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第19张图片

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第20张图片

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第21张图片

(2) 新增 Active Directory Federation Service

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第22张图片

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第23张图片

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第24张图片

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第25张图片

(3) 依照精靈安裝完成後, 選取 Configure the federation service on this server 進行 ADFS 設定

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第26张图片

2.6 設定 ADFS

(1) 開啟 ADFS 設定精靈, 選取 Create the first feder ation seerver in a federation server farm

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第27张图片

(2) 輸入 AD domain administrator 帳戶

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第28张图片

(3) 選取 ADFS 憑證(adfs.yourdomain.com), 服務名稱 adfs.yourdomain.com, 以及 Federation 服務名稱 (通常是組織名稱)

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第29张图片

(4) 在 服務帳戶 設定, 選取 Use an existing domain user account or group Manageed Service Account, 選取前面建立的 group managed service account.

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第30张图片

(5) 指定 SQL Server

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第31张图片

(6) 依照精靈步驟完成安裝

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第32张图片

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第33张图片

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第34张图片

(7) 安裝完成後需要 重新啟動 ADFS 主機

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第35张图片

2.7 啟用登入頁面

重啟 ADFS 主機後, 開啟 PowerShell, 執行以下的指令, 啟用登入頁面

Set-AdfsProperties -EnableIdPInitiatedSignonPage $true

2.8 測試 ADFS 登入

(1) 開啟 Browser, 輸入以下的網址, 測試登入, 點選 Sign in Button

https://adfs.yourdomain.com/adfs/ls/idpinitiatedsignon.htm

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第36张图片

(2) 輸入帳號進行登入

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第37张图片

(3) 登入完成後, 會看到 You are signed in. 訊息, 表示 ADFS 安裝正確

ADFS 學習系列 (1) - Install ADFS on Windows Server 201_第38张图片