NIS+ 資格の目的は、NIS+ サービスや NIS+ オブジェクトへのアクセスを要求する各主体の ID を「認証」(確認) することにあります。つまり、NIS+ 資格および承認プロセスは Secure RPC システムを実装することです。
資格および認証システムは他人になりすますのを防ぐシステムです。あるマシンのルート権限を持つユーザーが su コマンドを使って、ログインしていないもしくは別のマシンにログインしている第 2 のユーザーになりすまし、NIS+ アクセス権を使用して NIS+ オブジェクトにアクセスすることを妨げます。
サーバーが主体を認証すると、主体は 4 つの認証クラスの 1 つに分類されます。次に、サーバーは主体がアクセスしようとしている NIS+ オブジェクトをチェックして、主体のクラスが実行を認証される動作を確認します。承認の詳細は、「NIS+ の承認とアクセス - 紹介」を参照してください。
主体には、「ユーザー」と「マシン」の 2 つの基本的な種類があります。
「ユーザー (user) 資格」。一般ユーザーとして NIS+ クライアントにログインした場合、NIS+ サービス要求には当人の「ユーザー」資格が含まれます。
「マシン (machine) 資格」。スーパーユーザーとして NIS+ クライアントにログインした場合、サービス要求は「クライアントマシン」資格を使います。
NIS+ 主体には DES と LOCAL の 2 つの資格が用意されています。
認証を行う仕組みとしては DES 資格が唯一のものです。将来はほかの仕組みも利用できるようになるかもしれません。DES 資格と NIS+ 資格は同等のものではありません。
このマニュアルでは、DES 資格という用語は、鍵の長さにかかわりなく Diffie - Hellman 鍵をベースにした認証を表すものとして一般的に使われています。鍵の長さはあらかじめ決められたセットから指定することができます。Diffie - Hellman 鍵の長さの設定や表示を行うには nisauthconf(1M) を使用します。
DES (データ暗号化規格) 資格は資格の 1 種であり、保護認証を提供するものです。このマニュアルで NIS+ 主体を認証するために資格をチェックすると記述している場合は、NIS+ がチェックしている DES 資格のことを意味します。
主体が NIS+ サービスを要求したり、NIS+ オブジェクトにアクセスするごとに、ソフトウェアは格納してある資格情報を使って主体の資格を作成します。DES 資格は NIS+ 管理機能によって各主体に作られた情報から作成されます。第 12 章「NIS+ 資格の管理」を参照してください。
主体の DES 資格の正当性を NIS+ が確認すると、その主体は「認証」されます。
主体は所有者、グループ、その他のいずれかの承認クラスを得るために認証されなければなりません。つまり、これらクラスの1つを得るために、有効な DES 資格を持つ必要があるのです。有効な DES 資格を持たない主体は自動的に未認証クラスに割り当てられます。
当該主体がクライアントユーザーであるかクライアントマシンであるかにかかわらず、DES 資格情報は常に主体のホームドメインの cred テーブルに格納されます。
LOCAL 資格は、ユーザー ID 番号とホームドメイン名を含む NIS+ 主体名とのマップです。ユーザーがログインすると、システムは DES 資格が格納されているホームドメインを特定する LOCAL 資格をチェックします。システムはその情報を使ってユーザーの DES 資格情報を獲得します。
ユーザーがリモートドメインにログインした場合、その要求はユーザーのホームドメインを示す LOCAL 資格を使います。NIS+ は次にユーザーの DES 資格情報を知るためにユーザーのホームドメインを問い合わせます。こうして、たとえユーザーの DES 資格情報がリモートドメインに格納されていなくても、リモートドメインで認証されます。
LOCAL 資格情報はどのドメインにも格納できます。実際、リモートドメインにログインし認証されるためには、クライアントユーザーはリモートドメインの cred テーブルに LOCAL 資格を持っている必要があります。ユーザーが、アクセスしようとするリモートドメインに LOCAL 資格を持っていなかった場合、NIS+ はユーザーの DES 資格を獲得するためにユーザーのホームドメインに入ることができなくなります。そのような場合、ユーザーは認証されず未認証クラスを与えられることになります。
ユーザーは両方の資格を持つことができますが、マシンは DES 資格しか持てません。
すべてのマシンのルート UID は常に 0 であるため、ルートはほかのマシンに対して NIS+ アクセスできません。もしマシン A のルート (UID=0) がマシン B にアクセスしようとすると、すでに存在しているマシン B のルート (UID=0) と衝突します。このため、LOCAL 資格は、クライアント「マシン」については意味を持たないため、クライアント「ユーザー」にだけ認められています。
表 11–2 資格のタイプ
資格のタイプ |
クライアントユーザー |
クライアントマシン |
---|---|---|
DES |
有効 |
有効 |
LOCAL |
有効 |
無効 |