インフラエンジニアも人間じゃない?

インフラエンジニアの備忘録

Mastodonのインスタンスで登録できるユーザを限定する

流行りにのってMastodon(のインスタンスを立て)はじめました。

今のところ身内限定で登録して使いたいなあと思っていましたが、どうやら登録時のメールドメインぐらいでしか登録を絞る方法がなさそうだったので少し困りました。

結果としてはリバースプロキシで特定のURLのアクセスにBasic認証をつけることで、登録ページのみBasic認証が必要になるように変更しました。


以下のような構成の場合に有効です。

Internet <-> リバースプロキシ <-> Mastodon



ソースを見て確認したわけではないので確実ではないですが、少し触った感じでは登録時にはユーザ情報を /auth に投げているようです。

そこで、Nginxのdefault.confに以下のような設定を追加しました。

設定前
server {

(中略)

    location / {
        (略)
        
        proxy_pass http://xx.xx.xx.xx:3000/;
        proxy_connect_timeout 5;
    }
設定後
server {

(中略)

    location / {
        (略)
        
        proxy_pass http://xx.xx.xx.xx:3000/;
        proxy_connect_timeout 5;
    }

    location = /auth {
        auth_basic "basic auth";
        auth_basic_user_file /tmp/.htpasswd;
        
        (略)
        
        proxy_pass http://xx.xx.xx.xx:3000/auth;
        proxy_connect_timeout 5;
    }


とりあえずこれで/authへのアクセスについてはBasic認証が必要になります。
auth_basic_user_file /tmp/.htpasswd;の箇所は.htpasswdファイルがあるパスに置き換えてください。

ファイル自体はこの辺で作るのが簡単ですかね。
www.luft.co.jp

パスワードをオンラインに公開するなんてありえないwwwという方はコマンドなんかで作成すればいいんじゃないでしょうか。


この設定ですが、今後仕様が変わったり、実は他のページからも作れるなんてことがあるかもしれないので
本格的に運用したい人は何か他の手段を考えるべきかもしれません。