-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
miauthで簡単にWebサービスにログインできるシステム #6623
Comments
この方法で何かセキュリティリスクとか脆弱性が発生し得ないか確認していただきたく |
字面だけ見ると攻撃に対してあまり強くなさそう(リファラと何らかの追加情報さえあればトークン盗める?)に見えるけど、具体的にどういうフローなんだろう |
リファラ情報さえ有ればトークン取得できるけど、ブラウザでリファラを偽装することは不可能なのでその点は大丈夫そう |
これはWebサービス側でセッションなりアクセストークンを保持しておけばいいのではと 外部Webサービス側から再リクエストしてくる理由が、 |
そういえばセッションあっても別のブラウザからログインする時とかはセッションないのでやっぱりトークン複数作られることになる |
リファラ切ってるユーザーが使えなさそう |
あと連携サービス先にオープンリダイレクトがあるとやばそう |
あとドメイン失効した時が怖い |
ドメインに関してはこの機能実装しなくても危険性ありそう |
使えないユーザーは単に今までの手順になるだけだからそこは無視で良さそう |
I am currently implementing something that needs log out & log in again. Users can manually log out if they wish (for example if they are using multiple fediverse accounts on the aplication this is necessary) but logging back in with Miauth will generate a new API token. |
Probably it is more worthwhile to implement OAuth2 than to devote resources to revive legacy authentication or enhance MiAuth like this Issue. |
Summary
Motivation
現状、Webサービス側でセッション情報を保持していない限り、WebサービスにMisskeyアカウントでログインするときはその都度Miauthでアクセス許可をしてトークン発行がされる。
Misskey側で、ひとつのWebサービスはひとつのトークンを使いまわせるようにすると便利なため、そうしたい。
案
アクセス許可の際に、ブラウザでリファラを取得しておく。そうするとどのWebサービスから来たのかわかるため、トークンにもその情報を付けておく。
次にアクセス許可を求められた際は、まずその時のリファラと一致するトークンがデータベースに既に無いか確認し、あれば許可しているものとしてそのトークンをレスポンスとしてリダイレクトする。
そうすることで、ユーザーは何の操作も必要なしにログインできる。
The text was updated successfully, but these errors were encountered: