BigAdmin System Administration Portal
特集記事:Solaris OS での Sun Java System Identity Manager と RBAC プロファイルの併用
Print-friendly VersionPrint-friendly Version

Solaris OS での Sun Java System Identity Manager と RBAC プロファイルの併用

Scott Fehrman 著、2005 年 8 月


概要

Sun Java System Identity Manager は Resource Adapter を使用して、Solaris オペレーティングシステムを実行するシステム上でアカウントを作成、変更および削除します。Identity Manager Resource Adapter は、ユーザー管理作業を実行できるアクセス権を持つユーザーを使用して構成する必要があります。Solaris OS 用の Resource Adapter は、root アカウント、sudo ユーティリティー、または「特権」ユーザーアカウントを使用できます。

多くのお客様は、Identity Manager が、root アカウントを持つユーザーを管理することを許可しません。sudo 機能を使用するには、Solaris OS 上でインストールと構成を行う必要があります(sudo は、Sun がサポートしてない Companion CD のユーティリティー)。「プロキシ」または「特権」アカウントを作成することは、特定のユーザーにきめ細かいアクセス権を付与する安全な手段になります。Solaris OS には、個別のユーザーまたは役割に特権コマンドを委任するための組み込みメカニズムがあります。

この記事では、Identity Manager を使用して Solaris OS (リリース 9 および 10) を構成し、特権プロファイルを使用して Solaris OS 用の Identity Manager Resource Adapter を介してユーザーアカウントを作成、変更、および削除する方法について説明します。

RBAC およびプロファイル

Solaris OS には、管理作業を委任するための、役割によるアクセス制御 (RBAC) が用意されています。root アカウントの代わりに RBAC を使用してユーザーを管理できます。また、RBAC は、Solaris の機能としてはサポートされてない sudo ユーティリティーの代わりにもなります。この記事では、プロファイルと呼ばれる RBAC のコンポーネントについて説明します。所定のプロファイルにより、実行できる特権コマンドが定義されます。ユーザー/役割にプロファイルを割り当てることができます。

Solaris OS のプロファイルは、ユーザーを su コマンドである役割に切り替える、または「プロファイルシェル」で特権コマンドを実行させることにより有効になります。Solaris OS には、次の 3 つの異なるプロファイルシェルが用意されています。

/usr/bin/pfsh
/usr/bin/pfcsh
/usr/bin/pfksh

プロファイルの使用法

プロファイルシェルで特権コマンドを実行するには 2 つの方法があります。

プロファイルシェルの 1 つを /etc/passwd のデフォルトログインシェルとして割り当てることにより、ユーザーまたは役割はプロファイルシェルに自動的に配置されます。次の例は、ユーザー idmadm が自動的に特権コマンドを実行できることを示していますが、これはこのユーザーが /usr/bin/pfksh シェルを持っているためです。

$ grep idmadm /etc/passwd
idmadm:x:23734:1:IdMgr Admin:/export/home/idmadm:/usr/bin/pfksh

プロファイルで特権コマンドの実行が許可されているユーザーは、非プロファイルシェル (cshkshbash など) を使用できます。プロファイルコマンドは pfexec コマンドとともに実行されます。

-bash-3.00$ pfexec useradd johndoe ...

この記事では、ユーザーアカウントの管理が許可されるプロキシ (または特権) ユーザーの作成方法を説明します。プロキシユーザー idmadm は、Identity Manager の Resource Adapter により必要とされるコマンドを実行できる「Identity Management」と呼ばれるカスタム Solaris プロファイルに割り当てられます。


RBAC プロファイルを設定する

Identity Manager の Resource Adapter により必要とされるコマンドを実行できるプロファイルを設定します。新しいプロファイルを作成するには、root アクセス権が必要です。

/etc/security/prof_attr ファイル内にまだ存在していないプロファイルの名前を作成します。この例では「Identity Management」という名前のプロファイルを使用します。変更を行う前に、オリジナルファイル exec_attr および prof_attr のコピーを作成します。root として、次のコマンドを使用します。

# cp /etc/security/exec_attr /etc/security/exec_attr.orig
# cp /etc/security/prof_attr /etc/security/prof_attr.orig

root として、/etc/security/prof_attr ファイルの末尾に次の行を追加します。

Identity Management:::Sun Identity Manager Profile:

