

slackのデスクトップアプリや、VisualStudioやOffice製品のように、ブラウザ（もしくはWebView的なもの）でユーザ認証をしてデスクトップアプリケーションに認証結果を連携しているように見えるアプリケーションはどのような技術で実現しているのでしょうか？


CC BY-SA 4.0
2022-11-06T06:31:16.643
92030
2022-11-07T04:31:06.933
55233
question
認証認可
デスクトップアプリの認証をブラウザで行う方法


これが正解というものがあるわけではなく、いくつか方法が考えられます。  
例えばですが、

  1. アプリケーション側で、認証サイトにリダイレクトでジャンプするhtmlファイルをローカルに作成する処理を埋め込む。
  2. 認証操作をすると、固有の認証コード(GUIDのような重複しない可能性が高い文字列)を作成し、1．の処理のリダイレクト先のURLにパラメータとして指定してhtmlファイルを作成
  3. 出力したhtmlをアプリケーションで実行する。これでWebブラウザが起動し、リダイレクトで認証サイトの画面が表示されます。
  4. 認証のためのID,Passwordを入力し、ログインすると、パラメータで渡された認証コードをサーバ側でDBなどに記憶
  5. アプリケーションからWebブラウザを介さないサーバアクセスで認証コードを送信
  6. サーバ側で認証コードをチェックし、該当するものがあれば、認証成功の応答を返す。

セキュリティ的にはいろいろ問題ありそうですが、こんな感じでも実現可能かと思います。  
APIの仕様を決めておけば、サーバ側、アプリケーション側ともバージョンアップしても使えますし、同じ会社のシステムでも使いまわしできるのではないかと思います。  
後は工夫次第でセキュリティを強化したり、機能をいろいろ持たせたりできると思います。  
他にもっと良い方法もあると思いますので、ご参考までに。


CC BY-SA 4.0
2022-11-07T04:31:06.933
92055
2022-11-07T04:31:06.933
9515
92030
answer