Web 服務安全呼叫端配置
您可以在已鑑別或未經鑑別的模式下執行 Web 服務。 當您想要根據使用者身分來限制資源的存取權時,Web 服務必須執行於鑑別模式。 當 Web 服務執行於鑑別模式時,使用者的身分會放在執行 Web 服務的相同執行緒上。
在鑑別模式中,Web 服務有兩種執行方式:
- HTTP 基本鑑別 (BA)
- Web 儲存器會將 HTTP 標頭中的身分放在執行緒上。
- WS-Security 呼叫端配置
- WS-Security 執行時期會將 SOAP 安全標頭其中一個記號的身分放在執行緒上。
WS-Security 規格容許在 SOAP 訊息的安全標頭中傳遞多個記號。 當需要利用 WS-Security 來執行 Web 服務的鑑別模式時,需要某個機制來告訴 WS-Security 執行時期環境要使用哪個記號來表示身分。 這個機制稱為呼叫端配置。
WS-Security 呼叫端配置是在 server.xml 檔內,用 <callerToken> 元素來指定。
下列範例顯示含有 UsernameToken 呼叫端配置的 WS-Security 提供者配置範例:
<wsSecurityProvider ...>
...
<callerToken name="UsernameToken" />
...
</wsSecurityProvider>
<callerToken> 元素可以指定下列值:
- UsernameToken
- X509Token
- SamlToken
如果您將 X509Token 配置為呼叫端記號,請確定從安全標頭中,只會解析出一個用戶端的 X509Certificate。比方說,請確定只會從 AsymmetricBinding 中的起始者記號解析出一個用戶端憑證,或只會從背書記號解析出一個用戶端憑證。
如果您將 UsernameToken 配置為呼叫端記號,安全標頭就只能包含一個 UsernameToken。
如果您將 SamlToken 配置為呼叫端記號,安全標頭就只能包含一個 SAML 記號。其他的配置選項像是 userIdentifier、groupIdentifier 或 realmIdentifier,可用來指定 SAML 屬性,以便在建立受鑑別的主體時,作為主體、群組或網域範圍。如需選用 SAML callerToken 配置的相關資訊,請參閱產品說明文件中的建立 WS-Security SAML 呼叫端配置。