web-dev-qa-db-ja.com

開発者はMicrosoft Certificate * Web Services *をどのように操作しますか

Microsoft Certificate Web Servicesは、Kerberosに依存しないHTTPS Webサービス(WS-Trust)であり、さまざまなデバイスで使用できます。これはWindows 2008の新機能であり、Windows 2000以降の製品に存在していたブラウザベースのキーリクエストシステムとは別のものです。

このサービスはWCFに基づいており、次のURL形式でアクセスされます:https://server/server_CES_UsernamePassword/service.svc?wsdl

質問

  • 内部のMicrosoftツールはこのサービスとどのように相互作用しますか?どのメソッドが呼び出されますか? SOAPはどのように見えますか?

  • 開発者はどのようにしてこのサービスを有意義な方法で操作できますか? VS2010でオブジェクトを直接表示しようとしましたが、建設的なアクションを可能にするプロキシオブジェクトが見つかりませんでした。

私の考えは、VS2012でオブジェクトにアクセスできない場合、他の言語を使用したり、MacまたはLinuxに証明書を登録させたりすることはできないでしょう。

以下は、表示される(そしてsvcutilによって使用される)サンプルXMLファイルです。

<?xml version="1.0" encoding="UTF-8"?>
-<wsdl:definitions name="SecurityTokenService" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:tns="http://tempuri.org/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:msc="http://schemas.Microsoft.com/ws/2005/12/wsdl/contract" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://tempuri.org/" xmlns:i0="http://schemas.Microsoft.com/windows/pki/2009/01/enrollment">-<wsp:Policy wsu:Id="WSHttpBinding_ISecurityTokenService_policy">-<wsp:ExactlyOne>-<wsp:All>-<sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">-<wsp:Policy>-<sp:TransportToken>-<wsp:Policy><sp:HttpsToken RequireClientCertificate="false"/></wsp:Policy></sp:TransportToken>-<sp:AlgorithmSuite>-<wsp:Policy><sp:Basic256/></wsp:Policy></sp:AlgorithmSuite>-<sp:Layout>-<wsp:Policy><sp:Strict/></wsp:Policy></sp:Layout><sp:IncludeTimestamp/></wsp:Policy></sp:TransportBinding>-<sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">-<wsp:Policy>-<sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">-<wsp:Policy><sp:WssUsernameToken10/></wsp:Policy></sp:UsernameToken></wsp:Policy></sp:SignedSupportingTokens>-<sp:Wss11 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"><wsp:Policy/></sp:Wss11>-<sp:Trust10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">-<wsp:Policy><sp:MustSupportIssuedTokens/><sp:RequireClientEntropy/><sp:RequireServerEntropy/></wsp:Policy></sp:Trust10><wsaw:UsingAddressing/></wsp:All></wsp:ExactlyOne></wsp:Policy><wsdl:import location="https://smimepol01aa.ad.freesmime.com/FreeSMIME Policy 01aa_CES_UsernamePassword/service.svc?wsdl=wsdl0" namespace="http://schemas.Microsoft.com/windows/pki/2009/01/enrollment"/><wsdl:types/>-<wsdl:binding name="WSHttpBinding_ISecurityTokenService" type="i0:ISecurityTokenService"><wsp:PolicyReference URI="#WSHttpBinding_ISecurityTokenService_policy"/><soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/></wsdl:binding>-<wsdl:service name="SecurityTokenService">-<wsdl:port name="WSHttpBinding_ISecurityTokenService" binding="tns:WSHttpBinding_ISecurityTokenService"><soap12:address location="https://smimepol01aa.ad.freesmime.com/FreeSMIME%20Policy%2001aa_CES_UsernamePassword/service.svc/CES"/>-<wsa10:EndpointReference><wsa10:Address>https://smimepol01aa.ad.freesmime.com/FreeSMIME%20Policy%2001aa_CES_UsernamePassword/service.svc/CES</wsa10:Address></wsa10:EndpointReference></wsdl:port></wsdl:service></wsdl:definitions>
5

Microsoftの内部ツールがサービスとどのように相互作用するかはわかりません。あなたは彼らに尋ねる必要があるでしょう、そして彼らはあなたに言わないでしょう。 MSITの建物で働いていた友人が言ったツールであり、彼さえ私に言わなかったでしょう。

ただし、ここにインストールされるWindows SDKのサンプルがあるはずです(ソース: http://blogs.msdn.com/b/alejacma/archive/2010/10/08/how-to-access- the-new-certificate-enrollment-web-services-programmatically.aspx ):

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\security\x509 certificate enrollment\CSharp\enrollWithIX509EnrollmentHelper

さまざまなソースによると、これは最も詳細なサンプルではないので、ここも参照してください: http://blogs.msdn.com/b/alejacma/archive/2011/11/07/how-to-request-a -certificate-programmatically-using-the-certificate-enrollment-web-services-c.aspx

1
Steve