Angular 7を使用して開発されたサイトがあり、Azure Active Directoty認証にAdal-Angular4ライブラリを使用しています。サイトをiPhoneのSafariで閲覧すると、以下のエラーが発生します。
Error: AADSTS50058: A silent sign-in request was sent but no user is signed in. The cookies used to represent the user's session were not sent in the request to Azure AD. This can happen if the user is using Internet Explorer or Edge, and the web app sending the silent sign-in request is in different IE security zone than the Azure AD endpoint (login.microsoftonline.com).
Safariブラウザのクロスサイトスクリプティングの防止オプションがオフの場合、認証は正常に行われます。また、ChromeサムスンギャラクシーS8 +スマートフォンの1台のブラウザーでこの問題が発生することも確認しました。この問題の正確な理由は何か、それを修正する方法は何かという考えがあります。
「Raghavendra- MSFT Identity」が彼の回答で述べた内容(可能な解決策#2)に加えて、acquireToken呼び出しのエラーをキャッチし、acquireTokenRedirect呼び出しを使用してトークンを取得することで、それを機能させることができました。リダイレクションをもう1つ追加しますが、その仕事をします。 ADALまたはMSAL v1のいずれかを使用している場合、これが私ができるあらゆる調査から見つけた唯一のオプションであることに注意してください。 MSAL v2、つまりOAuth 2.0に基づいた@ Azure/msal-browserパッケージは、PKCEによる2.0承認コードフローにより、サードパーティのCookieの必要性を排除し、適切なオプションとなります。ただし、現在ベータ版なので、本番用コードで使用できるようになるまでには、さらに時間がかかります。
angularアプリケーションをChromeブラウザをシークレットモードで使用してアクセスすると、この問題に直面しました。デフォルトでは、ホームページ。私はそれを無効にしただけで、再びエラーに直面しませんでした。