web-dev-qa-db-ja.com

アプリからブラウザーに移動するときにセッションを維持するための推奨戦略は?

ネイティブモバイルアプリケーションとWebアプリケーションの認証を提供するSSOアプリケーションがあります。アカウント管理など、Webアプリケーションにはモバイルアプリケーションにはない機能がいくつかあります。アプリからWebブラウザーにユーザーをリダイレクトするときに、ユーザーを(再度サインインすることなく)ログインしたままにします。たとえば、ネイティブアプリケーションの設定ボタンをクリックします。

モバイルアプリケーションのセッションをWebブラウザに運ぶための推奨されるアプローチは何ですか?

いくつかの明確化するポイント:

1
John Leehey

私の知る限り、この種の状況を処理する標準的な方法はありません。ただし、バックエンドコードにアクセスできる場合(ほとんどの市販の認証ソリューションでは、サーバーの機能を拡張するサーバーレス機能を提供できます)、OAuth2 Authorization Code Grantに似たものを実装できます。

  1. 認証されたアプリケーションが認証サーバーにコードを要求する(1回限りのコードで、あと2分間だけ有効)
  2. URL内のそのコードとともにWebサイトを開始します
  3. Webアプリケーションは、認証トークン(JWTまたは使用しているものなど)のコードを交換するために認証サーバーに接続します。
2
Kamil Janowski

ユーザーがssoプロバイダーにサインインしたばかりの場合、まだアクティブなセッションを持っている可能性があります。

以前にOIDCを使用したことがある場合、ユーザーにアクティブなセッションがあり、Webアプリケーションが同じクライアントIDを使用し、新しいスコープを要求しないとすると、認証サービスはユーザーをアプリにリダイレクトします。トークン。

ユーザーがSSOプロバイダー上でアクティブなセッションを持っていない場合は、とにかくもう一度認証することは理にかなっているかもしれませんが、適切なログインセッションなしに誰も私の設定を変更できないようにしたいと思います。

0
BenCr