10.5. Active Directory ドメインとの信頼に対する証明書マッピングルール
IdM デプロイメントが Active Directory (AD) ドメインと信頼関係にある場合、さまざまな証明書マッピングの使用例が可能です。
AD 設定によっては、以下の状況が考えられます。
- 証明書が AD Certificate System によって発行され、ユーザーと証明書が IdM に保存されている場合、認証リクエストのマッピングと処理全体が IdM 側で行われます。このシナリオの設定に関する詳細は IdM に保存されたユーザーの証明書マッピングの設定 を参照してください。
ユーザーが AD に保存されている場合は、認証要求の処理が AD で実行されます。サブケースは 3 つあります。
- AD ユーザーエントリーに、証明書全体が含まれる場合。このシナリオで IdM を設定する方法は、AD ユーザーエントリーに証明書全体が含まれるユーザーに証明書マッピングを設定 を参照してください。
-
AD が、ユーザー証明書をユーザーアカウントにマップするように設定されている場合。この場合、AD ユーザーエントリーには証明書全体が含まれず、代わりに
altSecurityIdentities
と呼ばれる属性が含まれます。このシナリオで IdM を設定する方法は、ユーザー証明書をユーザーアカウントにマッピングするように AD が設定されている場合の証明書マッピングの設定 を参照してください。 AD ユーザーエントリーに、証明書全体またはマッピングデータが含まれない場合。この場合、次の 2 つのオプションがあります。
- ユーザー証明書が AD Certificate System によって発行された場合、証明書にはサブジェクト代替名 (SAN) としてユーザープリンシパル名が含まれるか、証明書の SID 拡張子のユーザーの SID (最新の更新が AD に適用されている場合) が含まれます。これらは両方とも、証明書をユーザーにマッピングするために使用できます。
-
ユーザー証明書がスマートカード上にある場合、スマートカードで SSH を有効にするには、SSSD は証明書から公開 SSH キーを取得する必要があるため、完全な証明書が必要です。唯一の解決策は、
ipa idoverrideuser-add
コマンドを使用して、証明書全体を IdM の AD ユーザーの ID オーバーライドに追加することです。詳細は AD ユーザーエントリーに証明書やマッピングデータが含まれていない場合の証明書マッピングの設定 を参照してください。
AD ドメイン管理者は、altSecurityIdentities
属性を使用して証明書を AD 内のユーザーに手動でマッピングできます。この属性には 6 つの値がサポートされていますが、3 つのマッピングは安全ではないと考えられています。2022 年 5 月 10 日のセキュリティー更新 の一環として、インストールされると、すべてのデバイスは互換モードになり、証明書がユーザーに弱くマッピングされている場合、認証は期待どおりに行われます。ただし、完全強制モードと互換性のない証明書を特定する警告メッセージがログに記録されます。2023 年 11 月 14 日以降、すべてのデバイスは完全強制モードに更新され、証明書が強力なマッピング基準を満たさない場合、認証は拒否されます。
たとえば、AD ユーザーが証明書 (PKINIT) を含む IdM Kerberos チケットをリクエストすると、AD は証明書を内部でユーザーにマップする必要があり、これに新しいマッピングルールを使用します。ただし、IdM では、IdM クライアント上のユーザーに証明書をマップするために IdM が使用されている場合、以前のルールが引き続き機能します。
IdM は新しいマッピングテンプレートをサポートしているため、AD 管理者は新しいルールを使用し、両方を維持する必要がなくなります。IdM は、Active Directory に追加された以下を含む新しいマッピングテンプレートをサポートするようになりました。
- シリアル番号: LDAPU1:(altSecurityIdentities=X509:<I>{issuer_dn!ad_x500}<SR>{serial_number!hex_ur})
- サブジェクトキー ID: LDAPU1:(altSecurityIdentities=X509:<SKI>{subject_key_id!hex_u})
- User SID: LDAPU1:(objectsid={sid})
新しい SID 拡張子を使用して証明書を再発行したくない場合は、AD のユーザーの altSecurityIdentities
属性に適切なマッピング文字列を追加して、手動マッピングを作成できます。