この行を追加することで、「Identity Management」という名前の新しいプロファイルが定義されます。フィールド 2 および 3 は予約済みで、4 番目のフィールドはコメントです。最後のフィールドはオプションをサポートしてます。root として、/etc/security/exec_attr ファイルの末尾に次の行を追加します。

注: ファイルエントリの 2 番目のフィールドは、Solaris 9 OS と Solaris 10 OS では異なります。2 番目のフィールドは、プロファイルに関連付けられるポリシーを定義します。Solaris 9 OS では、使用できる唯一のポリシーは suser です。Solaris 10 OS では、このポリシーは solaris である必要があります。

Solaris 9 OS では、次のエントリを使用します。

Identity Management:suser:cmd:::/usr/sbin/useradd:uid=0
Identity Management:suser:cmd:::/usr/sbin/userdel:uid=0
Identity Management:suser:cmd:::/usr/sbin/usermod:uid=0
Identity Management:suser:cmd:::/usr/sbin/groupadd:uid=0
Identity Management:suser:cmd:::/usr/sbin/groupdel:uid=0
Identity Management:suser:cmd:::/usr/sbin/groupmod:uid=0
Identity Management:suser:cmd:::/usr/bin/logins:uid=0;gid=bin
Identity Management:suser:cmd:::/usr/bin/which:uid=0;gid=bin
Identity Management:suser:cmd:::/usr/bin/passwd:uid=0
Identity Management:suser:cmd:::/usr/ccs/bin/make:uid=0
Identity Management:suser:cmd:::/usr/bin/yppasswd:uid=0
Identity Management:suser:cmd:::/usr/bin/chmod:uid=0
Identity Management:suser:cmd:::/usr/bin/chown:uid=0
Identity Management:suser:cmd:::/usr/bin/cp:uid=0
Identity Management:suser:cmd:::/usr/bin/mv:uid=0
Identity Management:suser:cmd:::/usr/bin/rm:uid=0
Identity Management:suser:cmd:::/usr/bin/sed:uid=0
Identity Management:suser:cmd:::/usr/bin/touch:uid=0

Solaris 10 OS では、次のエントリを使用します。

Identity Management:solaris:cmd:::/usr/sbin/useradd:uid=0
Identity Management:solaris:cmd:::/usr/sbin/userdel:uid=0
Identity Management:solaris:cmd:::/usr/sbin/usermod:uid=0
Identity Management:solaris:cmd:::/usr/sbin/groupadd:uid=0
Identity Management:solaris:cmd:::/usr/sbin/groupdel:uid=0
Identity Management:solaris:cmd:::/usr/sbin/groupmod:uid=0
Identity Management:solaris:cmd:::/usr/bin/logins:uid=0;gid=bin
Identity Management:solaris:cmd:::/usr/bin/which:uid=0;gid=bin
Identity Management:solaris:cmd:::/usr/bin/passwd:uid=0
Identity Management:solaris:cmd:::/usr/ccs/bin/make:uid=0
Identity Management:solaris:cmd:::/usr/bin/yppasswd:uid=0
Identity Management:solaris:cmd:::/usr/bin/chmod:uid=0
Identity Management:solaris:cmd:::/usr/bin/chown:uid=0
Identity Management:solaris:cmd:::/usr/bin/cp:uid=0
Identity Management:solaris:cmd:::/usr/bin/mv:uid=0
Identity Management:solaris:cmd:::/usr/bin/rm:uid=0
Identity Management:solaris:cmd:::/usr/bin/sed:uid=0
Identity Management:solaris:cmd:::/usr/bin/touch:uid=0

次の表 (表 1) に、Identity Manager の Solaris Resource Adapter により必要とされる Solaris コマンドを示します。これらのコマンドはすべて、アクセス権エラーを起こすことなく、Identity Manager Proxy User により実行可能である必要があります。

Solaris Resource Adapter により必要される Solaris コマンド
コマンド
説明
useradd
新規ユーザーのログインを管理します。
userdel
ユーザーのログインを削除します。
usermod
ユーザーのログイン情報を変更します。
groupadd
新しいグループ定義を追加 (作成) します。
groupdel
グループ定義を削除します。
groupmod
グループ定義を変更します。
logins
ユーザーおよびシステムのログイン情報を一覧表示します。
which
コマンドの場所を特定します (パス名または別名を表示)。
passwd
ログインパスワードおよびパスワード属性を変更します。
make
関連するプログラムおよびファイルを維持、更新、および再生成します。
yppasswd
NIS データベース内のネットワークパスワードを変更します。
chmod
ファイルのモード (アクセス権) を変更します。
chown
ファイルの所有者を変更します。
cp
ファイル (複数可) をコピーします。
mv
ファイルの名前を変更するか、別のディレクトリに移動します。
rm
ファイルを削除します。
sed
ストリームエディタ。
touch
ファイルの時刻/日付のスタンプを更新します。
 

