11.2.20. ドメインの作成: Kerberos 認証

LDAP とproxy 識別の両プロバイダーは別々の Kerberos ドメインを使用して認証を供給できます。Kerberos 認証プロバイダーの設定には、key distribution center (キー配布センター) (KDC) と Kerberos ドメインが必要です。すべてのプリンシパル名は指定された識別プロバイダー内で利用可能でなければなりません。そうでない場合は、SSSD が形式 username@REALM を使用してプリンシパルを構築します。 

注記

Kerberos は、認証のみを提供できます。識別データベースは提供できません。
SSSD は、Kerberos KDC が Kerberos kadmin サーバーでもあることを想定しています。しかし、実稼働環境では、KDC の読み込み専用のレプリカが複数あり、kadmin サーバーは1つのみと言うのが一般的になっています。krb5_kpasswd オプションを使用することで、パスワード変更サービスが稼働する場所を、またはそれが非デフォルトのポートで稼働するかどうかを指定します。krb5_kpasswd オプションが指定されていない場合は、SSSD は、Kerberos KDC を使用してパスワード変更をします。
基本的な Kerberos 設定オプションは 表11.10「Kerberos 認証設定のパラメータ」 に一覧表示してあります。Kerberos 設定オプションについての情報には sssd-krb5(5) の man ページを参照してください。

例11.13 基本的な Kerberos 認証

# A domain with identities provided by LDAP and authentication by Kerberos
[domain/KRBDOMAIN]
enumerate = false
id_provider = ldap
chpass_provider = krb5
ldap_uri = ldap://ldap.example.com
ldap_search_base = dc=example,dc=com
ldap-tls_reqcert = demand
ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crt

auth_provider = krb5
krb5_server = kdc.example.com
krb5_backup_server = kerberos.example.com
krb5_realm = EXAMPLE.COM
krb5_kpasswd = kerberos.admin.example.com
krb5_auth_timeout = 15

例11.14 Kerberos チケット更新オプションの設定

Kerberos 認証プロバイダーのタスクの一つは、ユーザーとサービスに対してチケット保証チケット (TGT) を要求することです。このチケットは、チケットのプリンシパルであるユーザーがアクセスすることで、特定サービスに動的に他のチケットを生成するために使われるます。
ユーザー本人に最初に与えられた TGT は、そのチケットのライフタイムの間のみ有効です (デフォルトでは、設定済み KDC の設定)。その後は、チケットの更新や延長はできません。しかし、チケットを更新しないと、実行中のサービスにアクセスしようとする際やチケットの期限が切れた時に問題が起きるサービスもあります。
Kerberos チケットはデフォルトでは更新できませんが、krb5_renewable_lifetimekrb5_renew_interval パラメーターを使ってチケット更新を有効にできます。
チケットのライフタイムは krb5_lifetime パラメーターで SSSD 内で設定します。これはチケットの有効期間を指定し、KDC の他のどの値にも優先します。
チケット更新自体は krb5_renewable_lifetime パラメーターで有効化され、更新すべてを集計してチケットの最大ライフタイムを設定します。
例えば以下では、チケットのライフタイムは 1 時間に、更新可能なライフタイムは 24 時間に設定されます。
krb5_lifetime = 1h
krb5_renewable_lifetime = 1d
この設定では、チケットは 1 時間ごとに有効期限が切れ、最大 1 日間は続けて更新が可能になります。
ライフタイムと更新可能ライフタイムの値は、秒数 (s)、分数 (m)、時間 (h)、日数 (d) のいずれかにできます。
チケット更新で設定する必要のある別のオプションは、krb5_renew_interval パラメーターです。これは、チケットの更新が必要かどうかを SSSD がチェックする頻度を設定します。この設定に関係なく、チケットのライフタイムが半分になった時点で、チケットは自動的に更新されます (この値は常に秒単位)。
krb5_lifetime = 1h
krb5_renewable_lifetime = 1d
krb5_renew_interval = 60s

注記

krb5_renewable_lifetime の値が設定されていなかったり、krb5_renew_interval パラメーターが設定されていないか 0 に設定されていたりすると、チケット更新は無効になります。チケット更新の有効化には、krb5_renewable_lifetimekrb5_renew_interval の両方が必要です。

表11.10 Kerberos 認証設定のパラメータ

パラメーター 詳細
chpass_provider パスワード変換操作に使用するサービスを指定します。これは認証プロバイダーと同じと想定されています。Kerberos を使用するには、これを krb5 に指定します。
krb5_server SSSD が接続先のプライマリー Kerberos サーバーを IP アドレスかホスト名で提供します。
krb5_backup_server プライマリーサーバーが利用できない場合、SSSD の接続先となる Kerberos サーバーの IP アドレス、またはホスト名のカンマ区切りの一覧を提供します。この一覧は設定順に提供されるため、一覧の最初のサーバーが最初に試行されます。
SSSD は 1 時間後に krb5_server パラメーターで指定されているプライマリーサービスに再接続を試みます。
KDC サーバーまたは kpasswd サーバー用にサービスディスカバリを使用している場合は、SSSD は、UDP を接続プロトコルとして指定する DNS エントリを最初に検索して、それから TCP に切り替えます。
krb5_realm KDC が実行する Kerberos レルムを識別します。
krb5_lifetime 指定したライフタイムを秒 (s)、分 (m)、時間 (h)、または日 (d) の表示で持つ Kerberos チケットを要求します。
krb5_renewable_lifetime 合計ライフタイムを指定した秒 (s)、分 (m)、時間 (h)、または日 (d) の表示で持つ更新可能な Kerberos チケットを要求します。
krb5_renew_interval チケットが更新されるべきかどうかをチェックする SSSD の時間を秒で指定します。チケットはそのライフタイムの半分が経過すると自動的に更新されます。このオプションが欠如していたり、またはゼロにセットしてある場合は、自動チケット更新システムは無効になっています。
krb5_store_password_if_offline Kerberos の認証プロバイダーがオフラインである場合に、ユーザーパスワードを保管しそのプロバイダーがオンラインに戻った時にチケットを要求するためにそのキャッシュを使用するかどうかを指定します。デフォルトは false になっており、パスワードは保管しません。
krb5_kpasswd パスワード変更サービスが KDC 上で稼働していない場合、代替の Kerberos kadmin サービスを一覧表示します。
krb5_ccname_template ユーザーの認証情報キャッシュを保管するために使用するディレクトリを提供します。これはテンプレート化が可能であり、以下のトークンがサポートされています:
  • %u、ユーザーのログイン名
  • %U、ユーザーのログイン UID
  • %p、ユーザーのプリンシパル名
  • %r、レルム名
  • %h、ユーザーのホームディレクトリ
  • %dkrb5ccache_dir パラメータの値
  • %P、SSSD クライアントのプロセス ID
  • %%、文字通りのパーセントマーク (%)
  • XXXXXX、SSSD に対して特有のファイル名を安全に作成するように指示するテンプレート末尾の文字列
例:
krb5_ccname_template = FILE:%d/krb5cc_%U_XXXXXX
krb5_ccachedir 認証情報のキャッシュを保管するためのディレクトリを指定します。%d%P を除いては、krb5_ccname_template と同じトークンを使用してテンプレート化できます。%u%U%p、または %h が使用される場合は、SSSD は各ユーザー用にプライベートディレクトリを作成します。それ以外の場合は、パブリックディレクトリを作成します。
krb5_auth_timeout オンライン認証、またはパスワード変更要求が中断されるまでの時間を秒で提示します。可能な場合は、認証要求はオフラインで継続します。デフォルトは15秒です。