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 が完全なユーザー名を解釈する方法を調整するには、以下を実行します。
  1. /etc/sssd/sssd.conf ファイルを開きます。
  2. re_expression オプションを使用して、カスタムの正規表現を定義します。
    1. すべてのドメインに対してグローバルに正規表現を定義するには、sssd.conf[sssd] セクションに re_expression を追加します。
    2. 特定のドメインに対して個別に正規表現を定義するには、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 が完全なユーザー名を出力する形式を調整するには、次のコマンドを実行します。
  1. /etc/sssd/sssd.conf ファイルを開きます。
  2. full_name_format オプションを使用して、完全なユーザー名形式の拡張を定義します。
    1. すべてのドメインに対してグローバルに拡張を定義するには、sssd.conf[sssd] セクションに full_name_format を追加します。
    2. 特定のドメインに拡張を個別に定義するには、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 は、パスワードをプレーンテキストでキャッシュしません。パスワードのハッシュのみを保存します。
アイデンティティープロバイダーが利用できない場合にユーザーが認証できるようにするには、認証情報キャッシュを有効にします。
  1. /etc/sssd/sssd.conf ファイルを開きます。
  2. ドメインセクションで、cache_credentials = true 設定を追加します。
    [domain/domain_name]
    cache_credentials = true
  3. 任意ですが、推奨されます。アイデンティティープロバイダーが利用できない場合に SSSD がオフライン認証の許可期間に制限を設定します。
    1. SSSD と連携するように PAM サービスを設定します。「サービスの設定: PAM」を参照してください。
    2. 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.confid_provider = ldap 設定が含まれているものの、ldap_uri オプションでホスト名または IP アドレスが指定されていない場合、SSSD は DNS サービス検出を使用してサーバーを動的に検出します。
注記
SSSD が検出するのは、プライマリーサーバーのみで、バックアップサーバーを動的には検出できません。

DNS サービス検出のための SSSD の設定

  1. /etc/sssd/sssd.conf ファイルを開きます。
  2. プライマリーサーバーの値を _srv_ に設定します。LDAP プロバイダーの場合、プライマリーサーバーは ldap_uri オプションを使用して設定されます。
    [domain/domain_name]
    id_provider = ldap
    ldap_uri = _srv_
  3. パスワード変更プロバイダーでサービス検出を有効にするには、サービスタイプを設定します。
    [domain/domain_name]
    id_provider = ldap
    ldap_uri = _srv_
    
    chpass_provider = ldap
    ldap_chpass_dns_service_name = ldap
  4. オプション:サービス検出は、システムホスト名のドメイン部分をドメイン名として使用します。別の DNS ドメインを使用するには、dns_discovery_domain オプションでドメイン名を指定します。
  5. オプション:デフォルトでは、サービス検出は LDAP サービスタイプをスキャンします。別のサービスタイプを使用するには、ldap_dns_service_name オプションでタイプを指定します。
  6. オプション:デフォルトでは、SSSD は IPv4 アドレスの検索を試行します。試行に失敗すると、SSSD は IPv6 アドレスの検索を試行します。この動作をカスタマイズするには、lookup_family_order オプションを使用します。詳細は sssd.conf(5) の man ページを参照してください。
  7. サービス検出を使用するすべてのサービスについて、DNS レコードを DNS サーバーに追加します。
    _service._protocol._domain TTL priority weight port host_name

7.4.4. simple アクセスプロバイダーを使用したアクセス制御の定義

simple アクセスプロバイダーは、ユーザー名またはグループの一覧に基づいてアクセスを許可または拒否します。これにより、特定のマシンへのアクセスを制限できます。
たとえば、企業のラップトップでは、Simple アクセスプロバイダーを使用して、特定のユーザーまたは特定のグループのみへのアクセスを制限できます。他のユーザーまたはグループは、設定済みの認証プロバイダーに対して正常に認証されている場合でもログインできません。

Simple Access Provider ルールの設定

  1. /etc/sssd/sssd.conf ファイルを開きます。
  2. access_provider オプションを simple に設定します。
    [domain/domain_name]
    access_provider = simple
  3. ユーザーのアクセス制御ルールを定義します。以下のいずれかを選択します。
    1. ユーザーへのアクセスを許可するには、simple_allow_users オプションを使用します。
    2. ユーザーへのアクセスを拒否するには、simple_deny_users オプションを使用します。
      重要
      特定ユーザーにアクセスを許可する方が拒否するよりも安全であると考えられます。特定のユーザーへのアクセスを拒否する場合には、他のユーザーすべてにアクセスを自動的に許可します。
  4. グループのアクセス制御ルールを定義します。以下のいずれかを選択します。
    1. グループへのアクセスを許可するには、simple_allow_groups オプションを使用します。
    2. グループへのアクセスを拒否するには、simple_deny_groups オプションを使用します。
      重要
      特定グループにアクセスを許可する方が拒否するよりも安全であると考えられます。特定のグループへのアクセスを拒否する場合には、他のグループすべてに、アクセスを自動的に許可します。
次の例では、group1user1user2、および メンバーへのアクセスを許可し、他のすべてのユーザーへのアクセスを拒否します。
[domain/domain_name]
access_provider = simple
simple_allow_users = user1, user2
simple_allow_groups = group1
詳細は sssd-simple(5) の man ページを参照してください。

7.4.5. LDAP アクセスフィルターを使用したアクセス制御の定義

/etc/sssd/sssd.confaccess_provider オプションが設定されている場合、SSSD は指定されたアクセスプロバイダーを使用して、システムにアクセスできるユーザーを評価します。使用しているアクセスプロバイダーが LDAP プロバイダータイプの拡張の場合には、システムへのアクセス許可に必要な LDAP アクセス制御フィルターを指定することもできます。
たとえば、Active Directory (AD) サーバーをアクセスプロバイダーとして使用する場合は、Linux システムへのアクセスを特定の AD ユーザーに制限できます。指定のフィルターに一致しない他のユーザーはすべてアクセスが拒否されます。
注記
アクセスフィルターは LDAP ユーザーエントリーにのみ適用されます。そのため、ネスト化されたグループでこのタイプのアクセス制御を使用すると機能しない可能性があります。ネストされたグループにアクセス制御を適用するには、simple アクセスプロバイダーを使用したアクセス制御の定義」 を参照してください。
重要
オフラインキャッシュを使用する場合、SSSD は、ユーザーが最後にオンラインログインの試行に成功したかどうかを確認します。直近のオンラインログイン中に正常にログインしたユーザーは、アクセスフィルターに一致しない場合でも、オフラインでログインできるようになります。

LDAP アクセスフィルターを適用するための SSSD 設定

  1. /etc/sssd/sssd.conf ファイルを開きます。
  2. [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 ページに一覧表示されます。


[1] DNS サービス検出を使用すると、アプリケーションが特定タイプの特定サービスに対して指定のドメインの SRV レコードを確認し、必要なタイプのサーバーを返すことができます。DNS サービス検出は RFC 2782 で定義されています。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.