2

Azure B2C と MSAL を使用してユーザーを認証する SPA アプリ (VueJS) があります。認証は問題なく機能します。

しかし、うまくいかないのは、ユーザーがログインしたままにならないことです。

アプリを使用している限り、すべて正常に動作します。しかし、翌日アプリを起動すると、再ログインする必要があります (または、使用したいアカウントを再選択する必要があります) が、Azure ポータルなどと同じユーザー エクスペリエンスが必要です。1 週間後にポータルに再アクセスでき、再ログインする必要はありません。

MSAL でこの動作を実現するにはどうすればよいですか? これはこのライブラリでも可能ですか?ライブラリは暗黙的なフローを使用します。

これが機能する場所で使用できる別のライブラリはありますか?

4

2 に答える 2

1

答えの前に...

ネットワーク トレース ツールを調べて、何が起こっているのかを詳しく調べる必要があると思います。また、他の回答が言ったように、KMSI は役に立ちますが、ここでの問題はそれだけではありません。Cookie が設定されているか (以下を確認)、アプリが ID とアクセス トークンを正常に取得しているかどうかを確認し、後続の認証要求でこの状態を確認することをお勧めします。

基本

MSAL.js を使用した SSO は完全に可能であり、多くの構成を行わなくても実行できます。認証を実装するブラウザーベースのアプリの背景については、SSO の実現は、トークン/トークン管理ではなく、Cookie/セッションの要素です。

これがどのように機能するか

シングル ページ アプリがユーザーを Azure AD B2C サインイン ページにリダイレクトし、エンド ユーザーが正常にサインインすると、Azure AD はそのエンド ユーザーのブラウザーに Cookie を設定します。次に、アプリがユーザーの ID トークンまたはアクセス トークンを取得する必要がある場合 (最初のサインインからの既存のトークンの有効期限が切れている場合)、MSAL はバックグラウンドでサイレント i-frame を起動し、Azure AD にリダイレクトできます。特別なクエリ パラメータ ( prompt=none) を使用してサイトにアクセスし、以前に設定した Cookie を利用します。

于 2018-01-09T17:38:25.983 に答える