Получение легкого токена SSO от PingFederate с использованием WCF или WIF

Я пишу клиент, используя WCF для демонстрационных настроек, предоставляемых PingFederate, аналогично тому, как описано в этом посте ( Получение токена из PingFederate с использованием WIF). Моя проблема в том, что на втором этапе мне нужно обменять токен SAML на легкий токен SSO на SP. Я получаю исключение при сериализации ответа от ИП

ID3135: The element 'TokenType' with namespace 'http://docs.oasis-open.org/ws-sx/ws-trust/200512' has value 'BASE64BINARY' which is not an absolute URI.

насколько я понимаю, WS2007FederationHttpBinding не может обрабатывать токены такого типа.

Я ищу объяснения, как такой сценарий должен быть обработан.

Код клиента выглядит следующим образом (после получения токена SAML от IDP)

 var binding = new WS2007FederationHttpBinding();
  binding.Security.Mode = WSFederationHttpSecurityMode.TransportWithMessageCredential;
  binding.Security.Message.IssuedKeyType = SecurityKeyType.BearerKey;
  binding.Security.Message.EstablishSecurityContext = false;
var factory = new WSTrustChannelFactory(binding, new EndpointAddress(SP_EndPoint));
  factory.TrustVersion = TrustVersion.WSTrust13;
  factory.Credentials.SupportInteractive = false;
 var rst = new RequestSecurityToken
  {
    RequestType = RequestTypes.Issue,
    //AppliesTo = new EndpointReference(@"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous"),
  };

  RequestSecurityTokenResponse rstr;
  var channel = factory.CreateChannelWithIssuedToken(idpToken);
  SecurityToken spToken = channel.Issue(rst, out rstr);
  return spToken;

0 ответов

Другие вопросы по тегам