Skip to content
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

Endpoint /admin/accounts/create をアクセストークンから使用出来るように欲しい #14959

Open
1 task done
eternal-flame-AD opened this issue Nov 14, 2024 · 6 comments · May be fixed by #14989
Open
1 task done
Assignees
Labels
🧩API Issues regarding the interface between the server and the client. ✨Feature This adds/improves/enhances a feature packages/backend Server side specific issue/PR

Comments

@eternal-flame-AD
Copy link
Contributor

Summary

write:admin:create-account permission がサーポートしてほしい。

Purpose

正当な自動化でユーザーを作成場合は何だかあると思います? 例えば

  • ステージング環境の E2E/Performance regression/Spam test
  • Misskeyシステム以外のカスタムディレクトリ (OAuth proxy, LDAP, etc.)

セキュリティ方面はAdmin権限があるユーザーは信頼レベルは極めて高いので、アカウントが自動化作成はアタックベクターであるそうとは言えないと思います。

Ref impl: https://forge.yumechi.jp/yume/yumechi-no-kuni/commit/738877016ceb50d404e66d35f149140d3909220f

Example Script: https://forge.yumechi.jp/yume/yumechi-no-kuni/commit/60eb7e1dc94d2abcf0f3767272d324b4e71e1c43

Do you want to implement this feature yourself?

  • Yes, I will implement this by myself and send a pull request
@eternal-flame-AD eternal-flame-AD added the ✨Feature This adds/improves/enhances a feature label Nov 14, 2024
@KisaragiEffective KisaragiEffective changed the title Endpoint /admin/accounts/create がアクセストークンで使用出来るように欲しい Endpoint /admin/accounts/create をアクセストークンから使用出来るように欲しい Nov 16, 2024
@KisaragiEffective KisaragiEffective added 🧩API Issues regarding the interface between the server and the client. packages/backend Server side specific issue/PR labels Nov 16, 2024
@samunohito
Copy link
Member

僕個人としても推進したい所ではありますが、懸念がいくつかあります。

セキュリティ方面はAdmin権限があるユーザーは信頼レベルは極めて高い

上記の通りな方もいれば、残念ながらあまり関心のない方もいらっしゃるので、とても難しい話だと思います…。
アクセストークンの発行は少しでも防御力の高い状態で使ってほしい機能だと認識しています。なので…2FA設定済みの場合のみ実行可能なようにするなどいかがでしょう?(参考までに…Gmailがサードパーティアプリ向けに発行するパスワードは2FA設定済みであることが条件のようです)

また、開発用途である場合はprocess.env.NODE_ENV !== 'production'での条件を追加するなども有りだと考えています。

@eternal-flame-AD
Copy link
Contributor Author

eternal-flame-AD commented Nov 24, 2024

全体として、あなたの意見は非常に貴重で有効であり、提案に感謝し、体系的に実装されるべきであると思いますが、この問題のセキュリティ問題であるとは思わないし、この問題は新しいセキュリティの問題を開いていません。

私がセキュリティについての配慮は:

アタッカーがSigninできるまたは他の手段でユーザートークンが手に入れた場合は、アクセストークンがなくでも作成できる。2FAは前提条件が高めるでもこのフィーチャーが自身のセキュリティ問題ではないと思います。

アタッカーが普通なアクセストーケン(admin許可がない)がある場合は、作成できない。

深刻なデータリークまたはトークン構成ミスでadmin許可があるトークンがある場合は、create-accountだけ許可があるの可能性が低いと思います。他のwrite:admin:delete-account write:invite-codes "write:admin:meta" "write:admin:reset-password" (2FAも無効する) などサーバーを新しい始まりに持ち込みできる許可がありますと思います。

限られたトークンを使用できなくなら、ユーザーはこれに完全なユーザートークンを使用するために頼ることができ、実際に他の問題を紹介するかもしれませんだと思います>

@eternal-flame-AD
Copy link
Contributor Author

すべでの*::admin::*トーケンの作成は2FAが必要はとても良いと思います。後でこれを追跡するために新しい問題を開くことはいかがでしょうが

@samunohito
Copy link
Member

たしかに。
トークン発行者のセキュリティ事情を考え始めると/admin/accounts/createだけのお話じゃなくなりますね。

@samunohito
Copy link
Member

仰る通り、以下は別問題として分けて考えた方が良いですね。

  1. adminユーザ向けのトークン発行は2FAを必須としないとセキュリティ面で懸念が残る
  2. /admin/accounts/createをアクセストークンから行えるようにしたい

他のメンバーの意見も聞いてみたい所ではありますが…
ひとまず、自分の意見としては1を解消してから2(このissue)に取り組んだ方が良いと考えています。

@eternal-flame-AD
Copy link
Contributor Author

userpassもリークされた (パスワード再利用など) の方面で、2FAをセットアップする前に、許可検証の目的で、WebUI Signinでもユーザーを管理者と見なさないといいと思います。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🧩API Issues regarding the interface between the server and the client. ✨Feature This adds/improves/enhances a feature packages/backend Server side specific issue/PR
Projects
3 participants