注: 上記の表 (およびプロファイル) 内にあるコマンドには、プロファイルに追加する必要のないものもあります。これらのコマンドが「Identity Management」プロファイルに含まれているのは、追加の特権を必要とするファイルにアクセスするため、または既知のアクセス権の問題のためです。このようなコマンドには loginswhich があります。

そのほかのコマンドは Identity Manager の Resource Adapter プロキシユーザーにより使用されます。これらのコマンドは特別な特権を必要とせず、プロファイルに追加する必要はありません。セキュリティー上の理由により、プロファイルには特権コマンドのみを追加することをお勧めします。参考のために、これらの (非特権) コマンドを、次の表 (表 2) に示します。

非特権コマンド
コマンド
説明
auths
ユーザーに付与されている許可を出力します。
last
ユーザーに関するログインおよびログアウト情報を表示します。
listusers
ユーザーのログイン情報を一覧表示します。
profiles
ユーザーの実行プロファイルを出力します。
roles
ユーザーに付与されている役割を出力します。
ypcat
NIS データベース内の値を出力します。
ypmatch
NIS マップから 1 つまた複数のキーの値を出力します。
awk
パターンスキャニングおよび処理用の言語。
cat
ファイルを連結および表示します。
cut
ファイルの各行の選択されたフィールドを切り取ります。
diff
2 つのファイルを比較します。
echo
echo 引数。
grep
ファイルでパターンを検索します。
ls
ディレクトリのリスト内容。
sleep
ある期間実行を一時停止します。
sort
テキストファイルのソート、マージ、シーケンスチェックを行います。
tail
ファイルの最後の部分を提供します。
 


プロキシユーザーを作成する

Identity Manager により使用されるプロキシまたは特権ユーザーを作成します。root ユーザーとして Solaris システムにログインします。idmadm アカウントを作成し、そのパスワードを設定します。環境に合うよう、必要に応じて「Home Directory」パス名を変更します。

login:root
password: ******
# useradd -c "Identity Manager proxy user" -d /export/home/idmadm
-m -s /usr/bin/pfksh -P "Identity Management" idmadm

# passwd idmadm
New Password:idmadm
Re-enter new password:idmadm
passwd:password successfully changed for idmadm

idmadm ユーザーのホームディレクトリで、次のファイルを作成します。

$ vi /export/home/idmadm/.profile

	EDITOR=emacs; export EDITOR
	PATH=/usr/bin:/usr/sbin; export PATH

プロキシユーザーをテストする

特権ユーザーアカウントをテストします。システムにログインし、テストユーザーを対話型で作成します。

login:idmadm
password: ******

$ which logins
/usr/bin/logins

$ logins
root        0       root        0       Super-User
daemon      1       other       1       
bin         2       bin         2       
sys         3       sys         3       
adm         4       adm         4       Admin
uucp        5       uucp        5       uucp Admin
nuucp       9       nuucp       9       uucp Admin
smmsp       25      smmsp       25      SendMail Program
listen      37      adm         4       Network Admin
gdm         50      gdm         50      GDM Reserved UID
lp          71      lp          8       Line Printer Admin
webservd    80      webservd    80      WebServer Reserved UID
mysql       23732   mysql       100     MySQL
idmadm      23739   other       1       Identity Manager proxy user
nobody      60001   nobody      60001   NFS Anonymous Access User
noaccess    60002   noaccess    60002   No Access User
nobody4     65534   nogroup     65534   SunOS 4.x NFS Anon Access User

$ groupadd idmgrp

$ grep idmgrp /etc/group
idmgrp::101:

$ useradd -c "test user 1" -d /export/home/user1 -g idmgrp
-m -s /usr/bin/csh  user1


$ grep user1 /etc/passwd
user1:x:23734:1:user1:/export/home/user1:/usr/bin/csh

