OIDCプロバイダーのセットアップ
OpenID Connect (OIDC) は、Google、Microsoft、または社内のIDプロバイダーなどの既存アカウントを使ってユーザーがサインインできる認証プロトコルです。これにより、シームレスで安全な認証のためのシングルサインオン(SSO)が可能になります。
このガイドでは、Unraid APIでWebGUIを使用してSSO認証向けのOIDC(OpenID Connect)プロバイダーを設定する手順を説明します。
🚀 クイックスタート
OIDC設定へのアクセス
- UnraidサーバーのWebGUIに移動します。
- Settings → Management Access → API → OIDC に移動します
- 異なるプロバイダー用のタブが表示されます。新しいプロバイダーを追加するには + ボタンをクリックします
OIDCプロバイダーインターフェースの概要
従来のログインフォームとSSOオプション(「Login With Unraid.net」「Sign in with Google」ボタン)を表示するログインページ
このインターフェースには次のものが含まれます:
- プロバイダータブ: 設定済みの各プロバイダー(Unraid.net、Google など)がタブとして表示されます
- プロバイダー追加ボタン: + ボタンをクリックして新しいプロバイダーを追加します
- 認可モードのドロップダウン: 「simple」と「advanced」を切り替えます
- シンプル認可セクション: 許可するメールドメインと特定のアドレスを設定します
- 項目追加ボタン: 複数の認可ルールを追加するにはクリックします
認可モードの理解
このインターフェースでは2つの認可モードを提供します:
シンプルモード(推奨)
シンプルモードは、認可を設定する最も簡単な方法です。次のことができます:
- 特定のメールドメインを許可する(例: @company.com)
- 特定のメールアドレスを許可する
- 最小限の設定でUnraidサーバーへのアクセス対象を構成する
シンプルモードを使う場合:
- 会社ドメインのすべてのユーザーを許可したい
- 特定ユーザーのリストが少ない
- OIDC設定が初めてである
アドバンスモード
アドバンスモードでは、クレームベースのルールを使ってきめ細かな制御ができます。次のことができます:
-
JWTクレームに基づく複雑な認可ルールを作成する
-
equals、contains、endsWith、startsWith などの演算子を使用する
-
複数の条件をOR/ANDロジックで組み合わせる
-
任意のルールが通ればよい(ORモード)のか、すべてのルールが通る必要がある(ANDモード)のかを選択します
アドバンスモードを使う場合:
-
グループメンバーシップを確認する必要がある場合。
-
複数のクレームを検証したい場合(例: メールドメイン AND 確認済みステータス)。
-
複雑な認可要件がある場合。
-
ルールの評価方法をきめ細かく制御する必要がある場合。
アドバンスモード
ドメインベースのアクセス制御のために email endsWith 演算子を使用したJWTクレーム設定を示すアドバンス認可ルール
会社ドメインを許可
会社ドメインを許可
シンプル認可では:
- 許可されたメールドメイン:
company.comを入力します - これにより、@company.com のメールアドレスを持つすべてのユーザーが許可されます
特定ユーザーを許可
- 特定のメールアドレス: 個別のメールアドレスを追加します
- 項目を追加 をクリックして複数のアドレスを追加します
アドバンスモードの例
認可ルールモード
複数のルールを使用する場合、どのように評価するかを選択できます:
-
ORモード(既定): いずれかのルールが通ればユーザーは認可されます
-
ANDモード: すべてのルールが通った場合にのみユーザーは認可されます
確認済みのメールドメイン(ANDモード)
メールドメインと確認の両方を必須にするには:
- 認可ルールモード を
ANDに設定します。 - 2つのルールを追加します:
- ルール 1:
- クレーム:
email - 演算子:
endsWith - 値:
@company.com
- クレーム:
- ルール 2:
- クレーム:
email_verified - 演算子:
equals - 値:
true
- クレーム:
- ルール 1:
これにより、ユーザーは会社のメールアドレスと確認済みメールアドレスの両方を持つ必要があります。
グループベースのアクセス(ORモード)
複数のグループへのアクセスを許可するには:
- 認可ルールモード:
OR(どれか1つのルールが通る)またはAND(すべてのルールが通る)を選択します - 各グループのルールを追加します:
- クレーム:
groups - 演算子:
contains - 値:
adminsまたは別のルールを追加: - クレーム:
groups - 演算子:
contains - 値:
developers
- クレーム:
admins または developers グループのユーザーが認可されます。
複数のドメイン
- クレーム:
email - 演算子:
endsWith - 値: 複数のドメインを追加します(例:
company.com、subsidiary.com)
複雑な認可(ANDモード)
複数の条件を必要とする厳格なセキュリティの場合:
- 認可ルールモード を
ANDに設定します。 - すべてが通過する必要がある複数のルールを追加します:
- メールは会社ドメインのものでなければなりません
- メールは確認済みでなければなりません
- ユーザーは特定のグループに所属している必要があります
- アカウントで2FAが有効になっている必要があります(該当するクレームがある場合)
設定インターフェースの詳細
プロバイダータブ
-
設定済みの各プロバイダーは上部にタブとして表示されます
-
タブをクリックするとプロバイダー設定を切り替えられます
-
右側の + ボタンで新しいプロバイダーを追加します
認可モードのドロップダウン
-
Simple: メールベースの認可に最適です(多くのユーザーに推奨)。
-
Advanced: JWTクレームを使用した複雑なクレームベースのルール向けです。
シンプル認可フィールド
「simple」モードを選択すると、次の項目が表示されます:
- 許可されたメールドメイン: @なしでドメインを入力します(例:
company.com)。- ヘルプテキスト: 「これらのドメインで終わるメールアドレスのユーザーはログインできます」
- 特定のメールアドレス: 個別のメールアドレスを追加します。
- ヘルプテキスト: 「これらの正確なメールアドレスだけがログインできます」
- 項目追加 ボタンで複数のエントリを追加します。
アドバンス認可フィールド
「advanced」モードを選択すると、次の項目が表示されます:
- 認可ルールモード:
OR(いずれかのルールが通る)またはAND(すべてのルールが通る)を選択します。 - 認可ルール: 複数のクレームベースのルールを追加します。
- 各ルールごとに:
- Claim: 確認するJWTクレーム。
- Operator: 比較方法(equals、contains、endsWith、startsWith)。
- Value: 照合対象。
その他のインターフェース要素
- 許可されたメールドメイン: @なしでドメインを入力します(例:
-
Developer Sandboxを有効化: トグルを切り替えて、
/graphqlでGraphQLサンドボックスを有効にします。 -
このインターフェースは、視認性を高めるためにダークテーマを使用しています。
-
フィールドの検証インジケーターは、正しい設定を確実にするのに役立ちます。
必須のリダイレクトURI
すべてのプロバイダーは、この正確なリダイレクトURI形式で設定する必要があります:
http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback
YOUR_UNRAID_IP を実際のサーバーIPアドレス(例: 192.168.1.100 または tower.local)に置き換えてください。
Issuer URLの形式
Issuer URL フィールドは両方の形式を受け付けますが、セキュリティ上はベースURLの使用を強く推奨します:
- ベースURL(推奨):
https://accounts.google.com - 完全な検出URL:
https://accounts.google.com/.well-known/openid-configuration
⚠️ セキュリティ नोट: 可能な限りベースURL形式を使用してください。システムはOIDC検出のために /.well-known/openid-configuration を自動的に追加します。完全な検出URLを直接使用すると、重要なIssuer検証チェックが無効になり、OpenID Connect仕様でも推奨されません。
正しいベースURLの例:
- Google:
https://accounts.google.com - Microsoft/Azure:
https://login.microsoftonline.com/YOUR_TENANT_ID/v2.0 - Keycloak:
https://keycloak.example.com/realms/YOUR_REALM - Authelia:
https://auth.yourdomain.com
✅ 設定のテスト
カスタマイズされたプロバイダーボタンとともに、従来のユーザー名/パスワード認証とSSOオプションの両方を表示するUnraidログインページ
- クレーム:
email - 演算子:
endsWith - 値: 複数のドメインを追加します(例:
company.com、subsidiary.com) - 設定したプロバイダーボタンが表示されるはずです
- クリックしてログインフローをテストします
トラブルシューティング
よくある問題
"Provider not found" エラー: Issuer URL が正しいこと、またプロバイダーがOIDC検出(/.well-known/openid-configuration)をサポートしていることを確認してください。
"Authorization failed": シンプルモードでは、メールドメインが正しく(@なしで)入力されていることを確認してください。アドバンスモードでは、クレーム名がプロバイダーの送信内容と完全に一致しているか、認可ルールモードが正しく設定されているか(OR か AND か)を確認し、必要なすべてのクレームがトークンに含まれていることを確認してください。実際のクレームとルール評価を確認するには、デバッグログを有効にします。
"Invalid redirect URI": プロバイダー側のリダイレクトURIが完全に一致していることを確認し、標準以外の構成を使用している場合は正しいポートを含め、リダイレクトURIのプロトコルがサーバーの設定(HTTP または HTTPS)と一致していることを確認してください。
ログインボタンが表示されない: 少なくとも1つの認可ルールが設定されていること、およびプロバイダーが有効化/保存されていることを確認してください。
認可モードのドロップダウン
問題をトラブルシューティングするには:
- デバッグログを有効にします:
LOG_LEVEL=debug unraid-api start --debug
- 次の内容をログで確認します:
- デバッグログを有効にします:
- 認可ルールの評価。
- トークン検証エラー。
「advanced」モードを選択すると、次の項目が表示されます:
問題が発生した場合は、プロバイダーのOIDCドキュメントを確認し、詳細なエラーメッセージについてUnraid APIのログを確認し、プロバイダーが標準のOIDC検出をサポートしていることを確認し、Unraidとプロバイダー間のネットワーク接続を検証してください。追加のヘルプについては、Unraid forums を参照してください。
その他のインターフェース要素
Unraid.netプロバイダー
Unraid.netプロバイダーは組み込み済みで事前設定されています。インターフェースで認可ルールを設定するだけで済みます。
構成:
- Issuer URL: 事前設定済み(組み込みプロバイダー)
- Client ID/Secret: 事前設定済み(組み込みプロバイダー)
- Redirect URI:
http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback
YOUR_UNRAID_IP を実際のサーバーIPアドレス(例: 192.168.1.100 または tower.local)に置き換えてください。
Google
設定手順
Google Cloud Console で OAuth 2.0 認証情報を設定します:
- APIs & Services → Credentials に移動します。
- Create Credentials → OAuth client ID をクリックします。
- アプリケーションの種類として Web application を選択します。
- Authorized redirect URIs にリダイレクトURIを追加します。
- 求められた場合はOAuth同意画面を設定します。
構成:
- Issuer URL:
https://accounts.google.com - Client ID/Secret: OAuth 2.0 クライアント認証情報から取得します
- Required Scopes:
openid,profile,email - Redirect URI:
http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback
Googleでは、OAuthリダイレクトURIに有効なドメイン名が必要です。ローカルIPアドレスと .local ドメインは受け付けられません。UnraidサーバーでGoogle OAuthを使用するには、次が必要です:
- オプション1: リバースプロキシ - 有効なドメイン名をUnraid APIに向けて設定したリバースプロキシ(NGINX Proxy ManagerやTraefikなど)を構成します。
- オプション2: Tailscale - Tailscale を使用して、Google が受け入れる有効な
*.ts.netドメインを取得します。Tailscale の詳細については、Remote access を参照してください。 - Keycloak:
https://keycloak.example.com/realms/YOUR_REALM
Google Cloud Console と Unraid のOIDC設定の両方でリダイレクトURIを有効なドメインに更新することを忘れないでください。
Google Workspaceドメインでは、hd クレームを使ってアドバンスモードを使用し、組織のドメインへのアクセスを制限します。
Authelia
Autheliaのconfiguration.ymlでOIDCクライアントを設定し、クライアントIDをunraid-apiにして、Autheliaのhash-passwordコマンドを使ってハッシュ化されたシークレットを生成します。
構成:
- Issuer URL:
https://auth.yourdomain.com - Client ID:
unraid-api(またはAutheliaで設定した値) - Client Secret: ハッシュ化されていないシークレット
- Required Scopes:
openid,profile,email,groups - Redirect URI:
http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback
Google Workspaceドメインの場合は、hdクレームを使うAdvanced Modeを使用して、組織のドメインへのアクセスを制限します。
Microsoft/Azure AD
Azure Portal](https://portal.azure.com/)でAzure Active Directory → App registrationsの下に新しいアプリを登録します。アプリケーションIDを控え、クライアントシークレットを作成し、テナントIDを控えます。
構成:
- Issuer URL:
https://login.microsoftonline.com/YOUR_TENANT_ID/v2.0 - Client ID: アプリケーション(クライアント)ID
- Client Secret: 生成されたクライアントシークレット
- Required Scopes:
openid,profile,email - Redirect URI:
http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback
認可ルールは、メールドメインまたはAdvancedクレームを使ってインターフェースで設定できます。
Keycloak
Keycloak Admin Consoleでopenid-connectプロトコルを使って新しい confidential client を作成し、Credentialsタブからクライアントシークレットをコピーします。
構成:
- Issuer URL:
https://keycloak.example.com/realms/YOUR_REALM - Client ID:
unraid-api(またはKeycloakで設定した値) - Client Secret: KeycloakのCredentialsタブから取得
- Required Scopes:
openid,profile,email - Redirect URI:
http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback
ロールベースの認可には、realm_access.rolesまたはresource_accessクレームを使ってAdvanced Modeを使用します。
Authentik
Authentikで新しいOAuth2/OpenID Providerを作成し、次にApplicationを作成してそれをプロバイダーにリンクします。
構成:
- Issuer URL:
https://authentik.example.com/application/o/<application_slug>/ - Client ID: Authentikのプロバイダー設定から取得
- Client Secret: Authentikのプロバイダー設定から取得
- Required Scopes:
openid,profile,email - Redirect URI:
http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback
認可ルールは、インターフェースで設定できます。
Okta
Okta Admin Consoleで新しいOIDC Web Applicationを作成し、適切なユーザーまたはグループを割り当てます。
構成:
- Issuer URL:
https://YOUR_DOMAIN.okta.com - Client ID: Oktaのアプリケーション設定から取得
- Client Secret: Oktaのアプリケーション設定から取得
- Required Scopes:
openid,profile,email - Redirect URI:
http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback
認可ルールは、メールドメインまたはAdvancedクレームを使ってインターフェースで設定できます。