ディスカッション
AIを用いた自動化で請求書処理を合理化
AIを用いた考察を使用して、計画と予測を迅速化
SuiteWorldまであと41日となりました。以下の最新情報をご確認ください。
アジェンダビルダー公開
SuiteWorld On Airの登録受付開始
新しいNetSuite Prompt Studioコンテスト
その他の最新情報も!
詳細はこのスレッドでご確認ください!
iFrameで実行されているシングルサインオンがSafariブラウザでタイムアウトする
適用
製品: NetSuite 2023.1
シナリオ
Safariブラウザを使用してログインしようとするたびにiFrameで実行されるシングルサインオンアプリケーションがタイムアウトします。
これと同じSSOアプリケーションは、Internet Explorer、Mozilla Firefox、およびGoogleChromeで正常に動作するようです。
解決策
Safariには、選択したページのみにCookieの書き込みを制限する保守的なCookieポリシーが付属しています。ここでの理論的根拠は、Safariはユーザーが直接アクセスするWebサイトからのCookieのみを書き込みたいということです。
それでもSafariはiframeが書き込もうとするCookieを拒否します。つまり、自分のサイトからiFrameを使用して別のサイトのページを読み込んだ場合、他のサイトはCookieを設定できません。他のドメインに直接アクセスするとすぐに、他のサイトは独自のCookieにアクセスして変更できるようになります。
例:したがって、facebook.comに移動すると、facebook.comドメインの下にないiFrameからCookieを設定しようとすると失敗します。
これは実際にはブラウザの問題であるため、次の回避策があります。
1. Cookieの有効化Safariユーザーは、設定のチェックボックスをいつでもオンにして、すべてのCookieを受け入れることができます。Safariブラウザで >設定 > セキュリティ > すべてのCookieを受け入れる。
2. URLを書き換える
回避策は、Cookieを書き込むページは、ユーザーからの直接の要求の結果として開始される必要があるということです。文字通り、Cookieを書き込む前に、ユーザーをCookieを書き込むページに移動するハイパーリンク(明示的なアンカータグ)をiframeに提供する必要があることを意味します。
プログラムで、href = "A.com/setCookie?cache=1231213123"と、非表示のiframeを指すターゲット属性を持つリンクを作成してクリックします。これにより、Cookieを設定するためのSafariのユーザーナビゲーションポリシーがバイパスされます。
-window.open()を介してCookieを設定します-最適ではない可能性があります(醜いお尻のポップアップウィンドウが開いているため)。
詳細:
1. ユーザーがB.comからのリンクをクリックします
2. ポップアップウィンドウがA.com/setCookieに開きます
3. A.comはCookieを設定し、適切な場所でB.comにリダイレクトします