Как указать сертификат в качестве учетных данных для 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);

Имя пользователя и пароль работают нормально, просто при использовании сертификата жалуется, что имя пользователя не указано. У меня сложилось впечатление, что эмитент токена будет искать ассоциированного пользователя из сертификата. Куда я здесь не так?

Ответы на вопрос(1)

Ваш ответ на вопрос