SSSD-KRB5(5)

NAME
sssd-krb5 - SSSD Kerberos provider

概要

このマニュアルは sssd(8) に対する Kerberos 5 認証バックエンドの設定を説明しています。詳細な構文の参考資料は、sssd.conf(5) マニュアルページの “ファイル形式” セクションを参照してください。

Kerberos 5 認証バックエンドは認証プロバイダーおよびパスワード変更プロバイダーを含みます。正しく機能するためには識別プロダイバーと組み合わせて使用する必要があります (たとえば、id_provider = ldap)。Kerberos 5 認証バックエンドにより必要とされるいくつかの情報は、ユーザーの Kerberos プリンシパル名 (UPN) のような、識別プロバイダーにより提供される必要があります。識別プロバイダーの設定は UPN を指定するためのエントリーがある必要があります。これを設定する方法に関する詳細は適用可能な識別プロバイダーのマニュアルページを参照してください。

このバックエンドは、ユーザーのホームディレクトリーにある .k5login ファイルに基づいたアクセス制御を提供します。詳細は .k5login(5) を参照してください。空の .k5login ファイルがあると、このユーザーに対するすべてのアクセスが拒否されます。この機能を有効にするには、SSSD 設定において 'access_provider = krb5' を使用します。

UPN が識別バックエンド sssd において利用できない場合は、形式 username@krb5_realm を使用して UPN を構築します。

設定オプション

認証モジュール krb5 が SSSD ドメインにおいて使用されていると、以下のオプションを使用する必要があります。 SSSD ドメインの設定における詳細は sssd.conf(5) マニュアルページの “ドメインセクション” を参照してください。

krb5_server, krb5_backup_server (文字列)
    SSSD が接続したい AD サーバー（優先順）の IP アドレスまたはホスト名のカンマ区切り一覧を指定します。フェールオーバーおよびサーバー冗長化に関する詳細は “FAILOVER” セクションを参照してください。ポート番号（コロンの後ろ）をオプションとして、アドレスやホスト名の後ろに付けることもできます。これが無ければ、サービス探索が有効になっています。詳細は “サービス探索” のセクションを参照してください。

    KDC または kpasswd サーバーに対してサービス検索を使用するとき、SSSD はまずプロトコルとして _udp を指定する DNS エントリーを検索して、何も見つからなければ _tcp にフォールバックします。

    このオプションは以前の SSSD において “krb5_kdcip” という名前でした。古い名前がしばらく認められる間、ユーザーは代わりに “krb5_server” を使用するよう設定ファイルを移行することが推奨されます。

krb5_realm (文字列)
    Kerberos レルムの名前です。このオプションは指定する必要があります。

krb5_kpasswd, krb5_backup_kpasswd (文字列)
    パスワード変更サービスが KDC において実行されていなければ、代替サーバーがここで指定できます。オプションのポート番号が（コロンに続けて）アドレスまたはホスト名に追加できます。

    フェイルオーバーとサーバー冗長性に関する詳細は、“フェイルオーバー”のセクションを参照してください。注：KDC に対する認証がまだ可能であるならば、たとえすべての kpasswd サーバーがなかったとしても、バックエンドをオフラインに切り替えないことに注意してください。

    初期値: KDC を使用します

krb5_ccachedir (文字列)
    Directory to store credential caches. All the substitution sequences of krb5_ccname_template can be used here, too, except %d and %P. The directory is created as private and owned by the user, with permissions set to 0700.

    初期値: /tmp

krb5_ccname_template (文字列)
    Location of the user's credential cache. Three credential cache types are currently supported: “FILE”, “DIR” and “KEYRING:persistent”. The cache can be specified either as TYPE:RESIDUAL, or as an absolute path, which implies the “FILE” type. In the template, the following sequences are substituted:

    %u
        ログイン名

    %U
        ログイン UID

    %p
        プリンシパル名

    %r
        レルム名

    %h
        ホームディレクトリー

    %d
        value of krb5_ccachedir

    %P
        SSSD クライアントのプロセス ID

    %%
        文字 '%'

    If the template ends with 'XXXXXX' mkstemp(3) is used to create a unique filename in a safe way.

    When using KEYRING types, the only supported mechanism is “KEYRING:persistent:%U”, which uses the Linux kernel keyring to store credentials on a per-UID basis. This is also the recommended choice, as it is the most secure and predictable method.

    The default value for the credential cache name is sourced from the profile stored in the system wide krb5.conf configuration file in the [libdefaults] section. The option name is default_ccache_name. See krb5.conf(5)'s PARAMETER EXPANSION paragraph for additional information on the expansion format defined by krb5.conf.

    NOTE: Please be aware that libkrb5 ccache expansion template from krb5.conf(5) uses different expansion sequences than SSSD.

    Default: (from libkrb5)

