1

企業内の iOS アプリを無線 (OTA) で従業員に展開しており、SiteMinder を介してダウンロード サイトにアクセスできるユーザーを制御しています。SiteMinder はユーザーを認証し、AD グループのメンバーシップに基づいて承認します。この認証プロセスは、デバイス上に Cookie を作成して、ユーザーが認証されていること (そしておそらく承認されていること) を示すため、要求ごとに何度もプロンプトが表示され続けることはありません。

問題は、ユーザーがアプリを 1 回ダウンロードしてインストールすると、資格情報のプロンプト ループに巻き込まれるため、アプリを再度インストールできないことです。このループは、Siteminder 認証 Cookie の有効期限が切れており、デバイス上のユーザー エージェントによって削除または更新されていないことが原因で発生します。

私が読んだことによると、これは、「itms-Services://」で始まる OTA インストール URL が、デバイスのモバイル Safari とは異なるユーザー エージェントを使用し、からの Cookie 削除呼び出しに応答しないためです。 Cookie 自体は削除されません。これは、Safari で Cookie を削除したり、キャッシュや Web サイトのデータを削除したりしても、問題が解決しないことも意味します。Safari は Cookie を所有していません。

アプリを削除しても(まだインストールされている場合)、問題は解決しません。また、デバイスを再起動しても問題は解決しません(まだデバイスをワイプしておらず、とにかくユーザーにそうするように頼むことはできません)。

では、itms-services がデバイス上の Cookie を削除するために使用していることをユーザー エージェントに伝える方法はありますか、または iOS アプリケーションの OTA 展開に関するこの問題に対する他の回避策はありますか?

この場合、Apple AppStore を使用することは実行可能な解決策ではありません。
Cookie の命名を管理するよりも SiteMinder のパラメータを変更して、新しい Cookie を作成することも実行できません。これは、この SiteMinder ドメインがサポートする他のシングル サインオン ユーザーに悪影響を与えるためです。

4

2 に答える 2

3

最近、同様の問題に直面しました。siteminderの保護されたリソースに「AllowHEAD」を追加することで修正できました。Siteminder管理者は、許可された操作として「GETおよびPOST」のみを有効にしている可能性があります。

于 2012-11-16T23:05:45.753 に答える
1

次の方法で Cookie を削除できます。

 for(NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) {

    if([[cookie domain] rangeOfString:@"mydomain.com"].location!=NSNotFound) {

        [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
    }
}
于 2012-02-16T18:11:08.927 に答える