HOW TO:設定本機發行者

本主題會說明如何將用戶端設定成使用已發行權杖的本機發行者。

通常,當用戶端與聯合服務進行通訊時,服務都會指定特定安全性權杖服務的位址,該服務預期會發出用戶端要用來向聯合服務驗證自己的權杖。在某些狀況下,可以用「本機發行者」(Local Issuer) 來設定用戶端。

在聯合繫結的發行者位址是 https://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymousnull 的情況下,Windows Communication Foundation (WCF) 就會使用本機發行者。在這種情況下,您必須設定包含本機發行者位址的 ClientCredentials,以及用來與該發行者進行通訊的繫結。

Aa347715.note(zh-tw,VS.90).gif注意:
如果 ClientCredentials 類別的 SupportInteractive 屬性設定為 true、未指定本機發行者位址,而且發行者位址是由 wsFederationHttpBinding element 所指定,或是其他的聯合繫結為 https://schemas.xmlsoap.org/ws/2005/05/identity/issuer/self、 https://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous 或 null,這時就會使用 Windows CardSpace 發行者。

透過程式碼來設定本機發行者

  1. 建立型別為 IssuedTokenClientCredential 的變數

  2. 將此變數設為從 ClientCredentials 類別的 IssuedToken 屬性傳回的執行個體 (Instance)。該執行個體會由用戶端 (繼承自 ClientBase) 的 ClientCredentials 屬性,或是 ChannelFactoryCredentials 屬性傳回:

  3. LocalIssuerAddress 屬性設定為 EndpointAddress 的新執行個體,其本機發行者位址會當做建構函式 (Constructor) 的引數。

    或者,建立新的 Uri 執行個體做為該建構函式的引數。

    addressHeaders 參數是 AddressHeader 執行個體的陣列,如下所示。

  4. 使用 LocalIssuerBinding 屬性來設定本機發行者的繫結。

  5. 選擇項,將本機發行者的已設定端點行為新增到 LocalIssuerChannelBehaviors 屬性所傳回的集合,即可新增該行為。

透過組態來設定本機發行者

  1. 建立 <localIssuer> 項目做為 <issuedToken> 項目的子系,該項目本身則是端點行為中 <clientCredentials> 項目的子系。

  2. address 屬性設定為將接受權杖要求之本機發行者的位址。

  3. bindingbindingConfiguration 屬性設定為會參考當與本機發行者端點進行通訊時所使用之適當繫結的值。

  4. 選擇項,將 <identity> 項目設定為 <localIssuer> 項目的子項目,並指定本機發行者的身分識別資訊。

  5. 選擇項,將 <headers> 項目設定為 <localIssuer> 項目的子項目,並指定在正確定址本機發行者時所需要其他標頭。

安全性

請注意,如果已指定特定繫結的發行者位址和繫結,這時使用該繫結的端點就不會使用該本機發行者。預期一定要使用該本機發行者的用戶端應該要確定自己沒有使用這類繫結,否則它們就會修改繫結,進而使得發行者位址成為 null

請參閱

工作

HOW TO:設定聯合服務的認證
HOW TO:建立聯合用戶端
HOW TO:建立 WSFederationHttpBinding