2015-01-16 43 views
0

我想通过ios应用程序登录带有基于声明的身份验证(Office 365身份验证)的Sharepoint Online。 我使用了下面的SOAP方法。仅限网站集的Office 365身份验证

<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">https://login.microsoftonline.com/extSTS.srf</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"> 
     <o:UsernameToken> 
     <o:Username>$username</o:Username> 
     <o:Password>$password</o:Password> 
     </o:UsernameToken> 
    </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>$endpoint</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> 

在端点地址上,将需要设置共享点根网站的URL。 问题是,当登录用户无法向根网站 进行身份验证,但只能对网站集进行身份验证时,此用户无法登录到办公室365的 。 我该如何解决此问题?

如果通过Office 365身份验证(基于声明的身份验证)登录方法的其他方式, 请指教我。

回答

0

您可能想签出适用于Office 365 API的iOS SDK。以下是GitHub上示例应用程序的链接,其中显示了如何向Office 365进行身份验证并获取访问令牌。获得有效令牌后,可以对SharePoint Online进行REST调用,将令牌传递给Authorization Bearer标头。

https://github.com/OfficeDev/Office-365-SDK-for-iOS