krb5_auth_timeout (整数)
    オンライン認証またはパスワード変更要求が中止された後の秒単位のタイムアウトです。可能ならば、認証要求がオフラインで継続されます。

    初期値: 6

krb5_validate (論理値)
    Verify with the help of krb5_keytab that the TGT obtained has not been spoofed. The keytab is checked for entries sequentially, and the first entry with a matching realm is used for validation. If no entry matches the realm, the last entry in the keytab is used. This process can be used to validate environments using cross-realm trust by placing the appropriate keytab entry as the last entry or the only entry in the keytab file.

    初期値: false

krb5_keytab (文字列)
    KDC から取得したクレディンシャルを検証するときに使用されるキーテーブルの場所です。

    初期値: /etc/krb5.keytab

krb5_store_password_if_offline (論理値)
    Store the password of the user if the provider is offline and use it to request a TGT when the provider comes online again.

    NOTE: this feature is only available on Linux. Passwords stored in this way are kept in plaintext in the kernel keyring and are potentially accessible by the root user (with difficulty).

    初期値: false

krb5_renewable_lifetime (文字列)
    Request a renewable ticket with a total lifetime, given as an integer immediately followed by a time unit:

    秒は s

    分は m

    時間は h

    日は d

    単位が指定されていないと、s と仮定されます。

    注: 単位を混在できないことに注意してください。更新可能な生存期間を1時間30分に指定したい場合、'1h30m' の代わりに '90m' を使用します。

    初期値: 設定されません、つまり TGT は更新可能ではありません

krb5_lifetime (文字列)
    Request ticket with a lifetime, given as an integer immediately followed by a time unit:

    秒は s

    分は m

    時間は h

    日は d

    単位が指定されていないと、s と仮定されます。

    注: 単位を混在できないことに注意してください。更新可能な生存期間を1時間30分に指定したい場合、'1h30m' の代わりに '90m' を使用してください。

    初期値: 設定されません、つまり KDC において設定されているチケット有効期間の初期値です。

krb5_renew_interval (文字列)
    The time in seconds between two checks if the TGT should be renewed. TGTs are renewed if about half of their lifetime is exceeded, given as an integer immediately followed by a time unit:

    秒は s

    分は m

    時間は h

    日は d

    単位が指定されていないと、s と仮定されます。

    注: 単位を混在できないことに注意してください。更新可能な生存期間を1時間30分に指定したい場合、'1h30m' の代わりに '90m' を使用します。

    このオプションが設定されていない場合、または 0 に設定されている場合、自動更新は無効になります。

    初期値: 設定されません

krb5_use_fast (文字列)
    Kerberos の事前認証のために flexible authentication secure tunneling (FAST) を有効化します。以下のオプションがサポートされます:

    never は FAST を使用します。このオプションを何も設定しないことと同等です。

    try は FAST を使用します。サーバーが FAST をサポートしていなければ、FAST を使用せずに認証を続行します。

    demand は FAST を使用します。サーバーが FAST を要求しなければ、認証が失敗します。

    初期値: 設定されません、つまり FAST が使用されません。

    注: キーテーブルは FAST を使用する必要があります。

    注: SSSD は MIT Kerberos バージョン 1.8 およびそれ以降のみで FAST をサポートします。SSSD が古いバージョンの MIT Kerberos を使用している場合、このオプションを使用すると設定エラーになります。

krb5_fast_principal (文字列)
    FAST に対して使用するサーバープリンシパルを指定します。

krb5_canonicalize (論理値)
    ホストとユーザーのプリンシパルが正規化されるかどうかを指定します。この機能は MIT Kerberos 1.7 およびそれ以降で利用可能です。

    初期値: false

krb5_use_kdcinfo (論理値)
    Specifies if the SSSD should instruct the Kerberos libraries what realm and which KDCs to use. This option is on by default, if you disable it, you need to configure the Kerberos library using the krb5.conf(5) configuration file.

    位置情報プラグインの詳細は sssd_krb5_locator_plugin(8) マニュアルページを参照ください。

    初期値: true

krb5_use_enterprise_principal (論理値)
    ユーザープリンシパルをエンタープライズプリンシパルとして取り扱うかどうかを指定します。エンタープライズプリンシパルの詳細は RFC 6806 のセクション 5 を参照してください。

    Default: false (AD provider: true)

    The IPA provider will set to option to 'true' if it detects that the server is capable of handling enterprise principals and the option is not set explicitly in the config file.

krb5_map_user (string)
    The list of mappings is given as a comma-separated list of pairs “username:primary” where “username” is a UNIX user name and “primary” is a user part of a kerberos principal. This mapping is used when user is authenticating using “auth_provider = krb5”.

    例:

        krb5_realm = REALM
        krb5_map_user = joe:juser,dick:richard

    “joe” and “dick” are UNIX user names and “juser” and “richard” are primaries of kerberos principals. For user “joe” resp. “dick” SSSD will try to kinit as “juser@REALM” resp. “richard@REALM”.

    初期値: 設定されません

