IIS客戶端證書授權是否真的需要Windows使用者,如果需要如何設置該使用者的權限?
我最初在 securitystackexchange 中發布了這個問題,但我沒有得到我期待的答案,我看到這個主題也適合這裡。
我需要連接不同位置的兩台伺服器,以便其中一台(Linux 堆棧)使用基於 cron 的作業向另一台(Windows 堆棧)-Windows Server 2008 R2 發出 HTTP 定期請求。
在 Windows 機器上,我將設置一個帶有自簽名證書的 IIS,以向客戶端進行身份驗證(通過固定證書)並通過 SSL 加密連接。
我還將配置 IIS 以請求客戶端證書來驗證 Linux 伺服器。我已經完成了配置證書身份驗證的教程,其中涉及將證書映射到使用者帳戶。
我對為遠端伺服器創建使用者帳戶的想法不滿意,因為我不希望任何人使用該帳戶登錄(Windows)伺服器。
考慮到這一點:
- 我真的需要在 Windows 伺服器中創建一個使用者來啟用客戶端證書授權嗎?
2)如果我真的需要在 Windows 機器上創建一個帳戶,我需要為這個使用者設置什麼才能不能登錄到 Windows 伺服器,除了向 IIS 進行身份驗證之外也不能做任何其他事情?
注意:活動目錄標籤是由@Lex Li 添加的。我會留下它,但我理解(我可能錯了)在面向 Internet 的伺服器中存在活動目錄存在安全問題。
我假設除了將 http 用於您的特定任務之外別無他法,因為我不知道這些 https 請求的目的是什麼(否則很高興知道 Windows 10 和 Server 2016 終於有了 SSH 支持)。
我不知道您使用的是哪個版本的 IIS/Windows,所以我給您一個一般性的描述:
1)是的,這就是原因:
客戶端證書是用來認證的,不是用來授權的,不要混淆這兩者。授權是您對角色/規則/權限等所做的事情,身份驗證是讓伺服器知道您是誰並向它證明您的身份(客戶端證書有點像 ID)。
答案是肯定的,證書總是連結到某種帳戶。這與 Linux 的處理方式沒有什麼不同。認證完成後即可申請授權。或者籠統地說:僅僅因為我知道你是誰並不意味著我讓你進入我的臥室。這取決於您是同事還是家庭成員。
如果對 IIS 的請求涉及任何類型的安全問題(我假設),還應該有防火牆規則、VPN 等,並且您不希望未經身份驗證的使用者在您的伺服器上觸發某種響應.
2) 不允許外部訪問伺服器。
如果您在 Internet 上有 Windows Server,您絕對應該確保您不希望沒有人可以訪問它,防火牆是強制性的!因此,您關於無法“登錄到 Windows 伺服器”的問題有點誤導。IIS 是 Windows 伺服器的一部分,並使用其使用者/組/權限系統。例如,如果您查看 Windows 組“使用者”,您會看到
你想要做的是:
為此任務創建一個使用者並刪除所有使用者組/角色。使用者絕對沒有權限。然後,在 IIS 中授予他對您希望他只能訪問的目錄的讀取權限。我猜你的指南應該涵蓋那部分。
注意:AD 和 IIS 都可以處理客戶端證書。如果您使用的是獨立的 IIS,那麼您的方法是正確的,在 AD 環境中,您將在 AD 中配置客戶端證書,而不是 IIS。