$ ls -l /export/home/user1
total 4
drwxr-xr-x   2 user1    other        512 Feb 26 09:31 .
drwxr-xr-x   8 root     root         512 Feb 28 15:38 ..

$ usermod -s /usr/bin/bash user1
$ grep user1 /etc/passwd
user1:x:23734:1:user1:/export/home/user1:/usr/bin/bash

$ passwd user1
New Password:password 
Re-enter new Password:password 
passwd:password successfully changed for user1

$ telnet localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
login:user1
Password:password 
Sun Microsystems Inc.   SunOS 5.10      s10_74  December 2004
-bash-3.00$ id
uid=23735(user1) gid=101(idmgrp)
-bash-3.00$ exit

$ userdel user1
$ grep user1 /etc/passwd

$ groupdel idmgrp
$ grep idmgrp /etc/group

Identity Manager Resource Adapter を構成する

プロキシ (特権) ユーザーを使用するために Identity Manager の Solaris Resource Adapter を設定します。「configurator」として、またはリソースアダプタを構成できる別のユーザーとして Identity Manager にログインします。

「Configure」、「Manage Resources」タブの順に選択し、「Solaris Resource Type」が選択されていることを確認します。選択されていない場合は、選択してから「Save」を押します。

「Resources」タブを選択します。「New Resource ...」というラベルのドロップダウンボタンを選択し、Solaris オプションを選択します。「Next」ボタンを選択して継続します。この例では、Solaris OS との通信に Telnet が使用されています。SSH を構成して、Solaris OS と Identity Manager との間の通信をセキュリティー保護することができます。

Create Solaris Resource Wizard の最初のページで、情報をすべて入力します。次の表 3 に示すオプションを使用します。

Create Solaris Resource Wizard (ページ 1)
フィールド
Host:
localhost
Login User:
idmadm
password:
idmadm
Login Shell Prompt:
$
Make Directory:
TRUE
 

フォームに情報を入力した後、「Test Connection」ボタンを選択して、Identity Manager が Solaris OS と通信できることを確認します。テストが成功した場合、ページが更新され、ステータスメッセージが表示されます (次の図 1 を参照)。

図 1
(クリックして拡大)
図 1: Resource Parameters (1/4 ページ)

「Test Connection」が失敗した場合 (赤いテキストで示される)、(このドキュメントの「プロキシユーザーをテストする」セクションの) すべてのコマンドがエラーなく完了したことを確認します。続いて、フォームに入力された値を再度チェックします。

ページの最下部にある「Next」ボタンを押します。

Create Solaris Resource Wizard の 2 番目のページ (2/4 ページ目) では、Identity Manager と Solaris OS との間でマッピングされるアカウント属性を定義しします。この例では、Authorizations 属性を削除しています (図 2 を参照)。

図 2
(クリックして拡大)
図 2: Account Attributes (2/4 ページ)

ページの最下部にある「Next」ボタンを押して、継続します。

Create Solaris Resource Wizard の 3 番目のページ (3/4 ページ) では、Identity Template を定義します。この例では、変更を行う必要はありません (図 3 を参照)。

図 3
(クリックして拡大)
図 3: Identity Template (3/4 ページ)

ページの最下部にある「Next」ボタンを押して、継続します。

Create Solaris Resource Wizard の最後のページ (4/4 ページ) では、Identity Manager Parameters を定義します。次の表に示すオプションを使用します。

Create Solaris Resource Wizard (ページ 4)
フィールド
Resource Name:
<<Unique Name>>
Display Name:
説明
Exclude Accounts Rule:
Unix Exclude Resource Accounts
 

図 4 の例を参照してください。

図 4
(クリックして拡大)
図 4: Account Attributes (4/4 ページ)

「Save」ボタンを選択して Resource Wizard を終了します。これで Solaris Resource が使用できるようになりました。Administrative Interface で新しいユーザーを作成することで、Solaris Resource をテストします。

新しい Solaris Resource 用に Identity Manager Reconciliation Policy を作成します。リソースに対して完全な調整を実行して、Solaris システムと Identity Manager との間で ID を同期させます。


著者紹介

Scott Fehrman は、Sun Microsystems, Inc. の Identity Management Practice のシステムエンジニアです。

BigAdmin
  
 
 
 
Would you recommend this Sun site to a friend or colleague?
Contact About Sun News & Events Employment Site Map Privacy Terms of Use Trademarks Copyright Sun Microsystems, Inc.