Sun Enterprise Authentication Mechanism ガイド

プリンシパルの管理

この節では、SEAM ツールを使用してプリンシパルを管理する設定手順を説明します。また、各手順の後には、可能な限り kadmin コマンドを使用する同等なコマンド行の例も示します。

プリンシパルの管理作業マップ

表 5-2 プリンシパルの管理作業マップ

作業 

説明 

参照箇所 

プリンシパルのリストを表示する 

プリンシパルのリストを表示するには、「プリンシパル (Principals)」タブをクリックします。 

「プリンシパルのリストを表示するには」

プリンシパルの属性を表示する 

プリンシパルの属性を表示するには、「プリンシパルリスト (Principal List)」からプリンシパルを選択して、「変更 (Modify)」ボタンをクリックします。 

「プリンシパルの属性を表示するには」

新しいプリンシパルを作成する 

新しいプリンシパルを作成するには、「プリンシパルリストリスト (Principal List)」パネルにある「新規作成 (Create New)」ボタンをクリックします。 

「新しいプリンシパルを作成するには」

プリンシパルを複製する 

プリンシパルを複製するには、「プリンシパルリスト (Principal List)」から複製するプリンシパルを選択して、「複製 (Duplicate)」ボタンをクリックします。 

「プリンシパルの複製を作成するには」

プリンシパルを変更する 

プリンシパルを変更するには、「プリンシパルリスト (Principal List)」から変更するプリンシパルを選択して、「変更 (Modify)」ボタンをクリックします。 

プリンシパル名は変更できないので注意してください。プリンシパル名を変更するには、プリンシパルを複製して、新しい名前を指定し、保存してから古いプリンシパルを削除します。 

「プリンシパルを変更するには」

プリンシパルを削除する 

プリンシパルを削除するには、「プリンシパルリスト (Principal List)」から削除するプリンシパルを選択して、「削除 (Delete)」ボタンをクリックします。 

「プリンシパルを削除するには」

新しいプリンシパルを作成するためのデフォルトを設定する 

新しいプリンシパルを作成するためのデフォルトを設定するには、「編集 (Edit)」メニューから「プロパティ (Properties)」を選択します。 

「新しいプリンシパルを作成するためのデフォルトを設定するには」

Kerberos 管理特権 (kadm5.acl ファイル) を変更する

コマンド行のみ。Kerberos 管理特権により、プリンシパルが Kerberos データベースに実行できる操作 (追加や変更など) が決まります。各プリンシパルの Kerberos 管理特権を変更するには、/etc/krb5/kadm5.acl ファイルを編集する必要があります。

「Kerberos 管理特権を変更するには」

新しいプリンシパルの作成を自動化する

SEAM ツールは使いやすいですが、新しいプリンシパルの作成を自動化する方法はありません。自動化できれば、特に多数 (10、さらには 100 ぐらい) の新しいプリンシパルを短時間で追加する必要があるときに便利です。kadmin.local コマンドを Bourne シェルスクリプトで使用すれば、簡単に自動化できます。

次に、自動化の例となるシェルスクリプトの行を示します。

sed -e 's/^¥(.*¥)$/ank +needchange -pw ¥1 ¥1/' 
< princnames | time /usr/krb5/sbin/kadmin.local > /dev/null

このスクリプトは、プリンシパル名とそのパスワードが入っている princnames というファイルを読み取って、Kerberos データベースに追加します。princnames ファイルはあらかじめ作成しておく必要があります。このファイルの各行は、1 つまたは複数の空白で区切られたプリンシパル名とそのパスワードから構成されます。+needchange オプションを指定すると、ユーザーがあるプリンシパルで初めてログインするとき、新しいパスワードをユーザーに尋ねるようにプリンシパルを構成します。これによって、princnames ファイル内のパスワードのセキュリティが保護されます。

これは 1 つの例ですが、より精巧なスクリプトも構築できます。たとえば、ネームサービスの情報を使用して、プリンシパル名に対するユーザー名のリストを取得することもできます。どのようにスクリプトを構築するかは、ユーザーのサイトのニーズと、ユーザーのスクリプトの技量によります。

プリンシパルのリストを表示するには

