Como especificar um certificado como credenciais para um wsTrustChannel com o Thinktecture IdentityServer
Eu teria pensado que alguém poderia basicamente mudar as credenciais do cliente a partir disso:
var clientCredentials = new ClientCredentials();
clientCredentials.UserName.UserName = "MyUserName"
clientCredentials.UserName.Password = "MyPassword"
para:
var clientCredentials = new ClientCredentials();
clientCredentials.ClientCertificate.Certificate = myX509Certificate;
e crie um wsTrustChannel para obter um token de segurança.
wsTrustChannelFactory.SetCredentials(clientCredentials);
var channel = _wsTrustChannelFactory.CreateChannel(new EndpointAddress(endpointAddress));
var token = channel.Issue(new RequestSecurityToken
{
TokenType = tokenType,
AppliesTo = new EndpointReference(realm),
RequestType = RequestTypes.Issue,
KeyType = KeyTypes.Bearer
}, out requestSecurityTokenResponse);
O nome de usuário e a senha funcionam bem, apenas o uso do certificado reclama que não há nome de usuário especificado. Fiquei com a impressão de que o emissor do token procuraria o usuário associado no certificado. Onde estou errado aqui?