7.4. ID プロバイダーおよび認証プロバイダーの追加設定
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
オプションを使用して、カスタムの正規表現を定義します。- すべてのドメインに対してグローバルに正規表現を定義するには、
sssd.conf
の[sssd]
セクションにre_expression
を追加します。 - 特定のドメインに対して個別に正規表現を定義するには、
sssd.conf
の対応するドメインセクションにre_expression
を追加します。
たとえば、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 は、デフォルトで以下の拡張に基づいて @domain
形式で完全なユーザー名を出力します。
%1$s@%2$s
注記
use_fully_qualified_names
が設定されていない場合や、信頼されるドメインに対して明示的に false
に設定されている場合には、ドメインコンポーネントなしでユーザー名のみが出力されます。
SSSD が完全なユーザー名を出力する形式を調整するには、次のコマンドを実行します。
/etc/sssd/sssd.conf
ファイルを開きます。full_name_format
オプションを使用して、完全なユーザー名形式の拡張を定義します。- すべてのドメインに対してグローバルに拡張を定義するには、
sssd.conf
の[sssd]
セクションにfull_name_format
を追加します。 - 特定のドメインに拡張を個別に定義するには、
sssd.conf
の対応するドメインセクションにfull_name_format
を追加します。
詳細は、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 サービスディスカバリーの設定
アイデンティティーまたは認証サーバーが
/etc/sssd/sssd.conf
ファイルで明示的に定義されていない場合、SSSD は DNS サービス検出を使用してサーバーを動的に検出できます。 [1]をクリックします。
たとえば、
sssd.conf
に id_provider = ldap
設定が含まれているものの、ldap_uri
オプションでホスト名または IP アドレスが指定されていない場合、SSSD は DNS サービス検出を使用してサーバーを動的に検出します。
注記
SSSD が検出するのは、プライマリーサーバーのみで、バックアップサーバーを動的には検出できません。
DNS サービス検出のための SSSD の設定
/etc/sssd/sssd.conf
ファイルを開きます。- プライマリーサーバーの値を
_srv_
に設定します。LDAP プロバイダーの場合、プライマリーサーバーはldap_uri
オプションを使用して設定されます。[domain/domain_name] id_provider = ldap
ldap_uri = _srv_
- パスワード変更プロバイダーでサービス検出を有効にするには、サービスタイプを設定します。
[domain/domain_name] id_provider = ldap ldap_uri = _srv_
chpass_provider = ldap
ldap_chpass_dns_service_name = ldap
- オプション:サービス検出は、システムホスト名のドメイン部分をドメイン名として使用します。別の DNS ドメインを使用するには、
dns_discovery_domain
オプションでドメイン名を指定します。 - オプション:デフォルトでは、サービス検出は LDAP サービスタイプをスキャンします。別のサービスタイプを使用するには、
ldap_dns_service_name
オプションでタイプを指定します。 - オプション:デフォルトでは、SSSD は IPv4 アドレスの検索を試行します。試行に失敗すると、SSSD は IPv6 アドレスの検索を試行します。この動作をカスタマイズするには、
lookup_family_order
オプションを使用します。詳細は sssd.conf(5) の man ページを参照してください。 - サービス検出を使用するすべてのサービスについて、DNS レコードを DNS サーバーに追加します。
_service._protocol._domain TTL priority weight port host_name
7.4.4. simple
アクセスプロバイダーを使用したアクセス制御の定義
simple
アクセスプロバイダーは、ユーザー名またはグループの一覧に基づいてアクセスを許可または拒否します。これにより、特定のマシンへのアクセスを制限できます。
たとえば、企業のラップトップでは、
Simple アクセスプロバイダーを使用して
、特定のユーザーまたは特定のグループのみへのアクセスを制限できます。他のユーザーまたはグループは、設定済みの認証プロバイダーに対して正常に認証されている場合でもログインできません。
Simple
Access Provider ルールの設定
/etc/sssd/sssd.conf
ファイルを開きます。access_provider
オプションをsimple
に設定します。[domain/domain_name]
access_provider = simple
- ユーザーのアクセス制御ルールを定義します。以下のいずれかを選択します。
- ユーザーへのアクセスを許可するには、
simple_allow_users
オプションを使用します。 - ユーザーへのアクセスを拒否するには、
simple_deny_users
オプションを使用します。重要特定ユーザーにアクセスを許可する方が拒否するよりも安全であると考えられます。特定のユーザーへのアクセスを拒否する場合には、他のユーザーすべてにアクセスを自動的に許可します。
- グループのアクセス制御ルールを定義します。以下のいずれかを選択します。
- グループへのアクセスを許可するには、
simple_allow_groups
オプションを使用します。 - グループへのアクセスを拒否するには、
simple_deny_groups
オプションを使用します。重要特定グループにアクセスを許可する方が拒否するよりも安全であると考えられます。特定のグループへのアクセスを拒否する場合には、他のグループすべてに、アクセスを自動的に許可します。
次の例では、
group1
の user1
、user2
、および メンバーへのアクセスを許可し、他のすべてのユーザーへのアクセスを拒否します。
[domain/domain_name] access_provider = simplesimple_allow_users = user1, user2
simple_allow_groups = group1
詳細は sssd-simple(5) の man ページを参照してください。
7.4.5. LDAP アクセスフィルターを使用したアクセス制御の定義
/etc/sssd/sssd.conf
で access_provider
オプションが設定されている場合、SSSD は指定されたアクセスプロバイダーを使用して、システムにアクセスできるユーザーを評価します。使用しているアクセスプロバイダーが LDAP プロバイダータイプの拡張の場合には、システムへのアクセス許可に必要な LDAP アクセス制御フィルターを指定することもできます。
たとえば、Active Directory (AD) サーバーをアクセスプロバイダーとして使用する場合は、Linux システムへのアクセスを特定の AD ユーザーに制限できます。指定のフィルターに一致しない他のユーザーはすべてアクセスが拒否されます。
注記
アクセスフィルターは LDAP ユーザーエントリーにのみ適用されます。そのため、ネスト化されたグループでこのタイプのアクセス制御を使用すると機能しない可能性があります。ネストされたグループにアクセス制御を適用するには、「
simple
アクセスプロバイダーを使用したアクセス制御の定義」 を参照してください。
重要
オフラインキャッシュを使用する場合、SSSD は、ユーザーが最後にオンラインログインの試行に成功したかどうかを確認します。直近のオンラインログイン中に正常にログインしたユーザーは、アクセスフィルターに一致しない場合でも、オフラインでログインできるようになります。
LDAP アクセスフィルターを適用するための SSSD 設定
/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 ページに一覧表示されます。