c# - एडीएफएस से दावा का दावा करें




sharepoint authentication (2)

मैं एक WPF अनुप्रयोग के माध्यम से एक SharePoint ऑनलाइन उदाहरण से कनेक्ट करने का प्रयास करें मुझे यह आलेख मिल गया है कि संभावित समाधान का अनुशासन है लेकिन समस्या यह है कि विशिष्ट उदाहरण में सक्रिय डायरेक्टरी फेडरेशन सर्विसेज (एडीएफएस) सामने है और मुझे नहीं पता है कि ऑथ-टोकन कैसे प्राप्त करें (मैं ऐडफ़ेस के विरुद्ध प्रमाणन के लिए अपने आवेदन के लिए एक प्रमाण पत्र नहीं बना सकता।)

जो कोई भी पहले से यह किया है और मुझे कुछ कोड स्निपेट्स के साथ समर्थन कर सकता है?


मैंने फ़िडलर के साथ खेला है असल में प्रवाह इस तरह होता है:

  • एडीएफएस से SAML टोकन प्राप्त करें
  • इसे https://login.microsoftonline.com/login.srf पर पोस्ट करें (body wa=wsignin1.0, wresult=<requestsecuritytokenresponse>…token…</rstr> and wctx=MEST=0&LoginOptions=2&wa=wsignin1%2E0&rpsnv=2&ct=1343219880&rver=6%2E1%2E6206%2E0&wp=MBI&wreply=https%3A%2F%2Fspirit365%2Esharepoint%2Ecom%2F%5Fforms%2Fdefault%2Easpx&id=500046&cbcxt=mai&wlidp=1&guest=1&vv=910&mkt=EN-US&lc=1033&bk=1343219930
  • प्रपत्र से "टी" नाम छिपा हुआ इनपुट को कैप्चर करें
  • पोस्ट करें कि "t" to /_layouts/Authenticate.aspx यही आपको FedAuth और RTFa कुकी देना चाहिए।

उस बिंदु से यह कोड के समान है: http://www.wictorwilen.se/Post/How-to-do-active-authentication-to-Office-365- और-SharePoint-Online.aspx


मैं बहुत समय व्यतीत करने के लिए अंत में यह समझता हूं। बाइनरी टोकन प्राप्त करने के लिए आपको Microsoft ऑनलाइन सुरक्षा टोकन सेवा (एसटीएस) साइट यूआरएल को निम्नलिखित प्रारूप में एक संदेश पोस्ट करना होगा:

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <s:Header>
    <a:Action s:mustUnderstand="1">http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue</a:Action>
    <a:ReplyTo>
      <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>
    </a:ReplyTo>
    <a:To s:mustUnderstand="1">[toUrl]</a:To>
    <o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
      [assertion]
    </o:Security>
  </s:Header>
  <s:Body>
    <t:RequestSecurityToken xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust">
      <wsp:AppliesTo xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
        <a:EndpointReference>
          <a:Address>[url]</a:Address>
        </a:EndpointReference>
      </wsp:AppliesTo>
      <t:KeyType>http://schemas.xmlsoap.org/ws/2005/05/identity/NoProofKey</t:KeyType>
      <t:RequestType>http://schemas.xmlsoap.org/ws/2005/02/trust/Issue</t:RequestType>
      <t:TokenType>urn:oasis:names:tc:SAML:1.0:assertion</t:TokenType>
    </t:RequestSecurityToken>
  </s:Body>
</s:Envelope>

निम्न संदेशों के साथ टोकन को बदलने के लिए इस संदेश की आवश्यकता है:

[toUrl]: माइक्रोसॉफ्ट ऑनलाइन सुरक्षा टोकन सेवा (एसटीएस) साइट यूआरएल
[url]: आपका सपा साइट यूआरएल
[अभिकथन]: आपको अपने फेडरेशन सर्विस से दावा किया गया है कि एक्सएलएम टोकन है।

आपको t=... प्राप्त करने के बाद t=... प्रतिक्रिया XML से बायनरी टोकन, आप कुकीज़ प्राप्त करने के लिए अपने एसपी default.aspx पोस्ट कर सकते हैं।