フェイルオーバー

The failover feature allows back ends to automatically switch to a different server if the current server fails.

  フェイルオーバーの構文

サーバーの一覧がカンマ区切り一覧として与えられます。カンマの前後で空白はいくつでも許されます。サーバーは性能の順番で一覧化されます。一覧はサーバーをいくつでも含められます。

For each failover-enabled config option, two variants exist: primary and backup. The idea is that servers in the primary list are preferred and backup servers are only searched if no primary servers can be reached. If a backup server is selected, a timeout of 31 seconds is set. After this timeout SSSD will periodically try to reconnect to one of the primary servers. If it succeeds, it will replace the current active (backup) server.

  フェイルオーバーのメカニズム

The failover mechanism distinguishes between a machine and a service. The back end first tries to resolve the hostname of a given machine; if this resolution attempt fails, the machine is considered offline. No further attempts are made to connect to this machine for any other service. If the resolution attempt succeeds, the back end tries to connect to a service on this machine. If the service connection attempt fails, then only this particular service is considered offline and the back end automatically switches over to the next service. The machine is still considered online and might still be tried for another service.

Further connection attempts are made to machines or services marked as offline after a specified period of time; this is currently hard coded to 30 seconds.

If there are no more machines to try, the back end as a whole switches to offline mode, and then attempts to reconnect every 30 seconds.

  Failover time outs and tuning

Resolving a server to connect to can be as simple as running a single DNS query or can involve several steps, such as finding the correct site or trying out multiple host names in case some of the configured servers are not reachable. The more complex scenarios can take some time and SSSD needs to balance between providing enough time to finish the resolution process but on the other hand, not trying for too long before falling back to offline mode. If the SSSD debug logs show that the server resolution is timing out before a live server is contacted, you can consider changing the time outs.

This section lists the available tunables. Please refer to their description in the sssd.conf(5), manual page.

dns_resolver_op_timeout
    How long would SSSD talk to a single DNS server.

dns_resolver_timeout
    How long would SSSD try to resolve a failover service. This service resolution internally might include several steps, such as resolving DNS SRV queries or locating the site.

For LDAP-based providers, the resolve operation is performed as part of an LDAP connection operation. Therefore, also the “ldap_opt_timeout>” timeout should be set to a larger value than “dns_resolver_timeout” which in turn should be set to a larger value than “dns_resolver_op_timeout”.

サービス探索

The service discovery feature allows back ends to automatically find the appropriate servers to connect to using a special DNS query. This feature is not supported for backup servers.

  設定

何もサーバーが指定されていなければ、バックエンドがサーバーを見つけようとするために、サービス探索を自動的に使用します。オプションとして、サーバーの一覧に特別なキーワード “_srv_” を挿入することにより、ユーザーが固定サーバーアドレスおよびサービス探索のどちらも使用することを選択できます。これは設定の順番が維持されます。たとえば、ユーザーができる限りサービス探索を使用し、DNS を使用してサーバーを探索できないときに特定のサーバーにフォールバックしたい場合、この機能は有用です。

  ドメイン名

詳細は sssd.conf(5) マニュアルページにある “dns_discovery_domain” パラメーターを参照してください。

  プロトコル

問い合わせは通常プロトコルとして _tcp を指定します。その他はそれぞれのオプションの説明にドキュメント化されています。

  関連項目

サービス検索メカニズムに関する詳細は RFC 2782 を参照してください。

例

以下の例は、SSSD が正しく設定され、FOO が [sssd] セクションにあるドメインの 1 つであると仮定しています。この例は Kerberos 認証の設定のみを示し、識別プロバイダーを何も含みません。

    [domain/FOO]
    auth_provider = krb5
    krb5_server = 192.168.1.1
    krb5_realm = EXAMPLE.COM

関連項目

sssd(8), sssd.conf(5), sssd-ldap(5), sssd-krb5(5), sssd-simple(5), sssd-ipa(5), sssd-ad(5), sssd-sudo(5), sssd-session-recording(5), sss_cache(8), sss_debuglevel(8), sss_groupadd(8), sss_groupdel(8), sss_groupshow(8), sss_groupmod(8), sss_useradd(8), sss_userdel(8), sss_usermod(8), sss_obfuscate(8), sss_seed(8), sssd_krb5_locator_plugin(8), sss_ssh_authorizedkeys(8), sss_ssh_knownhostsproxy(8), sssd-ifp(5), pam_sss(8). sss_rpcidmapd(5)

AUTHORS

The SSSD upstream - https://pagure.io/SSSD/sssd/