Как указать сертификат в качестве учетных данных для wsTrustChannel с Thinktecture IdentityServer
Я бы подумал, что можно в основном переключить учетные данные клиента из этого:
var clientCredentials = new ClientCredentials();
clientCredentials.UserName.UserName = "MyUserName"
clientCredentials.UserName.Password = "MyPassword"
чтобы:
var clientCredentials = new ClientCredentials();
clientCredentials.ClientCertificate.Certificate = myX509Certificate;
а затем создайте wsTrustChannel для получения токена безопасности.
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);
Имя пользователя и пароль работают нормально, просто при использовании сертификата жалуется, что имя пользователя не указано. У меня сложилось впечатление, что эмитент токена будет искать ассоциированного пользователя из сертификата. Куда я здесь не так?