13.2.15. ドメインオプション: ユーザー名の形式の設定
SSSD が実行する主なアクションの 1 つは、ローカルシステムユーザーをリモート ID プロバイダーのアイデンティティーにマッピングすることです。SSSD は、ユーザー名とドメインバックエンド名の組み合わせを使用してログイン ID を作成します。
SSSD は、異なるドメインに属する限り、同じユーザー名を持つ異なるユーザーを認識できます。たとえば、SSSD は
ldap.example.com
ドメインで jsmith
と jsmith
の両方を正常に認証 でき
ます。
完全なユーザー名の作成に使用される名前の形式は、設定の
[sssd]
セクションでユニバーサルで定義され、各ドメインセクションで個別に定義することができます(任意)。
さまざまなサービスのユーザー名(LDAP、Samba、Active Directory、Identity Management、ローカルシステムなど)にはそれぞれ異なる形式があります。SSSD がユーザー名/ドメイン名セットを識別するために使用する式は、異なる形式で名前を解釈できる必要があります。この式は re_expression パラメーターで設定されます。
グローバルデフォルトでは、このフィルターは name@domain 形式の名前を作成します。
(?P<name>[^@]+)@?(?P<domain>[^@]*$)
注記
正規表現の形式は Python 構文です。
ドメイン部分は、アイデンティティープロバイダーのドメイン名に基づいて自動的に指定できます。そのため、ユーザーは jsmith としてログインでき、ユーザーが LOCAL ドメインに属する場合(例)、ユーザー名は SSSD によって jsmith@LOCAL として解釈されます。
ただし、他のアイデンティティープロバイダーには他の形式が含まれる場合があります。たとえば、Samba には非常に厳密な形式があるため、ユーザー名は DOMAIN\username の形式と一致する必要があります。Samba の場合は、正規表現は以下のようになります。
(?P<domain>[^\\]*?)\\?(?P<name>[^\\]+$)
Active Directory などの一部のプロバイダーは、複数の異なる名前形式をサポートします。たとえば、Active Directory および Identity Management は、デフォルトで 3 つの異なる形式をサポートします。
- username
- username@domain.name
- DOMAIN\username
Active Directory プロバイダーおよび Identity Management プロバイダーのデフォルト値は、3 つの名前形式すべてを可能にするより複雑なフィルターです。
(((?P<domain>[^\\]+)\\(?P<name>.+$))|((?P<name>[^@]+)@(?P<domain>.+$))|(^(?P<name>[^@\\]+)$))
注記
jsmith@ldap.example.com
などの完全修飾名で情報を要求すると、適切なユーザーアカウントが常に返されます。異なるドメインに同じユーザー名を持つユーザーが複数ある場合は、ユーザー名のみを指定すると、ルックアップ順にドメインが最初に表示されるユーザーが返されます。
re_expression はユーザー名の形式を設定するのに最も重要な方法ですが、他のアプリケーションで便利なオプションが 2 つあります。
デフォルトのドメイン名値
1 つ目は、すべてのユーザーで使用されるデフォルトのドメイン名( default_domain_suffix )を設定します。(これは、[sssd] セクションでのみ利用できるグローバル設定です。) 複数のドメインが設定され、1 つのドメインのみがユーザーデータを格納する場合があり、もう 1 つがホストまたはサービス ID に使用される場合があります。デフォルトのドメイン名を設定すると、ユーザーはドメイン名のみでログインでき、ドメイン名(プライマリードメイン外のユーザーに必要)を指定できません。
[sssd] ... default_domain_suffix = USERS.EXAMPLE.COM
出力のフルネーム形式
他のパラメーターは、ユーザー名の 解釈 を定義するのではなく、識別された名前を 出力 する方法を定義するのではなく、re_expression に関連します。full_name_format パラメーターは、ユーザー名とドメイン名(決定後に)を表示する方法を設定します。
full_name_format = %1$s@%2$s