Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved
Solaris Kerberos の実装 (以降、「Kerberos」と短縮する場合もあり) によって、ネットワーク環境内のクライアントが認証されるため、セキュアなトランザクションが可能になります。(クライアントはユーザーまたはネットワークサービスです。)Kerberos では、クライアントの同一性および転送されたデータの信頼性が検証されます。Kerberos は「シングルサインオン」システムです。つまり、ユーザーはセッションの開始時にのみ、パスワードを入力する必要があります。Solaris Kerberos は、MIT で開発された Kerberos(TM) システムに基づいて実装され、異機種混在ネットワーク上で Kerberos V5 システムとの互換性があります。
Kerberos は、クライアントを一意に識別し、有効期間に限りがあるチケットをクライアントに付与することによって動作します。チケットを所有するクライアントは、権限が付与されているネットワークサービスについて自動的に検証されます。たとえば、有効な Kerberos チケットを持つユーザーは、自分自身の身元を証明しなくても、Kerberos が動作している別のマシンに rlogin できます。各クライアントは一意のチケットを持っているため、身元が保証されます。
チケットを入手するには、まずクライアントは kinit(1) コマンドまたは PAM モジュールを使用して、Kerberos セッションを初期化する必要があります。(pam_krb5(5) を参照)。kinit によってパスワードを求めるプロンプトが表示され、Key Distribution Center (KDC) との通信が行なわれます。KDC によって、チケット認可チケット (TGT) が返され、パスワードの確認を求めるプロンプトが表示されます。クライアントがパスワードを確認すると、チケット認可チケットを使用して、特定のネットワークサービスのチケットを取得できます。チケットは透過的に付与されるため、ユーザーが管理について心配する必要はありません。klist(1) コマンドを使用すると、現在のチケットを表示できます。
チケットは、インストール時に設定されたシステムポリシーに従って有効になります。たとえば、チケットには有効なデフォルトの有効期間があります。root に属するチケットなどの特権チケットの有効期間が非常に短くなるように、ポリシーに追加指示することもできます。ポリシーでは、いくつかのデフォルトルールを上書きできます。たとえば、クライアントは、デフォルトよりも有効期間が長いまたは短いチケットをリクエストできます。
kinit を使用すると、チケットを更新できます。チケットは転送可能でもあるため、あるマシン上で付与されたチケットを別のホスト上で使用できます。kdestroy(1) を使用すると、チケットを破棄できます。.logout ファイルに kdestroy への呼び出しを含めることをお勧めします。
Kerberos では、クライアントは主体と呼ばれます。主体の形式は次のとおりです:
primary/instance@REALM
プライマリノード
ユーザー、ホスト、またはサービス。
インスタンス
プライマリの資格です。プライマリがキーワード host で指定されたホストの場合、インスタンスはそのホストの完全指定ドメイン名です。プライマリがユーザーまたはサービスの場合、インスタンスはオプションです。admin や root などの一部のインスタンスは特権です。
レルム
Kerberos で、ドメインに相当するものです。実際に、ほとんどの場合でレルムは DNS ドメイン名に直接マップされています。Kerberos レルムでは大文字のみが使用されます。主体名の例については、「使用例」を参照してください。
Kerberos では、ユーザー認証以外にも、General Security Services API (GSS-API) を利用した 2 種類のセキュリティーサービスが提供されます: 転送されたデータの有効性を認証する integrity と、転送されたデータを暗号化する privacy。開発者は RPCSEC_GSS API インタフェースを使用することによって、GSS-API を利用できます (rpcsec_gss(3NSL) を参照)。
例 1 有効な主体名の例
次に、有効な主体名の例を示します:
joe joe/admin joe@ENG.ACME.COM joe/admin@ENG.ACME.COM rlogin/bigmachine.eng.acme.com@ENG.ACME.COM host/bigmachine.eng.acme.com@ENG.ACME.COM
最初の 4 つのケースはユーザー主体です。最初の 2 つのケースでは、ユーザー joe がクライアントと同じレルム内にあるため、レルムが指定されていないことが想定されます。joe と joe/admin は、同じユーザーに使用されている場合でも、別々の主体であることに注意してください。joe/admin は、joe とは別の特権を持っています。5 番目のケースは サービス主体、最後のケースはホスト主体です。ホスト主体には、host という語が必要です。ホスト主体では、インスタンスは完全指定ホスト名です。admin および host という語は予約済みのキーワードであることに注意してください。
kdestroy(1)、kinit(1)、klist(1)、kpasswd(1)、krb5.conf(4)、krb5envvar(5)
『System Administration Guide: Security Services 』
以前のリリースの Solaris オペレーティングシステムでは、Solaris Kerberos の実装は「SEAM (Sun Enterprise Authentication Mechanism)」と呼ばれていました。
ユーザー名を入力し、kinit が次のメッセージを返した場合:
Principal unknown (kerberos)
Kerberos ユーザーとして登録されていません。システム管理者に問い合わせるか、『System Administration Guide: Security Services』を参照してください。