この手順の後に、同等なコマンド行の例を示します。

  1. 必要であれば、SEAM ツールを起動します。

    詳細は、「SEAM ツールを起動するには」を参照してください。

  2. 「プリンシパル (Principals)」タブをクリックします。

    プリンシパルのリストが表示されます。

    Graphic
  3. 特定のプリンシパルまたはプリンシパルのリストの一部を表示するには、「フィルタパターン (Filter Pattern)」フィールドにフィルタ文字列を入力して、Return キーを押します。フィルタが成功した場合、フィルタに一致するプリンシパルのリストが表示されます。

    フィルタ文字列は 1 つまたは複数の文字から構成されていなければなりません。フィルタ機構は大文字と小文字を区別するため、フィルタには適切な大文字と小文字を使用する必要があります。たとえば、フィルタ文字列「ge」を入力する場合、フィルタ機構は ge 文字列を含むプリンシパル (たとえば、georgeedge) だけを表示します。

    プリンシパル全体のリストを表示するには、「フィルタを消去 (Clear Filter)」をクリックします。

例 - プリンシパルのリストを表示する (コマンド行)

次の例は、kadminlist_principals コマンドを使用して、test* に一致するすべてのプリンシパルのリストを表示します。list_principals コマンドではワイルドカードを使用できます。


kadmin: list_principals test*
test1@ACME.COM
test2@ACME.COM
kadmin: quit

プリンシパルの属性を表示するには

この手順の後に、同等なコマンド行の例を示します。

  1. 必要であれば、SEAM ツールを起動します。

    詳細は、「SEAM ツールを起動するには」を参照してください。

  2. 「プリンシパル (Principals)」タブをクリックします。

  3. 表示したいプリンシパルをリストから選択して、「変更 (Modify)」をクリックします。

    「基本プリンシパル (Principal Basics)」パネルが表示されて、プリンシパルの属性がいくつか表示されます。

  4. すべてのプリンシパルの属性を表示するには、「次へ (Next)」を何回かクリックします。

    属性情報は 3 つのウィンドウに分かれています。「ヘルプ (Help)」メニューから「コンテキストヘルプ (Context-Sensitive Help)」を選択すると、各ウィンドウにあるさまざまな属性についての情報を表示できます。あるいは、すべてのプリンシパルの属性については、「SEAM ツールパネルの説明」を参照してください。

  5. 参照後、「取消し (Cancel)」をクリックします。

例 - プリンシパルの属性を表示する

次の例に、jdb/admin プリンシパルを表示する場合の最初のウィンドウを示します。

Graphic

例 - プリンシパルの属性を表示する (コマンド行)

次の例では、kadminget_principal コマンドを使用して、jdb/admin プリンシパルの属性を表示します。


kadmin: getprinc jdb/admin
Principal: jdb/admin@ACME.COM
Expiration date: Fri Aug 25 17:19:05 PDT 2000
Last password change: [never]
Password expiration date: Wed Apr 14 11:53:10 PDT 1999
Maximum ticket life: 1 day 16:00:00
Maximum renewable life: 1 day 16:00:00
Last modified: Thu Jan 14 11:54:09 PST 1999 (admin/admin@ACME.COM)
Last successful authentication: [never]
Last failed authentication: [never]
Failed password attempts: 0
Number of keys: 1
Key: vno 1, DES cbc mode with CRC-32, no salt
Attributes: REQUIRES_HW_AUTH
Policy: [none]
kadmin: quit

新しいプリンシパルを作成するには

この手順の後に、同等なコマンド行の例を示します。

  1. 必要であれば、SEAM ツールを起動します。

    詳細は、「SEAM ツールを起動するには」を参照してください。


    注 -

    新しいポリシーが必要となる新しいプリンシパルを作成する場合は、新しいプリンシパルを作成する前に新しいポリシーを作成しておかなければなりません。「新しいポリシーを作成するには」を参照してください。


  2. 「プリンシパル (Principals)」タブをクリックします。

  3. 「新規 (New)」をクリックします。

    「基本プリンシパル (Principal Basics)」パネルが表示されて、プリンシパルの属性がいくつか表示されます。

  4. プリンシパル名とパスワードを指定します。

    プリンシパル名とパスワードは両方とも必須です。

  5. プリンシパルの属性に値を指定します。さらに属性を指定するには、「次へ (Next)」を何回かクリックします。

    属性情報は 3 つのウィンドウに分かれています。「ヘルプ (Help)」メニューから「コンテキストヘルプ (Context-Sensitive Help)」を選択すると、各ウィンドウにあるさまざまな属性についての情報を表示できます。あるいは、すべてのプリンシパルの属性については、「SEAM ツールパネルの説明」を参照してください。

  6. 「保存 (Save)」をクリックして、プリンシパルを保存します。あるいは、最後のパネルで「終了 (Done)」をクリックします。

  7. 必要であれば、/etc/krb5/kadm5.acl ファイルで新しいプリンシパルの Kerberos 管理特権を設定します。

    詳細は、「Kerberos 管理特権を変更するには」を参照してください。

例 - 新しいプリンシパルを作成する

