6.2. Principal Names (プリンシパル名)
6.2. Principal Names (プリンシパル名)
プリンシパル名 (Principal Name) は, Kerberosで認証されるエンティティ (ユーザー, サービス, ホストなど) を一意に識別します。プリンシパル名は, 名前タイプ (name-type) と名前文字列のシーケンス (name-string) から構成されます。
プリンシパル名の構造
プリンシパル名は以下の要素で構成されます:
PrincipalName ::= SEQUENCE {
name-type [0] Int32,
name-string [1] SEQUENCE OF KerberosString
}
完全なプリンシパル識別子は, プリンシパル名とレルムの組み合わせです:
principal@REALM
例: [email protected], host/[email protected]
名前タイプ (Name Types)
名前タイプは, プリンシパル名の解釈方法を示すヒントを提供します。主な名前タイプ:
- NT-UNKNOWN (0): 名前タイプが不明または指定されていない
- NT-PRINCIPAL (1): 一般的なプリンシパル名
- NT-SRV-INST (2): サービスおよびインスタンス名
- NT-SRV-HST (3): サービスとホスト名
- NT-SRV-XHST (4): サービスとホスト名 (拡張形式)
- NT-UID (5): ユーザーID (数値)
- NT-X500-PRINCIPAL (6): X.500識別名を使用したプリンシパル
- NT-SMTP-NAME (7): SMTP電子メールアドレス形式の名前
- NT-ENTERPRISE (10): エンタープライズプリンシパル名
ユーザープリンシパル名
ユーザーを識別するプリンシパル名:
- 形式:
username@REALM - 名前タイプ: NT-PRINCIPAL (1)
- 例:
[email protected],[email protected]
ユーザープリンシパル名は通常, 単一のコンポーネントで構成されます。
サービスプリンシパル名
サービスを識別するプリンシパル名:
- 形式:
service/hostname@REALM - 名前タイプ: NT-SRV-HST (3) または NT-SRV-INST (2)
- 例:
host/[email protected]http/[email protected]ldap/[email protected]
サービスプリンシパル名は通常, 2つのコンポーネントで構成されます:
- サービス名 (例:
host,http,ldap) - ホスト名または インスタンス名
エンタープライズプリンシパル名
エンタープライズプリンシパル名 (NT-ENTERPRISE) は, ユーザーがレルムを指定せずにログインできるようにします:
- 形式:
[email protected](電子メールアドレスのような形式) - 名前タイプ: NT-ENTERPRISE (10)
- 用途: クロスレルム環境での柔軟な認証
KDCは, エンタープライズプリンシパル名を適切なレルムとプリンシパル名にマッピングする責任があります。
プリンシパル名の正規化
プリンシパル名の比較と正規化:
- プリンシパル名コンポーネントの比較は, 大文字と小文字を区別します (case-sensitive)
- レルム名の比較も大文字と小文字を区別します
- 2つのプリンシパルが同一であるためには, 名前タイプ, すべての名前コンポーネント, およびレルムが完全に一致しなければなりません (MUST)
名前タイプのヒント
名前タイプはヒントとして扱われるべきです (SHOULD):
- 名前タイプを無視しても, 名前の一意性は保たれます
- 少なくとも1つのコンポーネントまたはレルムが異なれば, 2つの名前は異なります
- 実装は, 名前タイプに依存せずにプリンシパルを識別できるべきです (SHOULD)
サーバープリンシパル名の規則
サーバープリンシパル名の一般的な規則:
-
ホストベースのサービス:
- 形式:
service/FQDN@REALM - FQDNは完全修飾ドメイン名 (Fully Qualified Domain Name)
- 例:
host/[email protected]
- 形式:
-
インスタンス付きサービス:
- 形式:
service/instance@REALM - インスタンスはホスト名である必要はありません
- 例:
krbtgt/[email protected](クロスレルムTGT)
- 形式:
-
TGSプリンシパル:
- 形式:
krbtgt/REALM@REALM - 各レルムのTGSは, この形式のプリンシパル名を持ちます
- 例:
krbtgt/[email protected]
- 形式:
特殊なプリンシパル名
いくつかの特殊なプリンシパル名:
- krbtgt/REALM@REALM: Ticket-Granting Service (TGS)
- krbtgt/TARGET@SOURCE: クロスレルムTGS
- kadmin/admin@REALM: Kerberos管理サービス
- kadmin/changepw@REALM: パスワード変更サービス
- kadmin/history@REALM: パスワード履歴サービス
セキュリティ考慮事項
プリンシパル名のセキュリティに関する考慮事項:
- プリンシパル名は, 認証の基礎となる識別子です
- プリンシパル名のなりすましは, セキュリティ侵害につながる可能性があります
- サービスプリンシパル名は, サービスがホストされているホストのFQDNを使用すべきです (SHOULD)
- プリンシパル名の選択と管理は, セキュリティポリシーに従って慎重に行う必要があります