Информация о сертификации от службы WCF с использованием режима безопасности транспортных средств

StackOverflow https://stackoverflow.com/questions/2923449

  •  05-10-2019
  •  | 
  •  

Вопрос

Есть ли способ вытянуть информацию о том, какой клиентский сертификат использовался внутри моего метода веб-сервиса при использовании <security mode="Transport>? Я просеивался через experialContext.Courent, но не смог найти ничего очевидно.

Мой конфигурация сервера выглядит следующим образом:

  <basicHttpBinding>
    <binding name="SecuredBasicBindingCert">
      <security mode="Transport">
        <message clientCredentialType="Certificate" />
      </security>
    </binding>
  </basicHttpBinding>

Я работаю с третьей стороной PUB / Sub System, который, к сожалению, использует DataPower для аутентификации. Похоже, что если я использую WCF с этой конфигурацией, то я не могу поставить любую информацию о вызывающем абонете (поскольку учетные данные фактически не отправляются).

Я как-то нужно уметь выяснить, чьи звонки на мой сервис без изменения моей конфигурации или прося их изменить свою полезную нагрузку.

Это было полезно?

Решение

Да, но это неразрывно.

Во-первых, будьте уверены и ссылаетесь на сборку System.identityModel из вашей сервисной библиотеки.

Теперь добавьте что-то похожее на следующее метод обслуживания, где вы хотите узнать о сертификате клиента:

// Find the certificate ClaimSet associated with the client
foreach (ClaimSet claimSet in OperationContext.Current.ServiceSecurityContext.AuthorizationContext.ClaimSets)
{
    X509CertificateClaimSet certificateClaimSet = claimSet as X509CertificateClaimSet;
    if (certificateClaimSet != null)
    {
        // We found the ClaimSet, now extract the certificate
        X509Certificate2 certificate = certificateClaimSet.X509Certificate;

        // Do something interesting with information contained in the certificate
        Debug.Print("Certificate Subject: " + certificate.Subject);
    }
}

Надеюсь это поможет!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top