次の例では、pak という新しいプリンシパルを作成する場合に、「プリンシパルの基本 (Principal Basics)」パネルを表示します。この時点までに、ポリシーは testuser に設定されています。

Graphic

例 - 新しいプリンシパルを作成する (コマンド行)

次の例では、kadminadd_principal コマンドを使用して、pak という新しいプリンシパルを作成します。プリンシパルのポリシーは testuser に設定されています。


kadmin: add_principal -policy testuser pak
Enter password for principal "pak@ACME.COM": <パスワードを入力する>
Re-enter password for principal "pak@ACME.COM":  <もう一度パスワードを入力する>
Principal "pak@ACME.COM" created.
kadmin: quit

プリンシパルの複製を作成するには

この手順では、既存のプリンシパルの属性のすべてまたは一部を使用して、新しいプリンシパルを作成する方法を説明します。この手順には、同等なコマンド行はありません

  1. 必要であれば、SEAM ツールを起動します。

    詳細は、「SEAM ツールを起動するには」を参照してください。

  2. 「プリンシパル (Principals)」タブをクリックします。

  3. 複製したいプリンシパルをリストから選択して、「複製 (Duplicate)」をクリックします。

    「プリンシパルの基本 (Principal Basics)」パネルが表示されます。選択したプリンシパルのすべての属性が複製されます。ただし、「プリンシパル名 (Principal Name)」と「パスワード (Password)」のフィールドだけは複製されず、空になります。

  4. プリンシパル名とパスワードを指定します。

    プリンシパル名とパスワードは両方とも必須です。選択したプリンシパルの正確な複製を作成したい場合、「保存 (Save)」をクリックして、残りの手順を省略します。

  5. プリンシパルの属性に異なる値を指定します。さらに属性を指定するには、「次へ (Next)」を何回かクリックします。

    属性情報は 3 つのウィンドウに分かれています。「ヘルプ (Help)」メニューから「コンテキストヘルプ (Context-Sensitive Help)」を選択すると、各ウィンドウにあるさまざまな属性についての情報を表示できます。あるいは、すべてのプリンシパルの属性については、「SEAM ツールパネルの説明」を参照してください。

  6. 「保存 (Save)」をクリックして、プリンシパルを保存します。あるいは、最後のパネルで「完了 (Done)」をクリックします。

  7. 必要であれば、/etc/krb5/kadm5.acl ファイルでプリンシパルの Kerberos 管理特権を設定します。

    詳細は、「Kerberos 管理特権を変更するには」を参照してください。

プリンシパルを変更するには

この手順の後に、同等なコマンド行の例を示します。

  1. 必要であれば、SEAM ツールを起動します。

    詳細は、「SEAM ツールを起動するには」を参照してください。

  2. 「プリンシパル (Principals)」タブをクリックします。

  3. 変更したいプリンシパルをリストから選択して、「変更 (Modify)」をクリックします。

    「プリンシパルの基本 (Principal Basics)」パネルが現れて、プリンシパルの属性がいくつか表示されます。

  4. プリンシパルの属性を変更します。さらに属性を変更するには、「次へ (Next)」を何回かクリックします。

    属性情報は 3 つのウィンドウに分かれています。「ヘルプ (Help)」メニューから「コンテキストヘルプ (Context-Sensitive Help)」を選択すると、各ウィンドウにあるさまざまな属性についての情報を表示できます。あるいは、すべてのプリンシパルの属性については、「SEAM ツールパネルの説明」を参照してください。


    注 -

    プリンシパル名は変更できません。プリンシパル名を変更するには、プリンシパルを複製して、新しい名前を指定し、保存してから古いプリンシパルを削除してください。


  5. 「保存 (Save)」をクリックして、プリンシパルを保存します。あるいは、最後のパネルで「完了 (Done)」をクリックします。

  6. /etc/krb5/kadm5.acl ファイルでプリンシパルの Kerberos 管理特権を変更します。

    詳細は、「Kerberos 管理特権を変更するには」を参照してください。

例 - プリンシパルのパスワードを変更する (コマンド行)

次の例では、kadminchange_password コマンドを使用して、jdb プリンシパルのパスワードを変更します。change_password を使用した場合、プリンシパルのパスワードヒストリ中にあるパスワードと同じパスワードには変更できません。


kadmin: change_password jdb
Enter password for principal "jdb": <新しいパスワードを入力する>
Re-enter password for principal "jdb": <もう一度パスワードを入力する>
Password for "jdb@ACME.COM" changed.
kadmin: quit

プリンシパルの別の属性を変更するには、kadminmodify_principal コマンドを使用してください。

プリンシパルを削除するには

