いくつかの SharePoint Web サービス (主に /_vti_bin/Lists.asmx) へのアクセスを必要とする iPhone 用の単純な SharePoint クライアント アプリを作成しました。Office365 などの新しい SharePoint 環境でこれを行う方法がわかりません。
didReceiveAuthenticationChallenge
フォーム ベースの認証を使用する古い BPOS 環境では、メソッドを実装するだけでこれらのサービスに対して認証を行うことができました。
-(void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
NSURLCredential *newCredential = [NSURLCredential credentialWithUser:username
password:password
persistence:NSURLCredentialPersistenceForSession];
[[challenge sender] useCredential:newCredential
forAuthenticationChallenge:challenge];
}
これは明らかに、クレーム認証を備えた SharePoint サイトでは機能しなくなったため、調査を行ったところFedAuth
、要求に Cookie を添付する必要があることがわかりました。
http://msdn.microsoft.com/en-us/library/hh147177.aspx
この記事によると、.NET Apps では WININET.dll を使用してこれらの HTTPOnly FedAuth
Cookie を取得できるようですが、iPhone では使用できないのでしょうか?
次に、SharePlusアプリUIWebView
が表示され、最初にブラウザ画面でユーザーが Office365 アカウントにログインするのを見ました (これは、上記の記事の「リモート認証のためのユーザー ログインの有効化」セクションで説明したのと同じ概念です)。
そのため、経由でFedAuth
Office365 アカウントにログインしてこれらの Cookie にアクセスできるかどうかを確認しようとしましたが、 HTTPOnly Cookie にアクセスできませんでした。UIWebView
[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]
認証を処理するための指定された中間 .NET サービスを必要とせずに、またはユーザーがそれらの Cookie の HTTPOnly プロパティをオフにすることを要求せずに、iPhone アプリでクレーム認証を実現する方法はありますか?
申し訳ありませんが、私は SharePoint に非常に慣れていないため、正しい方向を見ていない可能性さえありますが、iPhone アプリでクレーム認証を機能させるためのアドバイスをいただければ幸いです。前もって感謝します!