7. 命名制約 English
レルム名は GeneralStrings として符号化され、技術的にはレルムに任意の名前を付けることができますが、異なるレルム間の相互運用性を実現するには、レルム名の割り当て方とそれが意味する情報についての取り決めが必要です。
これらの規約を強化するためには、各レルムはそれ自体の規約に従っている必要があります。また、インターレルム鍵が共有されるレルムも規約に従い、その近隣のレルムに同様のことを要求する必要があります。
現在、レルム名には、ドメイン、X500、その他、予約済みの 4つのスタイルが存在します。:
ドメイン:: host.subdomain.domain (例) X500:: C=US/O=OSF (例) その他:: NAMETYPE:rest/of.name=without-restrictions (例) 予約済み:: 予約済みであるが、上記のスタイルとは競合しない
ドメイン ネームは、通常のドメイン ネームと同じ形式で表します。ピリオド(.) で区切られたコンポーネントで構成され、コロン (:) やスラッシュ (/) を含みません。
X.500 ネームは、等号 (=) を含み、等号の前にコロン (:) を含むことはできません。X.500 ネームのレルム名は、名前を文字列で表し、各コンポーネントをスラッシュで区切ります。先頭と最後にはスラッシュは付けられません。
その他の分類に入る名前は、等号 (=) やピリオド (.) が含まれていないプレフィックスで開始する必要があります。このプレフィックスの後ろには、コロン (:) と名前が続きます。プレフィックスは、使用する前に割り当てておかなければなりません。現在は、1つも割り当てられていません。
予約済みの分類には、上記の 3 つの分類に当てはまらない文字列が含まれます。この分類内のすべての名前は予約済みです。「その他」に分類することに強い反対がない限り、この分類には名前は割り当てられません。
これらのルールにより、さまざまな名前スタイル間で矛盾が発生しなくなります。以下の追加の制約は、レルム名をドメインと X.500 の分類に割り当てるときに適用されます。ドメインまたは X.500 形式のレルム名は、どちらもインターネット ドメイン ネームまたは X.500 ネームを所有している組織 (それが割り当てられている組織) で使用しなければなりません。または、その名前が登録されていない場合、レルム名を使用する権限は、親レルムの権限から取り出すことができます。たとえば、E40.MIT.EDU というドメイン ネームが存在しない場合、MIT.EDU レルムの管理者は、その名前のレルムの作成を許可できます。
親が割り当てられている組織は、おそらく X.500 やドメイン ネーム システムでも子供に名前を割り当てる権限が与えられている組織であるため、上記のことが行えます。親がレルム名を割り当て、それをドメイン ネームまたは X.500 の階層に登録しなかった場合、その子供のレルム名と同じ名前が、レルム名と同じエントリに割り当てられていない限り、将来に渡って存在しないようにするのは親の責任です。
レルム名の場合と同様に、プリンシパル名にも、それが表す情報の合意を得るための規約が必要です。プリンシパル名の一部分である name-type フィールドは、名前によって表されるある種の情報を示します。name-type は、ヒントとして扱ってください。名前タイプを別にして、同じ名前があってはなりません (つまり、少なくともコンポーネントの 1 つ、またはレルムが異なっていなければなりません)。この制約は、将来排除される予定です。次の名前タイプが定義されています。
名前タイプ 値 意味 NT-UNKNOWN 0 不明な名前タイプ NT-PRINCIPAL 1 DCE でのプリンシパルの名前、またはユーザー用のプリンシパルの名前 NT-SRV-INST 2 サービスと他の固有なインスタンス (krbtgt) NT-SRV-HST 3 ホスト名をインスタンスとしているサービス(telnet、rcommands) NT-SRV-XHST 4 ホストを残りのコンポーネントとしているサービス NT-UID 5 固有な ID
名前が、その時点で固有であること以外、何の情報も表していない場合、名前タイプ PRINCIPAL を使用します。プリンシパルの名前タイプは、ユーザー用に使用し、固有なサーバー用に使用することもできます。名前がマシンによって生成された固有な ID で、再割り当てされないことが保証されている場合、名前タイプ UID を使用します (アクセス コントロール リストに古いエントリが残るため、どのようなタイプの名前でも再割り当てすることは好ましくありません)。サーバーが指定した方法で、名前の最初のコンポーネントがサービスを識別し、残りのコンポーネントがサービスのインスタンスを識別する 場合、SRV-INST を使用します。この名前タイプの例としては、Kerberos チケット交付チケットがあります。これの最初のコンポーネントは krbtgt で、2 番目のコンポーネントはチケットが有効なレルムを識別します。
1 つのコンポーネントの後ろにサービス名が付いたインスタンスで、それがサーバーが稼動しているホストを識別する場合、名前タイプ SRV-HST を使用します。このタイプは、一般的に、telnet や Berkeley R コマンドなどのインターネット サービスで使われます。ホスト名の個別のコンポーネントが、連続したコンポーネントの後ろにサービス名が付いたように表されている場合、名前タイプ SRVXHST を使用します。このタイプは、X.500 の名前が付いているホスト上のサーバーを識別するのに使用します。ここの場合、スラッシュ(/) を付けないとわかりづらくなります。
名前タイプ UNKNOWN は、名前の形式が不明な場合に使用します。名前を比較する場合、名前タイプ UNKNOWN はあらゆるタイプの名前で認証されたプリンシパルに一致します。名前タイプ UNKNOWN で認証されたプリンシパルは、UNKNOWN の他の名前とだけ一致します。
最初のコンポーネントが "krbtgt" のあらゆるタイプの名前は、Kerberos チケット交付サービス用に予約されています。それらの名前の形式については、8.2.3 節を参照してください。
ホスト上のサーバーのプリンシパル識別子は、一般的に次の 2つの部分で構成されています。(1) サーバーが登録されている KDC のレルム、(2) ホスト名がインターネット ドメイン ネームの場合、2つのコンポーネント名タイプ NT-SRV-HST で、ホスト名が、X.500 のようにスラッシュ (/) 区切り記号が使用できる形式の場合、複数のコンポーネント名タイプ NT-SRV-XHST。2 つのコンポーネント名、または複数のコンポーネント名の最初のコンポーネントはサービスを識別し、その後のコンポーネントはホストを識別します。ホスト名は大文字小文字を区別しないので (たとえば、インターネット ドメイン ネームなどで)、ホスト名は小文字にしなければなりません。telnet や Berkeley R コマンドのようにシステム権限が必要なサービスの場合、最初のコンポーネントはサービス固有の識別子ではなく文字列 "host" になります。