1
Following this post我創建了一個WCF客戶端,其中:調用由ACS保護WCF服務,它使用ADFS,由於IDP
- 使用ADF對AD用戶進行身份驗證。
- 向調用者提供SAML2票據。
- 使用提供的SAML2票證來呼叫WCF服務。
這很好,但我的問題的下一部分是擴展這個使用Azure ACS。
我將ACS添加到ACS,並在Visual Studio中使用Add STS Reference
將STS引用更改爲指向ACS。
我已經擴展了Token.GetToken
方法,提供令牌分爲以下方法:
public static SecurityToken GetToken(SecurityToken adfsToken, string appliesTo, string idpEndpointAddress, out RequestSecurityTokenResponse rsts)
{
WS2007HttpBinding binding = new WS2007HttpBinding();
binding.Security.Message.EstablishSecurityContext = false;
binding.Security.Mode = SecurityMode.TransportWithMessageCredential;
WSTrustChannelFactory trustChannelFactory = new WSTrustChannelFactory(binding, new EndpointAddress(idpEndpointAddress));
trustChannelFactory.TrustVersion = TrustVersion.WSTrust13;
trustChannelFactory.ConfigureChannelFactory();
// Create issuance issuance and get security token
RequestSecurityToken requestToken = new RequestSecurityToken(WSTrust13Constants.RequestTypes.Issue);
requestToken.AppliesTo = new EndpointAddress(appliesTo);
WSTrustChannel tokenClient = (WSTrustChannel)trustChannelFactory.CreateChannelWithIssuedToken(adfsToken);
SecurityToken token = tokenClient.Issue(requestToken, out rsts);
return token;
}
以下端點:
https://test.accesscontrol.windows.net/v2/wstrust/13/issuedtoken-symmetric
,但我得到以下異常:
安全通道無法打開,因爲與 rem的安全協商ote端點失敗。這可能是由於EndpointAddress中指定的EndpointIdentity缺失或不正確,用於創建通道 。請驗證 指定或暗示的EndpointIdentity EndpointAddress正確標識遠程端點。
隨着內部異常:
ACS10001:處理SOAP報頭髮生錯誤。
- 我需要什麼,在ACS配置得到這個與ADFS提供的令牌工作?
- 我是否需要使用ACS提供的令牌,或者我可以使用ADFS提供的服務嗎? (它似乎正在工作..)
謝謝奧倫 - 我會看看這個例子。 – Darbio