WCF

2012-10-08 34 views
7

का उपयोग कर X509 टोकन पर हस्ताक्षर कैसे करें I WCF क्लाइंट पर काम कर रहा हूं जिसे ओरेकल वेबलॉगिक सेवा से बात करनी चाहिए। सेवा पारस्परिक प्रमाणपत्र प्रमाणीकरण लागू करता है।WCF

हम फिर भी, और नीति को संतुष्ट करने में सक्षम सर्वर बताते हुए एक त्रुटि लॉग रहे हैं: "। WSM-00,081: X.509 प्रमाणपत्र हस्ताक्षरित नहीं है"

मैं सोच रहा हूं कि इसका सटीक अर्थ क्या है। ओरेकल दस्तावेज कहता है:

WSM-00081: X.509 प्रमाणपत्र हस्ताक्षरित नहीं है।

कारण: प्रमाण पत्र प्रमाणीकरण परिदृश्य की आवश्यकताओं के अनुसार उपयोग किए गए X509 टोकन पर हस्ताक्षर नहीं किए गए थे।

कार्यवाही: प्रमाण पत्र प्रमाणीकरण के लिए X509 टोकन (उपयोग किए गए संदर्भ तंत्र के आधार पर) पर हस्ताक्षर करें।

स्तर: 1

प्रकार: त्रुटि

प्रभाव: सुरक्षा

(http://docs.oracle.com/cd/E25054_01/core.1111/e10113/chapter_wsm_messages.htm)

कुछ शोध करने के बाद, हमें पता चला कि हम सेवा में जांच निष्क्रिय कर सकते हैं is-signed="false सेट करके नीति कॉन्फ़िगरेशन फ़ाइल:

<orasp:x509-token orasp:enc-key-ref-mech="direct" orasp:is-encrypted="false" 
       orasp:is-signed="false" 
       orasp:rcpt-enc-key-ref-mech="direct" 
       orasp:rcpt-sign-key-ref-mech="direct" 
       orasp:sign-key-ref-mech="direct"/> 

मेरे दो सिद्धांतों:

  • प्रमाण पत्र की जरूरत है एक CA
    • हम एक एक प्रमाण पत्र एक CA द्वारा हस्ताक्षर किए गए का उपयोग कर जाँच की द्वारा हस्ताक्षर किए जाने हैं, लेकिन यह कोई फर्क पड़ा
    • हालांकि, हम इसे कॉन्फ़िगर करते समय कुछ त्रुटियां हो सकती हैं। क्या हमें इसे खत्म करना चाहिए?
  • हमें किसी भी तरह से अनुरोध में शामिल बाइनरी सुरक्षा सुरक्षा टोकन पर हस्ताक्षर करने की आवश्यकता है।
    • हालांकि, मैं पता नहीं है मैं कैसे कर सकते हैं इस

मैं पूरी तरह से विषय को गलत समझा या आप में से किसी क्या समस्या हो सकती है करने के लिए कुछ संकेत दिए गए दे सकते हैं और यह कैसे किया जा सकता है हल किया?

+0

क्या आप स्वयं हस्ताक्षरित प्रमाणपत्र का उपयोग कर रहे हैं एक विश्वसनीय प्रदाता से प्रमाणपत्र? – Rajesh

+0

@ राजेश: मैंने दोनों की कोशिश की है। – nilu

+1

क्या यह 2 तरह का प्रमाणीकरण है? क्या आपने जांच की है कि क्या प्रदाता ऑरैकल वेबलॉगिक सेवा में एक विश्वसनीय प्राधिकारी के रूप में मौजूद है? सुनिश्चित करें कि यदि यह 2 तरीके प्रमाणीकरण है तो दोनों प्रमाणपत्रों को एक विश्वसनीय प्राधिकारी द्वारा हस्ताक्षरित किया जाता है – Rajesh

उत्तर

0

अनुरोध के हिस्से के रूप में आपको सुरक्षा टोकन पर हस्ताक्षर करने की आवश्यकता है।

:

<security mode="Message"> 
    <message clientCredentialType="Certificate" 
     algorithmSuite="Default" 
     establishSecurityContext="true" /> 
</security> 

इसके बाद, अपने client certificate के स्थान को हल करने कि समाप्ति बिंदु व्यवहार बनाने के लिए:

अपने config के बंधन तत्व में SecurityMode.Message करने के लिए सुरक्षा तत्व मोड और MessageCredentialType.Certificate को संदेश तत्व clientCredentialType सेट

<behavior name="endpointCredentialBehavior"> 
    <clientCredentials> 
     <clientCertificate findValue="Contoso.com" 
      storeLocation="LocalMachine" 
      storeName="TrustedPeople" 
      x509FindType="FindBySubjectName" /> 
    </clientCredentials> 
</behavior>