この節では、次のような場合の対応方法を説明します。
クライアント (ユーザー) が WBEM サーバー上の CIM Object Manager によって認証されない
WBEM サーバーが役割を引き受けない
ACCESS_DENIED エラーが発生する
WBEM サーバー上の CIM Object Manager によってクライアントが正しく認証されない場合、WBEM サーバーは、クライアントアプリケーションで CIM クライアントハンドルを確立しようとした時点で、CIM セキュリティ例外を返します。その例外には、認証の試行が失敗した理由を示すエラーコードが含まれています。
エラー |
考えられる原因 |
解決方法 |
---|---|---|
NO_SUCH_PRINCIPAL |
指定されたユーザー ID が WBEM サーバー上の Solaris オペレーティング環境で無効であるか、そのユーザーのユーザーアカウントがパスワードを持っていない、またはロックされている |
ユーザーが有効なユーザー ID を持っていることを確認する。つまり、ユーザーが、WBEM サーバーマシン上の Solaris オペレーティング環境にログインできることを確かめる。WBEM サーバーとして設定された Solaris システムはサーバー上に構成されたネームサービスから取得したユーザー ID を使用していることが考えられるので、ネームサービスのテーブルを確認する必要があるかもしれない |
INVALID_CREDENTIAL |
指定されたユーザー (または、役割 ID を引き受けている場合は、役割) のパスワードが、WBEM サーバー上の Solaris オペレーティング環境内の該当ユーザーに対して無効である |
ユーザーのパスワードが正しいかどうか確認する |
NO_SUCH_ROLE |
WBEM サーバーに対する認証で引き受けられた役割 ID が、WBEM サーバー上の Solaris オペレーティング環境で有効な RBAC 役割ではない |
役割 ID は、サーバー上の passwd テーブル内の有効な項目かもしれないが、その ID ではサーバーにログインできない (Solaris では、役割 ID で直接ログインすることはできない)。したがって、passwd テーブルで役割 ID を確認し、user_attr テーブルを確認してその役割がユーザーの役割の種類として定義されていることを確認する。user_attr テーブル内の役割 ID には、それぞれ、type=role という構文の属性が含まれている あるいは、Solaris Management Console のユーザーツールを使って、有効なユーザーまたは有効な役割 ID を確認することもできる。ユーザーアカウントツールではユーザーの確認、管理役割ツールでは役割の確認ができる。ただし、ユーザーツールを使用するときには、CIM Object Manager サーバー上のテーブルの正しいソースを知っていなければならない。つまり、CIM Object Manager サーバーが NIS などのネームサービスを使用している場合は、そのネームサービスのマスターサーバーにアクセスしなければならない |
CANNOT_ASSUME_ROLE |
役割 ID は有効だが、認証交換で指定されたユーザー ID は、その役割を引き受けるように構成されていない |
Solaris Management Console ユーザーツールコレクションに含まれている管理役割ツールを使って、ユーザーに役割を明示的に割り当てる。ツールについては、『Solaris のシステム管理 (セキュリティサービス)』の「役割プロパティの変更」を参照 |
WBEM サーバーは、その他のエラーインジケーションを CIM セキュリティ例外に入れて返すことがあります。しかし、これらのインジケーションの多くは、認証交換におけるシステム障害を示すものです。認証交換のセキュリティオプションについて、WBEM クライアントの構成が WBEM サーバーの構成と互換性がない可能性が考えられます。
これらのエラーインジケーションが発生した場合は、クライアントマシン上の WBEM インストールで、WbemClient.properties にセキュリティの適切な構成プロパティ値が入っているかどうか確認します。このファイルは通常、WBEM のインストールディレクトリ内のベンダー拡張サブディレクトリ /usr/sadm/lib/wbem/extension にあります。
さらに、クライアントアプリケーションの CLASSPATH の設定を確認して、sunwbem.jar と拡張ディレクトリのパス名がクラスパス上にあることを確認します。
WBEM サーバーに対する要求に関連したデータをアクセスまたは変更することについてクライアントが承認されていない場合、WBEM サーバーは、ACCESS_DENIED エラーの含まれた CIM セキュリティ例外をその要求に対して返します。
ACCESS_DENIED エラーは、認証されたユーザーまたは役割が、その要求によって管理されているデータに対する適切なアクセス権を許可されていないため、WBEM 要求が完了できなかったことを示します。
WBEM ログのセキュリティメッセージから、失敗した要求のメッセージを見つけます (ログデータを調べる方法については、 「ログビューアを使ってログデータを調べる」を参照してください)。承認障害のログメッセージは、「概要 (Summary)」列に「アクセスを拒否しました (Access denied)」と示されています。「ユーザー (User)」列には、検査に使用された認証されたユーザーまたは役割の名前が表示されます。「ソース (Source)」列には、検査を実行しているプロバイダの名前が表示されます。この列に表示されるプロバイダ名は、プロバイダ実装のクラス名ではなく、ユーザーにわかりやすい名前です。
詳細なメッセージの中に、検査されているアクセス権の名前や、ユーザーまたは役割に許可されていなかったアクセス権の名前が含まれています。
アクセス権が「namespace:right」という形式で表示されている場合、承認検査ではネームスペース ACL が使用されたことを示します。認証されたユーザーは、そのネームスペースに対してそのアクセス権 (読み取りまたは書き込み) を許可されていません。
Sun WBEM User Manager (wbemadmin) を使用して、ユーザーに適切なアクセス権を許可してください。Sun WBEM User Manager については、「Sun WBEM User Manager を使ってアクセス制御を設定する」を参照してください。
アクセス権が「solaris.application.right」という形式で表示されている場合、承認検査では RBAC 承認が使用されました。
Solaris Management Console ユーザーツールコレクションに含まれている管理役割ツールを使って、ユーザーまたは役割に必要なアクセス権を許可してください。この手順については、『Solaris のシステム管理 (セキュリティサービス)』の「役割プロパティの変更」を参照してください。