こたまご先生に続きます。
Self-HostedなTailscaleサーバのHeadscaleを、Google OAuth2認証で利用できるようにする設定をしたのでメモとして残しておきます。
Google OAuthの設定
アプリの登録
初めて利用する場合は Google Cloudのコンソールから Google Auth Platform へアクセスすると Google Auth Platform はまだ構成されていません
と表示され、「開始」ボタンが表示されますので、クリックします。
- アプリ情報
- アプリ名: 後から見分けがつくように任意の名前を入力
- ユーザーサポートメール: ログイン者もしくはGoogle Groupsで作成されたグループML一覧から選択
- 対象
- 内部/外部: 自社Google Workspaceのアカウト保持者へ向けたものなら「内部」を選択
- 連絡先情報
- メールアドレス: Googleからのお知らせを受け取る先のメールアドレスを入力
- 終了
-
Google API サービス: ユーザーデータに関するポリシー に同意します。
に✅️を入れて「作成」
-
これで次の認証情報の作成に進めます。
認証情報の作成
OIDC ProviderとしてGoogle OAuthを利用する場合にはGoogle Auth PlatformからOAuth2.0クライアントを作成します。
- Google Cloudのコンソールから Google Auth Platform へアクセスする
- 左ペインから「クライアント」を選択し、「+クライアントを作成」を開く
- アプリケーションの種類は「ウェブアプリケーション」を選択
- 名前: 後から見分けがつくように任意の名前を入力
- 承認済みのリダイレクト URI:
https://{{ あなたのheadscaleのFQDN }}/oidc/callback
を入力
- 作成する
-
クライアントID
とクライアント シークレット
を手元にメモ
-
Headscale の設定
Headscaleの設定にOIDCの項目を追加する
参考: Configuring headscale to use OIDC authentication
/etc/headscale/config.yaml (抜粋)
oidc:
issuer: "https://accounts.google.com"
client_id: "[クライアントID]"
client_secret: "[クライアント シークレット]"
scope: ["openid","profile","email"]
allowed_domains: [ "テナントで利用しているドメイン名" ]
設定を変更したらチェックして再起動します
sudo headscale configtest
sudo systemctl restart headscale
これにより、Headscaleのログイン時にGoogle OAuthのログイン画面が表示されるようになります