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 = ldap
ldap_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, user2
simple_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 ページに記載されています。
このページには機械翻訳が使用されている場合があります (詳細はこちら)。