ADFS 認証による Passport 認証を行う 1 つの SharePoint アプリケーション (App1) があります。ADFS認証もある別のサブドメイン(App2)に別のasp.netアプリケーションがあります。最初のアプリケーションから、他のアプリケーションでホストされているコントロールへの $.ajax (jquery) 呼び出しがあります。
問題は、FedAuth Cookie が App1 から App2 にポストされなかったことです。HTTP トレースで、FedAuth Cookie ドメイン名がマシン固有であることがわかりました。web.config の「federatedAuthentication」セクション -> cookieHandler で、ドメインを「microsoft.com」と記載しました。これにより、FedAuth がドメイン プロパティにマシン名を持たない問題が解決されました。
この変更の後、次のエラーが発生しました: ID4230: SecurityToken の形式が適切ではありませんでした。要素名 'SecurityContextToken' が必要ですが、'SP' が見つかりました。
ネットでヘルプが見つかりませんでした。cookieHandler のパスと name 属性を変更しようとしましたが、問題は解決しませんでした。名前を変更すると、2 つの FedAuth Cookie が作成されます。1 つは FedAuth 名で、もう 1 つは新しい名前です。
特記事項: 認証後に App1 を開き、App2 の URL をブラウザーに貼り付けると、サイレント認証が正常に機能し、App2 の制御を確認できます。問題は、Ajax を介して App2 コントロールを呼び出した場合にのみ発生します。$.ajax を「資格情報 = true -> XMLHTTPRequest オブジェクト) で呼び出そうとしましたが、役に立ちませんでした。
Ajax 呼び出しを介してサイレント認証を正常に機能させるためのヘルプ ポインターはありますか?