シングルサインオン
シングルサインオン(SSO)を使用すると、ユーザーはユーザー名とパスワードを入力する代わりに、外部アイデンティティプロバイダーを通じてjvmguardにサインインできます。jvmguardは、OpenID Connect (OIDC)互換の任意のプロバイダーをサポートし、最も一般的なプロバイダーにはプリセットがあります。SSOは既存のローカルおよびLDAP認証と並行して実行されるため、3つの方法すべてを同時にアクティブにできます。
SSOが有効な場合、ログインページには設定されたプロバイダーごとに追加のボタンが表示されます。ユーザーはボタンをクリックし、アイデンティティプロバイダーで認証し、jvmguardにリダイレクトされます。ユーザーが認可されている場合、jvmguardは割り当てられたアクセスレベルでセッションを作成します。
SSOクライアントIDとシークレットは環境変数でオーバーライドできます。サーバー設定を参照してください。

リダイレクトURI
Section titled “リダイレクトURI”各SSOプロバイダーでは、アイデンティティプロバイダーのアプリケーション設定にリダイレクトURIを登録する必要があります。リダイレクトURIは次の形式です。
http://<jvmguard-host>:<port>/login/oauth2/code/<slug>ここで、<slug>はプロバイダーの表示名を小文字に変換し、英数字以外の文字をハイフンに置き換えたものです。例えば、「Keycloak」という名前のプロバイダーのリダイレクトURIはhttp://localhost:8020/login/oauth2/code/keycloakです。
さらに、ログアウトリダイレクトURI http://<jvmguard-host>:<port>/loginを登録して、ユーザーがアイデンティティプロバイダーでサインアウトした後にjvmguardがログインページにリダイレクトできるようにする必要があります。一部のアイデンティティプロバイダーは、これを「post logout redirect URI」または「allowed logout URL」と呼びます。このURIが登録されていない場合、ユーザーがログアウトするときにアイデンティティプロバイダーはエラーを表示します。
アクセスルール
Section titled “アクセスルール”アクセスルールは、どのユーザーがSSOプロバイダー経由でサインインできるか、およびどのアクセスレベルを受け取るかを決定します。空のアクセスルールリストは、事前に作成されたユーザーのみがサインインできることを意味します。これがデフォルトで、最も制限的なモードです。
アイデンティティプロバイダートークンからのグループまたはロールクレームに一致するルールを追加できます。各ルールはクレーム値をアクセスレベルにマッピングします。*と表示される特別なキャッチオールルールは、より具体的なルールに一致しない設定ドメイン内のすべてのユーザーに一致します。キャッチオールルールはプロバイダーごとに1つだけ許可されます。
次のシナリオは、アクセスルールの動作を示しています。
- ルールなし: jvmguardで事前に作成したユーザーのみがサインインできます。アクセスレベルはユーザー定義から取得されます。
- 特定のグループルール: トークンに一致するグループクレーム値が含まれるユーザーは、割り当てられたアクセスレベルで自動作成されます。一致するグループがないユーザーは、キャッチオールルールも設定されていない限り、拒否されます。
- キャッチオールのみ: アイデンティティプロバイダーで認証でき、ドメイン制限を通過するすべてのユーザーが、キャッチオールルールに割り当てられたアクセスレベルで自動作成されます。
- 特定のルールとキャッチオール: 特定のグループルールに一致するユーザーは、そのルールからより高いアクセスレベルを取得します。他のすべてのユーザーは、キャッチオールルールからアクセスレベルを取得します。
Google Workspaceは、OpenID Connect経由でグループクレームを公開しません。Googleプロバイダーの場合、アクセスルールは、設定されたドメイン内のすべてのユーザーに適用されるキャッチオールルールに限定されます。
ユーザー管理
Section titled “ユーザー管理”SSOユーザーは2つの方法で作成できます。
事前作成ユーザー: 「ユーザーとロール」で、タイプ「SSO」のユーザーを作成し、アイデンティティプロバイダーでのユーザーのメールアドレスを入力します。アクセスレベルはユーザーが割り当てます。ユーザーが初めてサインインすると、jvmguardはメールアドレスを一致させ、アイデンティティプロバイダーのサブジェクト識別子をユーザーエントリに関連付けます。
自動作成ユーザー: アクセスルールが一致し、事前作成ユーザーが存在しない場合、jvmguardは一致したルールのアクセスレベルで新しいユーザーエントリを作成します。ユーザーのフルネームは、利用可能な場合、アイデンティティプロバイダートークンから設定されます。
ユーザーが手動または自動で作成されると、「ユーザーとロール」でいつでもアクセスレベルを変更できます。変更は次回のログイン時に有効になります。
ローカルおよびLDAP認証との共存
Section titled “ローカルおよびLDAP認証との共存”SSOは、ローカルまたはLDAP認証を置き換えるものではありません。3つの方法すべてを同時にアクティブにできます。各ユーザーには単一のユーザータイプがあります。「ローカル」、「LDAP」、または「SSO」です。ユーザータイプは、ユーザーがどのように認証するかを決定します。
「ローカル」または「LDAP」として作成されたユーザーは、アイデンティティプロバイダーで同じメールアドレスが使用されている場合でも、SSOボタン経由でサインインできません。逆に、「SSO」ユーザーは、そのユーザータイプにはパスワードが保存されていないため、パスワードでサインインできません。
ユーザーをある認証方法から別の認証方法に移行したい場合は、「ユーザーとロール」でユーザータイプを変更します。現在ログインしている既存のユーザーは削除できないことに注意してください。