この手順の後に、同等なコマンド行の例を示します。

  1. 必要であれば、SEAM ツールを起動します。

    詳細は、「SEAM ツールを起動するには」を参照してください。

  2. 「プリンシパル (Principals)」タブをクリックします。

  3. 削除したいプリンシパルをリストから選択して、「削除 (Delete)」をクリックします。

    削除を確定した後、プリンシパルは削除されます。

  4. Kerberos ACL ファイル /etc/krb5/kadm5.acl からプリンシパルを削除します。

    詳細は、「Kerberos 管理特権を変更するには」を参照してください。

例 - プリンシパルを削除する (コマンド行)

次の例では、kadmindelete_principal コマンドを使用して、jdb プリンシパルを削除します。


kadmin: delete_principal pak
Are you sure you want to delete the principal "pak@ACME.COM"? (yes/no): yes
Principal "pak@ACME.COM" deleted.
Make sure that you have removed this principal from all ACLs before reusing.
kadmin: quit

新しいプリンシパルを作成するためのデフォルトを設定するには

この手順には、同等なコマンド行はありません。

  1. 必要であれば、SEAM ツールを起動します。

    詳細は、「SEAM ツールを起動するには」を参照してください。

  2. 「編集 (Edit)」メニューから「プロパティ (Properties)」を選択します。

    「プロパティ (Properties)」ウィンドウが表示されます。

    Graphic
  3. 新しいプリンシパルを作成する場合にはデフォルトを選択します。

    「ヘルプ (Help)」メニューから「コンテキストヘルプ (Context-Sensitive Help)」を選択すると、各ウィンドウにあるさまざまな属性についての情報を表示できます。

  4. 「保存 (Save)」をクリックします。

Kerberos 管理特権を変更するには

ユーザープリンシパルが多いサイトでも、通常、Kerberos データベースを管理できるユーザーは少数に制限します。Kerberos データベースを管理する特権は、Kerberos Access Control List (ACL) ファイル kadm5.acl(4) で指定します。kadm5.acl ファイルを使用すると、個々のプリンシパルに特権を許可または禁止できます。また、ワイルドカード「*」をプリンシパル名に使用すれば、プリンシパルのグループにも特権を指定できます。

  1. マスター KDC 上でスーパーユーザーになります。

  2. /etc/krb5/kadm5.acl ファイルを編集します。

    次に、kadm5.acl ファイル内のエントリの形式を示します。


    principal   privileges  [principal_target]

    principal

    特権が許可されるプリンシパル。プリンシパル名の任意の部分にはワイルドカード「*」を指定できる。これは、プリンシパルのグループに同じ特権を提供するときに便利である。たとえば、admin インスタンスを持つすべてのプリンシパルを指定したい場合、「*/admin@realm」を使用する。admin インスタンスの一般的な使い方は、別の Kerberos プリンシパルに別の特権 (Kerberos データベースへのアクセスの管理など) を許可することである。たとえば、ユーザー jdb は管理目的のプリンシパル jdb/admin を持つことができる。これによって、jdb は管理特権が必要なときだけ jdb/admin チケットを取得できる

    privileges

    プリンシパルが実行できる (あるいは、実行できない) 操作を指定する。privileges は次のリストにある 1 つまたは複数の文字からなる文字列である。文字が大文字の場合 (あるいは、文字を指定しなかった場合)、操作は許可されない。文字が小文字の場合、操作は許可される

     

    a

    プリンシパルまたはポリシーの追加を許可 (禁止) する 

     

    d

    プリンシパルまたはポリシーの削除を許可 (禁止) する 

     

    m

    プリンシパルまたはポリシーの変更を許可 (禁止) する 

     

    c

    プリンシパルのパスワードの変更を許可 (禁止) する 

     

    i

    データベースへの照会を許可 (禁止) する 

     

    l

    データベース内のプリンシパルまたはポリシーのリスト表示を許可 (禁止) する 

     

    x または *

    すべての特権を許可する (admcil)

    principal_target

    このフィールドにプリンシパルを指定したとき、principalprincipal_target に操作を行うときだけ、privilegesprincipal に適用される。プリンシパル名の任意の部分にはワイルドカード「*」を指定できる。これは、プリンシパルをグループにするときに便利である

例 - Kerberos 管理特権を変更する

次のエントリを kadm5.acl ファイルに指定すると、ACME.COM レルム内にある admin インスタンスを持つすべてのプリンシパルに、データベース上のすべての特権を許可します。


*/admin@ACME.COM *

次のエントリを kadm5.acl ファイルに指定すると、jdb@ACME.COM プリンシパルに、root インスタンスを持つ任意のプリンシパルを追加、リスト表示、および照会するための特権を許可します。


jdb@ACME.COM ali */root@ACME.COM