4.13. Identity Management

IdM は新しいパスワードポリシーオプションをサポートするように

今回の更新で、Identity Management(IdM) が追加の libpwquality ライブラリーオプションに対応するようになりました。

--maxrepeat
同じ文字の最大数を連続して指定します。
--maxsequence
単調な文字シーケンスの最大長を指定します (abcd)。
--dictcheck
パスワードが辞書の単語であるかどうかを確認します。
--usercheck
パスワードにユーザー名が含まれるかどうかを確認します。

ipa pwpolicy-mod を使用して、このオプションを適用します。たとえば、マネージャーグループのユーザーが提案するすべての新しいパスワードに、ユーザー名の確認を適用します。

*$ ipa pwpolicy-mod --usercheck=True managers*

新しいパスワードポリシーオプションのいずれかが設定されている場合、--minlength オプションの値に関係なく、パスワードの最小長は 6 文字になります。新しいパスワードポリシー設定は、新しいパスワードにのみ適用されます。

RHEL 7 サーバーと RHEL 8 サーバーが混在する環境では、新しいパスワードポリシー設定は、RHEL 8.4 以降で実行されているサーバーのみに適用されます。ユーザーが IdM クライアントにログインし、IdM クライアントが RHEL 8.3 以前で実行している IdM サーバーと通信している場合は、システム管理者が設定した新しいパスワードポリシーの要件は適用されません。一貫した動作を確保するには、すべてのサーバーを RHEL 8.4 以降にアップグレードまたは更新します。

(JIRA:RHELPLAN-89566)

各要求に一意の ID タグを追加して、SSSD デバッグのロギングを改善

SSSD は非同期的に要求を処理するため、異なるリクエストからのメッセージが同じログファイルに追加されるため、バックエンドログの個々のリクエストのログエントリーを追跡するのは容易ではありません。デバッグログの可読性を向上させるために、ログメッセージに RID#<integer> の形式で一意のリクエスト ID が追加されました。これにより、個々の要求に関連するログを分離でき、複数の SSSD コンポーネントからのログファイル全体でリクエストを最初から最後まで追跡できます。

たとえば、SSSD ログファイルからの以下の出力例は、2 つの異なる要求について一意の識別子の RID#3 および RID#4 を示しています。

(2021-07-26 18:26:37): [be[testidm.com]] [dp_req_destructor] (0x0400): RID#3 Number of active DP request: 0
(2021-07-26 18:26:37): [be[testidm.com]] [dp_req_reply_std] (0x1000): RID#3 DP Request AccountDomain #3: Returning [Internal Error]: 3,1432158301,GetAccountDomain() not supported
(2021-07-26 18:26:37): [be[testidm.com]] [dp_attach_req] (0x0400): RID#4 DP Request Account #4: REQ_TRACE: New request. sssd.nss CID #1 Flags [0x0001].
(2021-07-26 18:26:37): [be[testidm.com]] [dp_attach_req] (0x0400): RID#4 Number of active DP request: 1

(JIRA:RHELPLAN-92473)

IdM が、automember および server Ansible モジュールに対応可能に

今回の更新で、ansible-freeipa パッケージに ipaautomember モジュールおよび ipaserver モジュールが含まれるようになりました。

  • ipaautomember を使用して、自動メンバールールおよび条件の追加、削除、および変更を行うことができます。その結果、条件を満たす今後の IdM ユーザーおよびホストが、IdM グループに自動的に割り当てられます。
  • ipaserver モジュールを使用すると、IdM トポロジーでサーバーの有無に関わらず、さまざまなパラメーターを保証できます。また、レプリカを非表示にしたり、表示したりすることもできます。

(JIRA:RHELPLAN-96640)

IdM パフォーマンスベースライン

今回の更新により、4 つの CPU と 8 GB の RAM を搭載した RHEL 8.5 の IdM サーバーで、130 の IdM クライアントを同時に登録できることが確認されました。

(JIRA:RHELPLAN-97145)

SSSD の Kerberos キャッシュのパフォーマンスが改善されました。

システムセキュリティーサービスデーモン (SSSD) の Kerberos Cache Manager(KCM) サービスに、新しいオペレーション KCM_GET_CRED_LIST が追加されました。この機能強化により、クレデンシャルキャッシュを繰り返し使用する際の入出力操作の回数が減り、KCM のパフォーマンスが向上しました。

