本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用智能卡進行身份驗證
WorkSpaces 上的 Windows 和 Linux WorkSpaces 流協議 (WSP) 捆綁包允許使用通用訪問卡 (CAC)
Amazon WorkSpaces 支持將智能卡用於會前身份驗證和會話中身份驗證。會前身份驗證是指用户登錄其 WorkSpace 時執行的智能卡身份驗證。會話中身份驗證是指登錄後執行的身份驗證。
例如,用户可以在使用 Web 瀏覽器和應用程序時使用智能卡進行會話內身份驗證。他們還可以將智能卡用於需要管理權限的操作。例如,如果用户對其 Linux WorkSpace 具有管理權限,則他們可以使用智能卡在運行sudo
和sudo -i
命令。
要求
-
會話前身份驗證需要活動目錄連接器(AD Connector)目錄。AD Connector 使用基於證書的相互傳輸層安全性(相互 TLS)身份驗證,使用基於硬件或軟件的智能卡證書對 Active Directory 的用户進行身份驗證。如需如何設定 AD Connector 和您的本地目錄的詳細資訊,請參目錄配置。
-
若要將智能卡與 Windows 或 Linux WorkSpaces 配合使用,用户必須使用 Amazon WorkSpaces 客户端 3.1.1 或更高版本或更高版本或 WorkSpace macOS 客户端版本 3.1.5 或更高版本。有關將智能卡與 Windows 和 macOS 客户端結合使用的詳細信息,請參閲智慧卡 Support中的Amazon WorkSpaces 使用者指南。
-
根 CA 和智能卡證書必須滿足特定要求。如需詳細資訊,請參閱「」在 AD Connector 中啟用 MTLS 身份驗證以便與智能卡一起使用中的AWS Directory Service管理指南和憑證需求
位於微軟檔案中。 除了這些要求之外,用於 Amazon WorkSpaces 智能卡身份驗證的用户證書必須包含以下屬性:
-
憑證主體名稱 (SAN) 字段中 AD 用户的 userPrincipalName (UPN)。我們建議為用户的默認 UPN 頒發智能卡證書。
-
客户端身份驗證 (1.3.6.1.5.5.7.3.2) 擴展密鑰使用 (EKU) 屬性。
-
智能卡登錄 (1.3.6.1.4.1.311.20.2.2) 伊大學屬性。
-
-
對於會前身份驗證,憑證撤銷檢查需要聯機憑證狀態協定 (OCSP)。對於會話內身份驗證,建議使用 OCSP,但不是必需的。
限制
-
智能卡身份驗證目前僅支持 WorkSpaces 客户端應用程序版本 3.1.1 或更高版本以及 macOS 客户端應用程序版本 3.1.5 或更高版本。
-
僅當客户端在 64 位版本的 Windows 上運行時,WorkSpaces Windows 客户端應用程序 3.1.1 或更高版本才支持智能卡。
-
智能卡身份驗證當前僅支持 AD Connector 目錄。
-
在支援 WSP 的所有區域中使用會話中身份驗證。下列區域提供會前身份驗證:
-
Asia Pacific (Sydney) Region
-
亞太區域 (東京)
-
歐洲 (愛爾蘭) 區域
-
AWS GovCloud (US-West) 區域
-
US East (N. Virginia) Region
-
美國西部區域 (奧勒岡)
-
-
對於 Linux 或 Windows WorkSpaces 間上的會話內身份驗證和會話前身份驗證,當前一次只允許一個智能卡。
-
對於會前身份驗證,當前不支持在同一目錄上同時啟用智能卡身份驗證以及用户名和密碼身份驗證。
-
目前只支援 CAC 和 PIV 卡。其他類型的基於硬件或軟件的智能卡也可能正常工作,但它們尚未經過與 WSP 一起使用的完全測試。
-
當前不支持在 Windows 或 Linux WorkSpace 會話期間使用智能卡解鎖屏幕。若要解決此問題的 Windows WorkSpaces,請參檢測 Windows 鎖定屏幕並斷開會話的連接。若要解決此問題的 Linux WorkSpaces,請參禁用 Linux WorkSpaces 上的鎖定屏幕。
目錄配置
要啟用智能卡身份驗證,必須按以下方式配置 AD Connector 目錄和本地目錄。
AD Connector 目錄配置
開始之前,請確定您的 AD Connector 目錄已按照AD Connector 先決條件中的AWS Directory Service管理指南。特別是,請確保您已在防火牆中打開了必要的端口。
要完成 AD Connector 目錄的配置,請按照在 AD Connector 中啟用 MTLS 身份驗證以便與智能卡一起使用中的AWS Directory Service管理指南。
本地目錄配置
除了配置 AD Connector 目錄外,還必須確保頒發給域控制器的內部部署目錄的證書具有「KDC 身份驗證」擴展密鑰用法 (EKU) 設置。若要執行此操作,請使用 Active Directory 網域服務 (AD DS) 默認 Kerberos 身份驗證憑證模板。請勿使用域控制器證書模板或域控制器身份驗證證書模板,因為這些模板不包含智能卡身份驗證所需的設置。
為 Windows WorkSpaces 啟用智能卡
有關如何在 Windows 上啟用智能卡身份驗證的一般指南,請參閲啟用智能卡通過第三方證書頒發機構登錄的指南
若要允許用户解鎖屏幕鎖定時啟用智能卡會話前身份驗證的 Windows WorkSpaces,您可以在用户的會話中啟用 Windows 鎖屏檢測。當檢測到 Windows 鎖定屏幕時,Workspace 會話將斷開連接,並且用户可以使用其智能卡從 WorkSpace 客户端重新連接。
使用組策略設置檢測到 Windows 鎖定屏幕時,您可以啟用斷開會話連接。如需詳細資訊,請參閱 啟用或禁用 WSP 屏幕鎖定斷開連接會話。
啟用會話內身份驗證或會前身份驗證
默認情況下,Windows WorkSpaces 未啟用以支持使用智能卡進行會前身份驗證或會話期間身份驗證。如果需要,您可以使用組策略設置為 Windows WorkSpaces 啟用會話內身份驗證和會前身份驗證。如需詳細資訊,請參閱 啟用或停用 WSP 的智慧卡重定向。
要使用會前身份驗證,除了更新組策略設置外,還必須通過 AD Connector 目錄設置啟用會前身份驗證。如需詳細資訊,請按照在 AD Connector 中啟用 MTLS 身份驗證,以便在智能卡中使用中的AWS Directory Service管理指南。
允許用户在瀏覽器中使用智能卡
如果您的用户使用 Chrome 作為瀏覽器,則無需特殊配置即可使用智能卡。
如果您的用户使用 Firefox 作為瀏覽器,您可以通過組策略讓用户在 Firefox 中使用智能卡。您可以將此Firefox 組政策範本
例如,您可以安裝 64 位元版本的OpenSC
是您想要用於識別 PKCS #11 的任何值,例如NAME_OF_DEVICE
OpenSC
,其中
是 PKCS #11 模組的路徑。此路徑應指向具有 .DLL 擴展名的庫,例如PATH_TO_LIBRARY_FOR_DEVICE
C:\Program Files\OpenSC Project\OpenSC\pkcs11\onepin-opensc-pkcs11.dll
。
Software\Policies\Mozilla\Firefox\SecurityDevices\
NAME_OF_DEVICE
=PATH_TO_LIBRARY_FOR_DEVICE
如果您使用的是 OpenSC,您也可以加載 OpenSCpkcs11
模塊中運行pkcs11-register.exe
計劃。要運行此程序,請雙擊C:\Program Files\OpenSC Project\OpenSC\tools\pkcs11-register.exe
或者開啟命令提示視窗並執行下列命令:
"C:\Program Files\OpenSC Project\OpenSC\tools\pkcs11-register.exe"
驗證 OpenSCpkcs11
模塊已加載到 Firefox 中,請執行下列作業:
-
如果 Firefox 已在執行,請將其關閉。
-
開啟 Firefox。選擇菜單按鈕
,然後選擇選項。
-
在關於:首選項頁面上,在左側導覽窗格中,選擇隱私與安全。
-
根據憑證,選擇安全設備。
-
在 中裝置管理器對話框中,您應該看到OpenSC 式智能卡框架 (0.21),並且當您選擇它時,它應該具有以下值:
模組:
OpenSC smartcard framework (0.21)
路徑:
C:\Program Files\OpenSC Project\OpenSC\pkcs11\onepin-opensc-pkcs11.dll
疑難排解
如需智能卡疑難排解的詳細資訊,請參證書和配置問題
一些可能導致問題的常見問題:
-
插槽到證書的映射不正確。
-
智能卡上具有多個可與用户匹配的證書。憑證將使用下列準則進行匹配:
-
證書的根 CA。
-
所以此
<KU>
和<EKU>
字段的證書。 -
憑證主體中的 UPN。
-
-
具有多個具有
<EKU>msScLogin
在他們的密鑰用法中。
通常,最好只有一個映射到智能卡中第一個插槽的智能卡身份驗證證書。
用於管理智能卡上的證書和密鑰的工具(例如刪除或重新映射證書和密鑰)可能是製造商特定的。如需詳細資訊,請參您智能卡製造商提供的文件。
為 Linux WorkSpaces 啟用智能卡
工作空間上的 Linux WorkSpaces 流協議 (WSP) 捆綁包僅在AWSGovCloud (US-West) 區域。
WSP 上的 Linux WorkSpaces 域目前具有下列限制:
-
不支持剪貼板、音頻輸入、視頻輸入和時區重定向。
-
不支援多台顯示器。
-
您必須使用 WorkSpaces Windows 客户端應用程序連接到 WSP 上的 Linux WorkSpaces。
若要在 Linux WorkSpaces 上啟用智能卡,您需要在 WorkSpace 映像中包含 PEM 格式的根 CA 證書文件。
獲取根 CA 憑證
您可以通過以下幾種方式獲取根 CA 證書:
-
您可以使用第三方憑證頒發機構操作的根 CA 憑證。
-
您可以使用 Web 註冊站點導出自己的根 CA 證書,該站點是
http://
或者ip_address
/certsrvhttp://
,其中fqdn
/certsrv
和ip_address
是根憑證 CA 服務器的 IP 地址和完整網域名稱 (FQDN)。如需使用 Web 註冊站點的詳細資訊,請參如何導出根證書頒發機構證書fqdn
位於微軟檔案中。 -
您可以使用以下過程從運行活動目錄證書服務 (AD CS) 的根 CA 證書服務器導出根 CA 證書。如需安裝 AD CS 的詳細資訊,請參安裝憑證頒發機構
位於微軟檔案中。 -
使用管理員帳户登錄到根 CA 服務器。
-
從 Windows 中啟動菜單中,開啟命令提示視窗 (啟動 >Windows 系統 >命令提示。
-
使用下列命令,將根 CA 憑證導出至新文件,其中
是新檔案的名稱:rootca
.cercertutil -ca.cert
rootca
.cer如需有關執行 Certutil 的詳細資訊,請參西班牙
位於微軟檔案中。 -
使用下列 OpenSSL 命令,將導出的根 CA 憑證從 DER 格式轉換為 PEM 格式,其中
rootca
是憑證名稱。如需 OpenSSL 的詳細資訊,請參www.openss.com。 openssl x509 -inform der -in
rootca
.cer -out /tmp/rootca
.pem
-
若要將您的根 CA 憑證添加到您的 Linux WorkSpaces 域
為了幫助您啟用智能卡,我們添加了enable_smartcard
腳本添加到我們的亞馬遜 WSP 軟件包。此指令碼會執行下列動作:
-
將您的根 CA 憑證授權機構憑證導入網絡安全服務 (NSS)
資料庫。 -
安裝
pam_pkcs11
模塊進行可插拔身份驗證模塊 (PAM) 身份驗證。 -
執行默認配置,其中包括啟用
pkinit
在 WorkSpace 置備期間。
下列程序解釋如何使用enable_smartcard
腳本將根 CA 證書添加到您的 Linux WorkSpaces,併為您的 Linux WorkSpaces 啟用智能卡。
-
在啟用 WSP 協議的情況下創建一個新的 Linux WorkSpace。在亞馬遜 WorkSpace 控制台中啟動工作區時,請在選擇套件頁面上,請務必選擇WSP,然後選擇其中一個 Amazon Linux 2 公用軟件包。
-
在新 WorkSpace 上,以 root 用户身份執行下列命令,其中
是 PEM 格式的根 CA 憑證文件路徑。pem-path
/usr/lib/skylight/enable_smartcard --ca-cert
pem-path
注意 Linux WorkSpaces 假定智能卡上的證書是為用户的默認用户主體名稱 (UPN) 頒發的,例如
,其中sAMAccountName
@domain
是完整網域名稱 (FQDN)。domain
若要使用替代 UPN 後綴,
run /usr/lib/skylight/enable_smartcard --help
以獲取詳細資訊。備用 UPN 後綴的映射對每個用户是唯一的。因此,必須在每個用户的 WorkSpace 上單獨執行該映射。 -
(可選)默認情況下,所有服務都啟用在 Linux WorkSpaces 上使用智能卡身份驗證。要將智能卡身份驗證限製為僅限於特定服務,您必須編輯
/etc/pam.d/system-auth
。取消的註解auth
行pam_succeed_if.so
並根據需要編輯服務列表。之後
auth
行被取消註釋,要允許服務使用智能卡身份驗證,必須將其添加到列表中。若要使服務僅使用密碼身份驗證,您必須從列表中移除它。 -
(可選)當前不支持使用智能卡解鎖屏幕。若要在 Linux WorkSpaces 上禁用鎖定屏幕,請創建一個名為
/usr/share/glib-2.0/schemas/10_screensaver.gschema.override
其中包含下列內容:[org.mate.screensaver] lock-enabled=false
創建此文件後,運行以下命令:
sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
-
對 WorkSpace 執行任何其他自定義設置。例如,您可能想要將系統範圍內的策略添加到允許用户在火狐瀏覽器中使用智能卡。Chrome 用户必須在其客户端上自己啟用智能卡。 如需詳細資訊,請參閱「」智慧卡 Support中的Amazon WorkSpaces 使用者指南。)
-
創建自定義 WorkSpace 映像和捆綁WorkSpace
-
使用新的自定義捆綁包為您的用户啟動 WorkSpaces。
您可以通過在 Linux WorkSpace 映像中添加安全設備策略,使用户在 Firefox 中使用智能卡。如需新增系統級別策略至 Firefox 的詳細資訊,請參Mozilla 政策範本
-
在用於創建 WorkSpace 映像的 WorWorkSpace 上,創建一個名為
policies.json
在/usr/lib64/firefox/distribution/
。 -
在 JSON 文件中,添加下列安全設備策略,其中
是您想要使用的任何值來識別NAME_OF_DEVICE
pkcs
模組。例如,您可能想要使用諸如"OpenSC"
:{ "policies": { "SecurityDevices": { "
NAME_OF_DEVICE
": "/usr/lib64/opensc-pkcs11.so" } } }
疑難排解
對於故障排除,我們建議添加pkcs11-tools
公用程式。您可以使用此實用程式執行下列動作:
-
列出每個智能卡。
-
列出每個智能卡上的插槽。
-
列出每個智能卡上的證書。
一些可能導致問題的常見問題:
-
插槽到證書的映射不正確。
-
智能卡上具有多個可與用户匹配的證書。憑證將使用下列準則進行匹配:
-
證書的根 CA。
-
所以此
<KU>
和<EKU>
字段的證書。 -
憑證主體中的 UPN。
-
-
具有多個具有
<EKU>msScLogin
在他們的密鑰用法中。
通常,最好只有一個映射到智能卡中第一個插槽的智能卡身份驗證證書。
用於管理智能卡上的證書和密鑰的工具(例如刪除或重新映射證書和密鑰)可能是製造商特定的。可用於處理智能卡的其他工具包括:
-
opensc-explorer
-
opensc-tool
-
pkcs11_inspect
-
pkcs11_listcerts
-
pkcs15-tool
啟用除錯記錄
故障診斷pam_pkcs11
和pam-krb5
配置,您可以啟用調試日誌記錄。
-
在 中
/etc/pam.d/system-auth-ac
檔案中,編輯auth
操作並更改nodebug
參數pam_pksc11.so
至debug
。 -
在 中
/etc/pam_pkcs11/pam_pkcs11.conf
檔案,更改debug = false;
至debug = true;
。所以此debug
選項單獨應用於每個映射器模塊,因此您可能需要直接在pam_pkcs11
部分和相應的映射器部分(默認情況下,這是mapper generic
。 -
在 中
/etc/pam.d/system-auth-ac
檔案中,編輯auth
操作並添加debug
或debug_sensitive
參數設定pam_krb5.so
。
啟用調試日誌記錄後,系統將打印出pam_pkcs11
直接在活動終端中調試消息。中的訊息pam_krb5
已登錄/var/log/secure
。
要檢查智能卡證書映射到哪個用户名,請使用以下pklogin_finder
命令
sudo pklogin_finder debug config_file=/etc/pam_pkcs11/pam_pkcs11.conf
出現提示時,輸入智能卡 PIN。pklogin_finder
上的輸出stdout
表單中的智能卡證書上的用户名
。此用户名應與 WorkSpace 用户名匹配。NETBIOS
\username
在活動目錄網域服務 (AD DS) 中的 NetBIOS 網域名稱是 Windows 2000 之前的網域名稱。NetBIOS 網域名稱通常(但並非總是如此)是網域名稱系統 (DNS) 網域名稱的子網域名稱。例如,如果 DNS 域名為example.com
,NetBIOS 域名通常為EXAMPLE
。如果 DNS 網域名稱為corp.example.com
,NetBIOS 域名通常為CORP
。
例如,針對使用者mmajor
在域中corp.example.com
,輸出來自pklogin_finder
是CORP\mmajor
。
如果您收到消息"ERROR:pam_pkcs11.c:504: verify_certificate()
failed"
,此消息表示pam_pkcs11
已在智能卡上找到一個與用户名條件匹配的證書,但不鏈接到計算機識別的根 CA 證書。當發生這種情況時,pam_pkcs11
輸出上述消息,然後嘗試下一個證書。只有當它找到與用户名匹配並鏈接到已識別的根 CA 證書的證書時,它才允許進行身份驗證。
故障診斷pam_krb5
配置,您可以手動調用kinit
在調試模式下,使用下列命令:
KRB5_TRACE=/dev/stdout kinit -V
此命令應成功獲取 Kerberos 票證授予票證 (TGT)。如果失敗,請嘗試將正確的 Kerberos 主體名稱顯式添加到命令中。例如,針對使用者mmajor
在域中corp.example.com
,請使用此命令:
KRB5_TRACE=/dev/stdout kinit -V mmajor
如果此命令成功,問題很可能出現在從 WorkSpace 用户名到 Kerberos 主體名稱的映射中。檢查[appdefaults]/pam/mappings
區段中的/etc/krb5.conf
file.
如果此命令沒有成功,但基於密碼kinit
命令確實成功,請檢查pkinit_
相關配置/etc/krb5.conf
file. 例如,如果智能卡包含多個證書,則可能需要更改pkinit_cert_match
。