Show Table of Contents
7.4.4.
7.4. アイデンティティープロバイダーと認証プロバイダー向け追加的設定
7.4.1. ユーザー名形式の調整
7.4.1.1. 完全なユーザー名の解析向け正規表現の定義
SSSD は、完全なユーザー名のストリングをユーザー名およびドメインのコンポーネントに解析します。SSSD はデフォルトにより、以下の Python シンタックスの正規表現を基本とする
user_name@domain_name 形式で完全なユーザー名を解釈します。
(?P<name>[^@]+)@?(?P<domain>[^@]*$)
注記
Identity Management および Active Directory プロバイダーの場合、デフォルトによるユーザー名の形式は
user_name@domain_name または NetBIOS_name\user_name です。
SSSD が完全なユーザー名を解釈する方法を調整するには、以下を実行します。
/etc/sssd/sssd.confファイルを開きます。re_expressionオプションを使用して、カスタム正規表現を定義します。- すべてのドメイン向けに正規表現をグローバルに定義するには、
re_expressionをsssd.confの[sssd]セクションに追加します。 - 特定のドメイン向けに正規表現を個々に定義するには、
re_expressionをsssd.confの対応するドメインセクションに追加します。
たとえば、LDAP ドメイン向けに正規表現を設定するには、以下を実行します。
[domain/LDAP]
[... file truncated ...]
re_expression = (?P<domain>[^\\]*?)\\?(?P<name>[^\\]+$)
詳細については、sssd.conf(5) の man ページにある
SPECIAL SECTIONS および DOMAIN SECTIONS 部分の re_expression を参照してください。
7.4.1.2. SSSD による完全なユーザー名のプリント方法の定義
/etc/sssd/sssd.conf ファイル内で use_fully_qualified_names オプションが有効となっている場合、SSSD はデフォルトにより、以下の展開を基本とする name@domain 形式で完全なユーザー名をプリントします。
%1$s@%2$s
注記
use_fully_qualified_names が設定されていない場合、または信頼できるドメイン向けに false に明示的に設定されている場合、ドメインコンポーネントなしにユーザー名のみがプリントされます。
SSSD が完全なユーザー名をプリントする形式を調整するには、以下を実行します。
/etc/sssd/sssd.confファイルを開きます。full_name_formatオプションを使用して、完全なユーザー名形式の展開を定義します。- すべてのドメイン向けの展開をグローバルに定義するには、
full_name_formatをsssd.confの[sssd]セクションに追加します。 - 特定のドメイン向けに展開を個々に定義するには、
full_name_formatをsssd.confの対応するドメインセクションに追加します。
詳細については、sssd.conf(5) の man ページにある
SPECIAL SECTIONS および DOMAIN SECTIONS 部分の full_name_format を参照してください。
名前の設定によっては、SSSD が名前のドメインコンポーネントを削除し、認証エラーが発生する場合もあります。このため、
full_name_format を標準以外の値に設定すると、より標準的な値への変更を促す警告が表示されます。
7.4.2. オフライン認証の有効化
SSSD はデフォルトで、ユーザーの認証情報をキャッシュしません。認証要求の処理の際、SSSD は常にアイデンティティープロバイダーと連絡を取ります。プロバイダーと連絡が取れない場合、ユーザー認証に失敗することになります。
重要
SSSD はプレーンテキストでパスワードをキャッシュすることはありません。ハッシュ化されたパスワードのみを保存します。
アイデンティティープロバイダーを利用できない場合であっても、ユーザーが確実に認証できるようにするために、認認証情報のキャッシングを有効にします。
/etc/sssd/sssd.confファイルを開きます。- ドメインセクションにおいて、
cache_credentials = true設定を追加します。[domain/domain_name]
cache_credentials = true - 推奨 (オプション) アイデンティティープロバイダーを利用できない場合、SSSD がオフライン認証を許容する制限時間を設定します。
- SSSD と機能する PAM サービスを設定します。「サービスの設定: PAM」 を参照してください。
offline_credentials_expirationオプションを使用して制限時間を指定します。たとえば、ユーザーが最後にログインした時から 3 日間はオフラインでの認証が可能と指定する場合、以下のようになります。[pam]
offline_credentials_expiration = 3
offline_credentials_expiration の詳細については、sssd.conf(5) の man ページを参照してください。
7.4.3. DNS Service Discovery の設定
アイデンティティーまたは認証サーバーが
/etc/sssd/sssd.conf ファイルで明示的に定義されていない場合、SSSD は DNS service discovery を使用してサーバーを動的に発見することができます。[1]
たとえば、
sssd.conf に id_provider = ldap 設定が格納されているが、ldap_uri オプションがホスト名または IP アドレスを何も指定しない場合、SSSD は DNS service discovery を使用してサーバーを動的に発見します。
注記
SSSD はバックアップサーバーを動的に発見することはできません。プライマリーサーバーのみの発見となります。
DNS Service Discovery 用に SSSD を設定
/etc/sssd/sssd.confファイルを開きます。- プライマリーサーバー値を
_srv_に設定します。LDAP プロバイダーの場合、ldap_uriオプションを使用してプライマリーサーバーを設定します。[domain/domain_name] id_provider = ldap
ldap_uri = _srv_ - サービスタイプを設定することで、パスワード変更プロバイダーで service discovery を有効にします。
[domain/domain_name] id_provider = ldap ldap_uri = _srv_
chpass_provider = ldapldap_chpass_dns_service_name = ldap - オプション デフォルトでは、service discovery はシステムホスト名のドメイン部分をドメイン名に使用します。別の DNS ドメインを使用するには、
dns_discovery_domainオプションでドメイン名を指定します。 - オプション デフォルトでは、service discovery は LDAP サービスタイプをスキャンします。別のサービスタイプを使用するには、
ldap_dns_service_nameオプションでタイプを指定します。 - オプション デフォルトでは、SSSD は IPv4 アドレスのルックアップを試みます。この試みに失敗した場合、SSSD は IPv6 アドレスのルックアップを試みます。この動作をカスタマイズするには、
lookup_family_orderオプションを使用します。詳細は、sssd.conf(5) の man ページを参照してください。 - service discovery を使用したいすべてのサービスで、DNS レコードを DNS サーバーに追加します。
_service._protocol._domain TTL priority weight port host_name
7.4.4. simple アクセスプロバイダーを使用したアクセス制御の定義
simple アクセスプロバイダーは、ユーザー名またはグループのリストを基にアクセスを許可または拒否します。つまり、特定のマシンへのアクセスを制限することができます。
たとえば、企業のノートパソコンに
simple アクセスプロバイダーを使用すると、特定のユーザーまたは特定のグループのみに限定したアクセスが可能となります。他のユーザーまたはグループは、設定された認証プロバイダーに対して正しく認証されても、ログインできません。
simple アクセスプロバイダーのルールの設定
/etc/sssd/sssd.confファイルを開きます。access_providerオプションをsimpleに設定します。[domain/domain_name]
access_provider = simple- ユーザーのアクセス制御のルールを定義します。以下のうち 1 つを選択してください。
- ユーザーのアクセスを許可する場合、
simple_allow_usersオプションを使用します。 - ユーザーのアクセスを拒否する場合、
simple_deny_usersオプションを使用します。重要
特定のユーザーにアクセスを許可する方が、拒否するよりも安全だと考えられています。特定のユーザーへのアクセスを拒否すると、自動的にその他全員に対してアクセスを許可することになります。
- グループのアクセス制御のルールを定義します。以下のうち 1 つを選択してください。
- グループのアクセスを許可するには、
simple_allow_groupsオプションを使用します。 - グループのアクセスを拒否するには、
simple_deny_groupsオプションを使用します。重要
特定のグループにアクセスを許可する方が、拒否するよりも安全だと考えられています。特定のグループへのアクセスを拒否すると、自動的にその他全員に対してアクセスを許可することになります。
以下の例では、
user1、user2 および group1 のメンバーはアクセスが許可され、その他すべてのユーザーはアクセスを拒否されています。
[domain/domain_name] access_provider = simplesimple_allow_users = user1, user2simple_allow_groups = group1
詳細は、sssd-simple(5) の man ページを参照してください。
7.4.5. LDAP アクセスフィルターを使用したアクセス制御の定義
access_provider オプションが /etc/sssd/sssd.conf に設定されている場合、SSSD は指定されたアクセスプロバイダーを使用して、どのユーザーがシステムへのアクセスを許可されたのか判断します。使用中のアクセスプロバイダーが、LDAP プロバイダータイプの拡張子の場合、LDAP アクセス制御フィルターも指定できます。ユーザーは、システムへのアクセス許可を得るためには、指定されたフィルターと一致しなければなりません。
たとえば、Active Directory (AD) サーバーをアクセスプロバイダーとして使用する場合、Linux システムへのアクセスを指定した AD ユーザーだけに限定することができます。指定したフィルターと一致しないその他すべてのユーザーは、アクセスを拒否されます。
注記
アクセスフィルターは、LDAP ユーザーエントリーのみに適用されます。したがって、このタイプのアクセス制御をネスト化されたグループに使用しても機能しない場合があります。アクセス制御をネスト化されたグループに適用するには、「
simple アクセスプロバイダーを使用したアクセス制御の定義」 を参照してください。
重要
オフラインキャッシュを使用する場合、SSSD はユーザーの前回のオンラインでのログイン試行が正常だったかどうかを確認します。前回のオンラインでのログインが正常だったユーザーは、アクセスフィルターと一致しなくても、オフラインでもそのままログインできます。
SSSD を設定し、LDAP アクセスフィルターを適用
/etc/sssd/sssd.confファイルを開きます。[domain]セクションで、LDAP アクセス制御フィルターを指定します。- LDAP アクセスプロバイダーには、
ldap_access_filterオプションを使用します。詳細については sssd-ldap(5) の man ページを参照してください。 - AD アクセスプロバイダーには、
ad_access_filterオプションを使用します。詳細については、sssd-ad(5) の man ページを参照してください。
たとえば、adminsユーザーグループに属し、unixHomeDirectory属性セットを持つ AD ユーザーのみにアクセスを許可する場合、以下の設定を実行します。[domain/AD_domain_name] access provider = ad [... file truncated ...]
ad_access_filter = (&(memberOf=cn=admins,ou=groups,dc=example,dc=com)(unixHomeDirectory=*))
SSSD は、エントリー内の
authorizedService や host 属性で結果をチェックすることもできます。実際にはユーザーエントリーや設定によって、LDAP フィルター、 authorizedService、host のすべての評価が可能です。ldap_access_order パラメーターは、使用するすべてのアクセス制御方法を評価方法の順番で表示します。
[domain/example.com] access_provider = ldap ldap_access_filter = memberOf=cn=allowedusers,ou=Groups,dc=example,dc=com ldap_access_order = filter, host, authorized_service
認証済みサービスや許可されたホストの評価に使用するユーザーエントリー内の属性は、カスタマイズが可能です。追加のアクセス制御パラメーターは、
sssd-ldap(5) の man ページに記載されています。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.