認可はアプリロールで決める。テナントに認可用のグループは無い(グループクレームは 2026-09-07 に消し、admins グループも削除した)。
共用のアプリ登録 Main(client id b0fa498f-7e6a-4fe1-a1c6-16fbbb6f397e)にロール Admins(値 admin)があり、
各アプリはトークンの roles に admin があれば管理者にする。ロールとリダイレクト URI は Pulumi が持つ(../pulumi/entra.ts)。
- ロールはユーザーに直接割り当てる。 テナントに Entra ID P1/P2 が無く、グループ単位の割り当てができない。管理者が増えたらその人にも割り当てる
appRoleAssignmentRequiredはfalseのまま(2026-10-07、本人)。はいにすると、ロールの無い人がMainの後ろのアプリ全部から締め出され、 人を足すたびに割り当てが要る。誰が入れるかはテナントに居るかどうか、何ができるかは各アプリ側で絞る- ロールにした理由: 設定が読める(
g, admin, role:admin)、ロール名は他の IdP にも移せる、トークンがテナントのグループの数に左右されない
| どこ | 何を見るか |
|---|---|
oauth2-proxy(auth / auth-sub) |
OAUTH2_PROXY_OIDC_GROUPS_CLAIM=roles、ALLOWED_GROUPS=admin(ロールも groups として扱う) |
| Argo CD | scopes: '[roles, email]'、policy.csv に g, admin, role:admin |
| denpa・yosegaki | roles(src/lib/server/oidc.ts) |
方針は「使うものは全部使える、管理は admin のロールを持つ人(info@)だけ」(2026-10-07 に本人が決めた)。
ゲストを Entra に招くだけで、割り当てなどは要らない。
| 種類 | ゲスト | 決めているところ |
|---|---|---|
| Matrix・Element、Forgejo(チーム members)、denpa・ashi・yosegaki など | 入れる・使える | 割り当て必須が false。初回のログインでアカウントが自動で作られる |
| NetBird(VPN) | 入れる・家の LAN に届く | 方針が All の組(pulumi/netbird.ts) |
| Argo CD・Kubernetes(Headlamp)・Hubble | 見るだけ | Argo CD は policy.default: role:readonly、Kubernetes は entra:viewer、Hubble は前段でロールを見ない |
AdGuard Home・*.s.doany.io |
入れない | 前段(oauth2-proxy)やアプリが admin のロールを求める |
Matrix の ID はメールの @ の前から作るので、前半が同じ人が 2 人居ると 2 人目は入れない(apps/matrix/README.md)。 Forgejo の members から外したいときは ../apps/forgejo/README.md「誰が何をできるか」。
セッションが 4293 バイトあったのはグループではなく ID・アクセス・リフレッシュの 3 つのトークンそのものだった
(グループは 2 つで 100 バイト強)。OAUTH2_PROXY_SESSION_COOKIE_MINIMAL=true でそれを落とし、Email と User だけを Cookie に持つ。
--pass-authorization-header / --set-authorization-header / --pass-access-token / --cookie-refresh とは併用できない(使っていない)。
redis は 2026-09-07 に消した。切り戻すなら SESSION_STORE_TYPE=redis と REDIS_CONNECTION_URL を戻して入れ直す(セッションは消える)。
効いたかは oauth2-proxy のログで見る。groups:[admin] ならロールで通り、refresh_token:false ならトークンが落ちている。
kubectl logs -n auth deploy/auth --since=10m | grep AuthSuccessOIDC_GROUPS_CLAIM を generic な oidc プロバイダで使うと groups スコープを勝手に要求し、Entra に AADSTS650053 で断られる
(bootstrap/auth/deployment.yaml のコメント)。いまは entra-id プロバイダで OAUTH2_PROXY_SCOPE も明示している。
wg-easy 用の別のアプリ登録 wg-easy が残っていれば消してよい(VPN は 2026-09-07 に NetBird へ移した)。