Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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

LDAP およびプロキシーのアイデンティティープロバイダーは、共に個別の Kerberos ドメインを使用して認証を提供できます。Kerberos 認証プロバイダーを設定するには、キー配布センター (KDC)と Kerberos ドメインが必要です。すべてのプリンシパル名は、指定のアイデンティティープロバイダーで利用可能でなければなりません。そうでない場合は、SSSD は username@REALM 形式を使用してプリンシパルを構築します。
注記
Kerberos は認証のみを提供でき、アイデンティティーデータベースを提供することはできません。
SSSD は、Kerberos KDC も Kerberos kadmin サーバーであることを前提としています。ただし、実稼働環境では一般的に KDC の複数の読み取り専用レプリカと、単一の kadmin サーバーのみがあります。krb5_kpasswd オプションを使用して、パスワードの変更サービスが実行されている場所、またはデフォルト以外のポートで実行しているかどうかを指定します。krb5_kpasswd オプションが定義されていない場合は、SSSD は Kerberos KDC を使用してパスワードを変更します。
基本的な Kerberos 設定オプションは、表13.10「Kerberos 認証設定パラメーター」 に記載されています。man ページの sssd-krb5(5) には、Kerberos 設定オプションの詳細情報が記載されています。

例13.13 基本的な Kerberos 認証

# A domain with identities provided by LDAP and authentication by Kerberos
[domain/KRBDOMAIN]
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

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

Kerberos 認証プロバイダー(他のタスクとともに)は、ユーザーおよびサービスのチケット保証チケット(TGT)を要求します。これらのチケットは、チケットプリンシパル(ユーザー)がアクセスするなど、特定のサービスに対して動的に他のチケットを生成するために使用されます。
ユーザープリンシパルに最初に付与される TGT は、チケットの有効期間(デフォルトでは設定された KDC で設定されたもの)に対してのみ有効です。その後、チケットを更新または拡張することができません。ただし、チケットを更新しないと、操作中にサービスにアクセスしようとし、チケットの有効期限が切れると、一部のサービスで問題が発生する可能性があります。
Kerberos チケットはデフォルトでは更新できませんが、krb5_renewable _lifetime パラメーターおよび krb5_renew_ interval パラメーターを使用してチケットの 更新を有効にできます。
チケットの有効期間は、krb5_lifetime パラメーターで SSSD で設定されます。これは、単一のチケットが有効である期間を指定し、KDC の任意の値を上書きします。
チケット更新自体は krb5_renewable_lifetime パラメーターで有効になっ ています。このパラメーターは、チケットの最大有効期間を設定し、すべての更新をカウントします。
たとえば、チケットの有効期間は 1 時間に設定され、更新可能な期間は 24 時間に設定されます。
krb5_lifetime = 1h
krb5_renewable_lifetime = 1d
つまり、チケットは 1 時間ごとに有効期限が切れ、1 日に継続的に更新できます。
有効期間および更新可能な有効期間の値は、秒(s)、分(m)、時間(h)、または日(d)のいずれかになります。
もう 1 つのオプション - チケットの更新にも設定する必要があります。krb5_renew_interval パラメーターです。これは、チケットを更新する必要があるかどうかを確認するために SSSD がチェックする頻度を設定します。チケットの有効期間の半分(設定が重要)、チケットは自動的に更新されます。(この値は常に秒単位です。)
krb5_lifetime = 1h
krb5_renewable_lifetime = 1d
krb5_renew_interval = 60s
注記
krb5_renewable_lifetime 値が設定されていないか、krb5_renew_interval パラメーターが設定されていないか、ゼロ(0)に設定されている場合、チケットの更新が無効になります。チケットの更新 を有効にするには、krb5_renewable_lifetime および krb5_renew_interval の両方が必要になります。

表13.10 Kerberos 認証設定パラメーター

パラメーター 説明
chpass_provider パスワード変更操作に使用するサービスを指定します。これは、認証プロバイダーと同じであることを前提としています。Kerberos を使用するには、これを krb5 に設定します。
krb5_server SSSD が接続する IP アドレスまたはホスト名でプライマリー Kerberos サーバーを指定します。
krb5_backup_server プライマリーサーバーが利用できない場合に SSSD が接続する Kerberos サーバーの IP アドレスまたはホスト名のコンマ区切りリストを指定します。一覧は優先順に指定されるため、一覧の最初のサーバーが最初に試行されます。
1 時間後に、SSSD は krb5_server パラメーターで指定されたプライマリーサービスへの再接続を試みます。
KDC または kpasswd サーバーのサービス検出を使用する場合、SSSD はまず UDP を接続プロトコルとして指定する DNS エントリーを検索し、その後に TCP にフォールバックします。
krb5_realm KDC が提供する Kerberos レルムを特定します。
krb5_lifetime 指定された有効期間(s)、分(m)、時間(h)、または日(d)で Kerberos チケットを要求します。
krb5_renewable_lifetime 更新可能な Kerberos チケットを、秒(s)、分(m)、時間(h)、または日(d)で指定した合計有効期間でリクエストします。
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: テンプレートの最後に、一意のファイル名を安全に作成するように指示する文字列
以下に例を示します。
krb5_ccname_template = FILE:%d/krb5cc_%U_XXXXXX
krb5_ccachedir 認証情報キャッシュを保存するディレクトリーを指定します。これは、%d および %P を除き、krb5_ccname_template と同じトークンを使用して、テンプレート 化できます。%u%U%p、または %h を使用すると、SSSD は各ユーザーにプライベートディレクトリーを作成します。それ以外の場合は、パブリックディレクトリーを作成します。
krb5_auth_timeout オンライン認証またはパスワードの変更要求が中断されるまでの時間を秒単位で指定します。可能な場合は、認証要求はオフラインで続行されます。デフォルトは 15 秒です。