(BZ#1956388)

SSSD がデフォルトでバックトレースをログするようになりました。

この改善により、SSSD は詳細なデバッグログをメモリー内のバッファーに保存し、障害発生時にログファイルに追加できるようになりました。デフォルトでは、以下のエラーレベルが原因でバックトレースが発生します。

  • レベル 0: 致命的な障害
  • レベル 1: 重大な障害
  • レベル 2: 重大な障害

この動作は、sssd.conf 設定ファイルの対応するセクションにある debug_level オプションを設定することで、SSSD プロセスごとに変更できます。

  • デバッグレベルを 0 に設定すると、レベル 0 のイベントのみがバックトレースをトリガーします。
  • デバッグレベルを 1 に設定すると、レベル 0 と 1 でバックトレースが発生します。
  • デバッグレベルを 2 以上に設定すると、レベル 0 から 2 のイベントでバックトレースが発生します。

sssd.conf の対応するセクションで debug_backtrace_enabled オプションを false に設定することで、SSSD プロセスごとにこの機能を無効にできます。

[sssd]
debug_backtrace_enabled = true
debug_level=0
...

[nss]
debug_backtrace_enabled = false
...

[domain/idm.example.com]
debug_backtrace_enabled = true
debug_level=2
...

...

(BZ#1949149)

SSSD KCM がチケットを付与するチケットの自動更新に対応しました

この機能拡張により、システムセキュリティーサービスデーモン (SSSD) の Kerberos Cache Manager(KCM) サービスが、Identity Management(IdM) サーバー上の KCM クレデンシャルキャッシュに保存されているチケットを付与するチケット (TGT) を自動更新するように設定できるようになりました。更新は、チケットの有効期間の半分に達したときにのみ行われます。自動更新を使用するためには、IdM サーバー上のキー配布センター (KDC) が、更新可能な Kerberos チケットをサポートするように設定されている必要があります。

/etc/sssd/sssd.conf ファイルの[kcm]セクションを変更することで、TGT の自動更新を有効にすることができます。例えば、ファイルに以下のオプションを追加することで、60 分ごとに KCM に保存された更新可能な TGT をチェックし、チケットの有効期間の半分に達した場合に自動更新を試みるように SSSD を設定できます。

[kcm]
tgt_renewal = true
krb5_renew_interval = 60m

既存のドメインから更新用の krb5 オプションを継承するように SSSD を設定することもできます。

[kcm]
tgt_renewal = true
tgt_renewal_inherit = domain-name

詳細については、sssd-kcm の man ページの Renewals セクションを参照してください。

(BZ#1627112)

Samba がバージョン 4.14.4 にリベース

The _samba_ packages have been upgraded to upstream version 4.14.4, which provides bug fixes and enhancements over the previous version:

  • Active Directory(AD) の公開プリンターの信頼性が向上し、AD で公開されている情報に新たなプリンター機能が追加されました。また、Samba は ARM64 アーキテクチャーの Windows ドライバーに対応するようになりました。
  • ctdb isnotrecmaster コマンドが削除されました。別の方法としては、ctdb pnn または ctdb recmaster コマンドを使用します。
  • クラスター化されたトリビアルデータベース (CTDB) の ctdb natgw master および slave-only パラメーターの名前が ctdb natgw leader および follower-only に変更されました。

Samba を起動する前にデータベースファイルがバックアップされます。smbdnmbd、または winbind サービスが起動すると、Samba が tdb データベースファイルを自動的に更新します。Red Hat は、tdb データベースファイルのダウングレードをサポートしていないことに留意してください。

Samba を更新したら、testparm ユーティリティーを使用して /etc/samba/smb.conf ファイルを確認します。

主な変更の詳細は、更新前に アップストリームのリリースノート を参照してください。

(BZ#1944657)

dnaInterval 設定属性がサポートされるようになりました。

今回の更新で、Red Hat Directory Server は、cn=<DNA_config_entry>,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config エントリーで Distributed Numeric Assignment (DNA) プラグインの dnaInterval 属性の設定をサポートするようになりました。DNA プラグインは、指定された属性に一意の値を生成します。レプリケーション環境では、サーバーは同じ範囲を共有できます。異なるサーバーで重複を回避するために、dnaInterval 属性を設定して一部の値をスキップできます。たとえば、間隔が 3 で、範囲の最初の番号が 1 の場合、範囲で使用される次の数字は 4、続いて 7、次が 10 になります。

詳細は dnaInterval パラメーターの説明を参照してください。

(BZ#1938239)

Directory Server がバージョン 1.4.3.27 にリベース

389-ds-base パッケージがアップストリームバージョン 1.4.3.27 にアップグレードされ、以前のバージョンに対するバグ修正や機能強化が数多く追加されました。主な変更点の一覧については、更新前にアップストリームのリリースノートを参照してください。

(BZ#1947044)

Directory Server が一時パスワードに対応

今回の機能拡張により、管理者はグローバルおよびローカルパスワードポリシーで一時パスワードルールを設定できるようになりました。これらのルールを使用すると、管理者がユーザーのパスワードをリセットすると、パスワードは一時的で、特定時間と定義された試行回数にのみ有効となるように設定できます。さらに、管理者がパスワードを変更した時点から有効期限が開始されないように設定できます。これにより、Directory Server では、一時パスワードを使用して、決められた時間または試行回数のみユーザーを認証できます。ユーザーが認証に成功すると、Directory Server により、このユーザーはパスワードの変更のみが許可されます。

(BZ#1626633)

IdM KDC は、セキュリティーを強化するために PAC 情報を含む Kerberos チケットを発行するようになりました

今回の更新により、セキュリティーを強化するために、RHEL Identity Management (IdM) は、新しいデプロイメントでデフォルトで特権属性証明書 (PAC) 情報を含む Kerberos チケットを発行するようになりました。PAC には、セキュリティー識別子 (SID)、グループメンバーシップ、ホームディレクトリー情報など、Kerberos プリンシパルに関する豊富な情報が含まれています。その結果、Kerberos チケットは悪意のあるサーバーによる操作の影響を受けにくくなります。

Microsoft Active Directory (AD) がデフォルトで使用する SID は、再利用されることのないグローバルに一意の識別子です。SID は複数の名前空間を表します。各ドメインには、各オブジェクトの SID の接頭辞である SID があります。

RHEL 8.5 以降、IdM サーバーまたはレプリカをインストールすると、インストールスクリプトはデフォルトでユーザーおよびグループの SID を生成します。これにより、IdM が PAC データを操作できるようになります。RHEL 8.5 より前に IdM をインストールし、AD ドメインとの信頼を設定していない場合は、IdM オブジェクトの SID が生成されていない可能性があります。IdM オブジェクトの SID の生成に関する詳細は、IdM でのセキュリティー識別子 (SID) の有効化 を参照してください。

Kerberos チケットの PAC 情報を評価することで、リソースアクセスをより詳細に制御できます。たとえば、あるドメインの Administrator アカウントは、他のドメインの Administrator アカウントとは一意に異なる SID を持っています。AD ドメインへの信頼がある IdM 環境では、UID が 0 のすべての Linux root アカウントなど、さまざまな場所で繰り返される可能性のある単純なユーザー名や UID ではなく、グローバルに一意の SID に基づいてアクセス制御を設定できます。

(Jira:RHELPLAN-159143)

Directory Server は、ロックの枯渇によって生じるデータベースの破損を防ぐ監視設定を提供します。

今回の更新で、nsslapd-db-locks-monitoring-enable パラメーターが cn=bdb,cn=config,cn=ldbm database,cn=plugins,cn=config エントリーに追加されています。有効になっている場合 (デフォルト)、アクティブなデータベースロックの数が nsslapd-db-locks-monitoring-threshold で設定されているパーセンテージしきい値よりも大きい場合、DirectoryServer はすべての検索を中止します。問題が発生した場合、管理者は cn=bdb,cn=config,cn=ldbm database,cn=plugins,cn=config エントリーの nsslapd-db-locks パラメーターで、データベースロックの数を増やすことができます。これにより、データの破損を防ぐことができます。さらに、管理者はスレッドがチェック間でスリープする間隔をミリ秒単位で設定できるようになりました。

詳細は、Red Hat Directory Server 設定、コマンド、およびファイルリファレンス のパラメーターの説明を参照してください。

(BZ#1812286)

Directory Server は、レトロチェンジログデータベースから属性と接尾辞を除外できます。

今回の機能拡張で、nsslapd-exclude-attrs および nsslapd-exclude-suffix パラメーターが Directory Server に追加されました。これらのパラメーターを cn=Retro Changelog Plugin,cn=plugins,cn=config エントリーに設定し、レトロチェンジログデータベースから特定の属性または接尾辞を除外できます。

(BZ#1850664)

Directory Server で entryUUID 属性のサポート

今回の機能拡張により、Directory Server は、RFC 4530 に準拠するように entryUUID 属性をサポートするようになりました。たとえば、entryUUID サポートにより、OpenLDAP からの移行が容易になります。デフォルトでは、Directory Server は entryUUID 属性を新規エントリーのみに追加します。既存のエントリーに手動で追加するには、dsconf <instance_name> plugin entryuuid fixup コマンドを使用します。

(BZ#1944494)

nsSSLPersonalitySSL の設定に役立つ新しいメッセージを追加

これまでは、TLS 証明書のニックネームが設定パラメーター nsSSLPersonalitySSL の値と一致しない場合に、RHDS インスタンスの起動に失敗することが多くありました。この不一致は、お客様が以前のインスタンスから NSS DB をコピーしたり、証明書のデータをエクスポートしたりした際に、nsSSLPersonalitySSL の 値を適切に設定しなかった場合に発生しました。今回の更新では、nsSSLPersonalitySSL を正しく設定するための追加メッセージがログに記録されます。

(BZ#1895460)