Solaris WBEM Services の管理

第 4 章 セキュリティの管理 (手順)

この章では、WBEM のセキュリティ機構と、CIM Object Manager の機能について説明します。

この章の内容は以下のとおりです。

WBEM のセキュリティ機構

WBEM は、そのデータへのセキュリティ保護されたアクセスを確保するために、次のようないくつかの機構を採用しています。

ここに挙げたそれぞれの機構について、このあと詳しく説明します。

認証

クライアントアプリケーションが CIM Object Manager サーバーに接続するときには、クライアントのユーザー ID が、WBEM サーバー上の CIM Object Manager によって認証されなければなりません。ユーザーの WBEM クライアントは、Solaris ユーザー ID と、それに伴うログインパスワードを提供する必要があります。その ID および資格は、クライアントと WBEM サーバーの間のセキュリティ認証交換で使用されて、クライアントが、WBEM サーバーシステムへのログインを許可された有効な Solaris ユーザーであることが確認されます。

WBEM サーバーがユーザーの ID および資格を検証できない場合、ユーザーの ID が無効である場合、WBEM サーバーは NO_SUCH_PRINCIPAL エラーの入った CIM セキュリティ例外を返します。

WBEM サーバーがユーザーの ID および資格を検証できない場合、ユーザーのパスワードがそのユーザーの ID に対して無効である場合、WBEM サーバーは INVALID_CREDENTIAL エラーの入った CIM セキュリティ例外を返します。

役割の引き受け

役割 ID を引き受けられるのは、WBEM ユーザーが Remote Method Invocation (RMI) プロトコルを選択した場合だけです。役割の引き受けは、XML/HTTP プロトコルではサポートされません。

WBEM の Solaris 実装は、クライアントが WBEM サーバー上の CIM Object Manager によって認証された場合に、クライアントが Solaris の役割の ID を引き受ける機能をサポートします。WBEM サーバーが RBAC 承認を使用してアクセス権の承認を検査する時、WBEM サーバーは、ユーザー ID 自身に許可されたアクセス権ではなく、引き受けた役割に許可されたアクセス権を検査します。

RBAC の役割については、『Solaris のシステム管理 (セキュリティサービス)』の「役割によるアクセス制御 (概要)」を参照してください。

クライアントは、接続しようとするときに、Solaris のユーザー ID とパスワードに加えて、Solaris の役割 ID とパスワードを入力する必要があります。

WBEM サーバーが Solaris の役割 ID を検証できない場合、WBEM サーバーは、 NO_SUCH_ROLE エラーの入った CIM セキュリティ例外を返します。

引き受けた役割 ID に対して役割のパスワードが無効な場合、WBEM サーバーは、INVALID_CREDENTIAL エラーの入った CIM セキュリティ例外を返します。

役割 ID とパスワードがどちらも有効な場合でも、そのユーザーが役割を引き受けることを許可されていない場合は、WBEM サーバーは、 CANNOT_ASSUME_ROLE エラーの入った CIM セキュリティ例外を返します。

セキュリティ保護されたメッセージング

CIM RMI プロトコルでは、クライアントから WBEM サーバーへの各要求に、メッセージ内のデータパラメータから構築されたメッセージオーセンティケータが含まれています。さらに、一方向ダイジェストも作成され、認証交換の間に確立されたセッションキーもいっしょに作成されます。

WBEM サーバーは、このメッセージオーセンティケータを検証します。オーセンティケータは、認証された同じクライアントから要求が来たことを保証し、メッセージがサーバーまで通信される間に変更されたり再送信されたりしていないことを保証するものです。

メッセージが、変更または再送信されたものである場合、あるいは送信元のクライアントではないところで作成されたものである場合は、WBEM サーバーは、CHECKSUM_ERROR エラーの入った CIM セキュリティ例外を返します。さらに、WBEM サーバーは、ログメッセージを WBEM ログに書き込みます。

承認

WBEM サーバーが接続したあとは、WBEM サーバーは CIM クライアントとのそれ以降の操作におけるすべての承認検査について、認証されたユーザーまたは役割 ID を使用します。

WBEM は、次のものに基づく 2 種類の承認検査をサポートします。

WBEM がどの承認検査機構を使用するかは、MOF クラスプロバイダがどのように実装されているかに応じて決まります。特定の MOF クラス操作について WBEM がどの承認検査機構を使用するかは、次のものに応じて決まります。

Solaris_Acl1.0.mof で定義されているクラスは、WBEM の ACL ベースのセキュリティを実装します。WBEM の ACL ベースのセキュリティは、Solaris WBEM Services に対してデフォルト承認スキーマを提供し、また、特定の状況下では、CIM 操作の特定のセットに適用されます。ACL ベースのセキュリティは、Solaris WBEM Services によって提供される固有の機能です。

WBEM サーバー上の特定のネームスペースについて ACL を確立するには、Sun WBEM User Manager (wbemadmin) を使用します。Sun WBEM User Manager では、ネームスペースについての ACL にユーザー名または役割名を追加したり、各ユーザーに「読み取り」または「書き込み」アクセス権を割り当てたりできます。Sun WBEM User Manager については、「Sun WBEM User Manager を使ってアクセス制御を設定する」 および wbemadmin(1M) のマニュアルページを参照してください。

書き込みアクセス権のあるユーザーは、クラスのメタデータの変更、そのネームスペースにある MOF クラスのインスタンスの変更、およびインスタンスに対する呼び出しメソッドの発行が可能です。ローカル WBEM サーバーの root ユーザー ID には、いつでも、サーバー上のネームスペースすべてに対する書き込みアクセス権が許可されます。明示的な ACL 項目のない、すべての認証されたユーザーには、デフォルトで読み取りアクセス権が許可されます。

MOF クラスのメタデータのアクセスを含む操作 (たとえば、getClass) は、WBEM の ACL を使用します。これらの操作には、認証されたユーザーに、MOF クラスを含むネームスペースについての ACL によって許可されたアクセス権の検査が含まれます。ACL 項目に RBAC の役割を設定することもできますが、ACL 項目はいつもユーザー ID に対して検査され、役割 ID に対しては検査されません。つまり、ACL に役割名を設定することはできますが、CIM Object Manager は実行時にその役割名を検査しないということです。

MOF クラスのインスタンスが関係する操作には、WBEM ACL か RBAC 承認のいずれかの検査が含まれる可能性があります。

また、ユーザー、または役割 ID にアクセス権を許可して、プロバイダが RBAC 承認を使用している MOF クラスのインスタンスをそのユーザーがアクセスおよび変更できるようにすることもできます。これらのアクセス権を許可するには、Solaris Management Console のユーザーツールに含まれる権利ツールを使用します。ユーザーへのアクセス権の許可については、『Solaris のシステム管理 (セキュリティサービス)』の「権利プロファイルの作成または変更」を参照してください。

MOF クラスのインスタンスが WBEM の永続的なデータストアに格納されている場合、CIM Object Manager は、その MOF クラスを含むネームスペースについての WBEM ACL を検査します。MOF クラスプロバイダの実装がプロバイダのデータストアにアクセスする場合、または Solaris オペレーティング環境のシステムデータにアクセスする場合は、MOF クラスプロバイダの実装は、ほぼ必ず RBAC 承認検査を使用します。

一般に、MOF クラス定義にプロバイダ修飾子が含まれている場合、プロバイダの実装は通常、RBAC 承認検査を行います。MOF クラス定義にプロバイダ修飾子が含まれていない場合、CIM Object Manager は、次のことを行います。

監査

WBEM サーバーは、処理中に特定のイベントについて監査レコードを書き込みます。たとえば、クライアントの認証が成功または失敗したとき、およびユーザー情報を変更する操作が実行されたときにはいつでも、WBEM サーバーは監査レコードを書き込みます。

WBEM サーバーは、基本となる Solaris Basic Security Module (BSM) を使用して監査レコードを書き込みます。監査情報が確実に記録されるようにするには、WBEM サーバー上の Solaris オペレーティング環境で BSM の監査機構 (bsmconv) を有効にする必要があります。 bsmconv コマンドについては、bsmconv(1M) のマニュアルページを参照してください。


注 -

Trusted SolarisTM を使用している場合は、BSM の監査機構を有効にする必要はありません。


ロギング

WBEM サーバーは、特定のセキュリティイベントについて WBEM ログにログレコードを書き込みます。たとえば、クライアントに対する認証されたセッションが確立されたときや、承認検査が失敗したときなどです。WBEM ログは、Solaris Management Console のログビューアで調べることができます。ログビューアについては、第 5 章「システムログデータの表示 (手順)」を参照してください。

セキュリティ関連のログイベントは、カテゴリが「セキュリティ (Security)」のログによって見分けることができます。カテゴリは、「カテゴリ (Category)」列に表示されます。セキュリティ関連のログメッセージだけを表示するには、ログビューアのログフィルタダイアログボックスで「セキュリティ (Security)」というカテゴリを選択します。ほとんどのセキュリティログメッセージには、クライアントのユーザー ID とクライアントホストの名前が含まれています。

Sun WBEM User Manager を使ってアクセス制御を設定する

Sun WBEM User Manager (wbemadmin) では、ユーザー自身 や、特権を持つその他のユーザーが、次の操作を実行できます。


注 -

アクセス制御を指定するユーザーは、Solaris ユーザーアカウントを持っていなければなりません。


Sun WBEM User Manager で実行できることと実行できないこと

アクセス特権は、個々のネームスペース、またはユーザーとネームスペースの組み合わせに対して設定できます。ユーザーを追加し、ネームスペースを選択すると、そのユーザーには、選択したネームスペース内の CIM オブジェクトに対する読み取り権がデフォルトで許可されます。


注 -

ユーザーとネームスペースのアクセス権を効率的に組み合わせるには、まずネームスペースへのアクセスを制限してから、個々のユーザーにそのネームスペースに対する読み取り権、読み取り/書き込み権、または書き込み権を許可するようにします。


個々の管理対象オブジェクトにアクセス権を設定することはできません。しかし、あるネームスペース内のすべての管理対象オブジェクトにアクセス権を設定したり、ユーザーごとにアクセス権を設定したりすることはできます。

root としてログインすると、CIM オブジェクトに対して次のような種類のアクセス権を設定できます。

Sun WBEM User Manager の使用 (作業マップ)

次の表は、Sun WBEM User Manager を起動および使用するための手順を示しています。

作業 

説明 

参照先 

Sun WBEM User Manager を起動する 

wbemadmin コマンドを使って Sun WBEM User Manager を起動する

“Sun WBEM User Manager を起動する方法”

ユーザーにデフォルトのアクセス権を許可する 

Sun WBEM User Manager のユーザーアクセスツールを使用して、ユーザーにデフォルトのアクセス権を許可する 

“ユーザーにデフォルトのアクセス権を許可する方法”

ユーザーのアクセス権を変更する 

Sun WBEM User Manager の「読み込み (Read)」および「書き込み (Write)」チェックボックスを使用して、ユーザーのアクセス権を変更する 

“ユーザーのアクセス権を変更する方法”

ユーザーのアクセス権を削除する 

Sun WBEM User Manager のユーザーアクセスツールを使用して、ユーザーのアクセス権を削除する 

“ユーザーのアクセス権を削除する方法”

ネームスペースのアクセス権を設定する 

Sun WBEM User Manager のネームスペースへのアクセスツールを使用して、ネームスペースのアクセス権を設定する 

“ネームスペースのアクセス権を設定する方法”

ネームスペースのアクセス権を削除する 

Sun WBEM User Manager のネームスペースへのアクセスツールを使用して、ネームスペースのアクセス権を削除する 

“ネームスペースのアクセス権を削除する方法”

Sun WBEM User Manager の使用方法

この節では、Sun WBEM User Manager を起動して使用する方法を説明します。

Sun WBEM User Manager を起動する方法
  1. スーパーユーザーになります。

  2. コマンドウィンドウで、次のように入力します。


    # /usr/sadm/bin/wbemadmin
    

    Sun WBEM User Manager が起動し、「ログイン (Login)」ダイアログボックスが表示されます。


    注 -

    「ログイン (Login)」ダイアログボックスのいずれかのフィールドをクリックすると、そのコンテキストヘルプ情報が「コンテキストヘルプ (Context Help)」パネルに表示されます。


  3. 「ログイン (Login)」ダイアログボックスの各フィールドに情報を入力します。

    1. 「ユーザー名 (User Name)」フィールドに、ユーザー名を入力します。


      注 -

      ログインするには、root\security ネームスペースに対する読み取り権が必要です。デフォルトでは、Solaris ユーザーはゲスト特権を持っているため、デフォルトのネームスペースに対する読み取り権が許可されています。読み取り権を持つユーザーは、ユーザー特権を表示することはできますが、変更することはできません。

      ユーザーにアクセス権を許可するためには、root としてログインするか、root\security ネームスペースに対する書き込み権を持つユーザーとしてログインする必要があります。


    2. 「パスワード (Password)」フィールドに、ユーザーアカウントのパスワードを入力します。

  4. 「了解 (OK)」をクリックします。

    「User Manager」ダイアログボックスが開きます。このダイアログボックスには、ユーザー名と、現在のホスト上のネームスペース内の WBEM オブジェクトに対するアクセス権の一覧が表示されます。

ユーザーにデフォルトのアクセス権を許可する方法
  1. Sun WBEM User Manager を起動します。

  2. ダイアログボックスの「ユーザーアクセス (Users Access)」の部分で、「追加 (Add)」をクリックします。

    使用できるネームスペースの一覧を表示したダイアログボックスが開きます。

  3. 「ユーザー名 (User Name)」フィールドに、Solaris ユーザーアカウントの名前を入力します。

  4. 表示されたネームスペースの中からネームスペースを 1 つ選択します。

  5. 「了解 (OK)」をクリックします。

    このユーザー名が「User Manager」ダイアログボックスに追加されます。

  6. 変更を保存し、「User Manager」ダイアログボックスを閉じるには、「了解 (OK)」をクリックします。変更を保存し、ダイアログボックスを開いたままにするには、「適用 (Apply)」をクリックします。

    指定したユーザーに、選択したネームスペース内の CIM オブジェクトに対する読み取りアクセス権が許可されます。

ユーザーのアクセス権を変更する方法
  1. Sun WBEM User Manager を起動します。

  2. アクセス権を変更するユーザーを選択します。

  3. ユーザーに読み取りのみのアクセス権を許可するには、「読み取り (Read)」チェックボックスをクリックします。ユーザーに書き込み権を許可するには、「書き込み (Write)」チェックボックスをクリックします。

  4. 変更を保存し、「User Manager」ダイアログボックスを閉じるには、「了解 (OK)」をクリックします。変更を保存し、ダイアログボックスを開いたままにするには、「適用 (Apply)」をクリックします。

ユーザーのアクセス権を削除する方法
  1. Sun WBEM User Manager を起動します。

  2. ダイアログボックスの「ユーザーアクセス (Users Access)」の部分で、アクセス権を削除するユーザー名を選択します。

  3. ネームスペースに対するこのユーザーのアクセス権を削除するために、「削除 (Delete)」をクリックします。

    確認を求めるダイアログボックスが開きます。このダイアログボックスでは、ユーザーのアクセス権を本当に削除してよいかどうか確認を求められます。

  4. 削除を確定するには、「了解 (OK)」をクリックします。

  5. 変更を保存し、「User Manager」ダイアログボックスを閉じるには、「了解 (OK)」をクリックします。変更を保存し、ダイアログボックスを開いたままにするには、「適用 (Apply)」をクリックします。

ネームスペースのアクセス権を設定する方法
  1. Sun WBEM User Manager を起動します。

  2. ダイアログボックスの「ネームスペースへのアクセス (Namespace Access)」の部分で、「追加 (Add)」をクリックします。

    ダイアログボックスが開きます。このダイアログボックスには、使用可能なネームスペースの一覧が表示されます。

  3. アクセス権を設定するネームスペースを選択します。


    注 -

    デフォルトでは、ネームスペースに対する読み取り権のみがユーザーに許可されます。


    • ネームスペースに対してアクセス権をまったく許可しない場合は、「読み取り (Read)」および「書き込み (Write)」の各チェックボックスをどちらも選択しません。

    • 書き込み権を許可する場合は、「書き込み (Write)」チェックボックスをクリックします。

    • 読み取り権を許可する場合は、「読み取り (Read)」チェックボックスをクリックします。

  4. 変更を保存し、「User Manager」ダイアログボックスを閉じるには、「了解 (OK)」をクリックします。変更を保存し、ダイアログボックスを開いたままにするには、「適用 (Apply)」をクリックします。

ネームスペースのアクセス権を削除する方法
  1. Sun WBEM User Manager を起動します。

  2. ダイアログボックスの「ネームスペースへのアクセス (Namespace Access)」の部分で、アクセス制御を削除するネームスペースを選択して、「削除 (Delete」をクリックします。

    ネームスペースからアクセス制御が削除され、「Sun WBEM User Manager」ダイアログボックスのネームスペースの一覧からそのネームスペースが削除されます。

  3. 変更を保存し、「User Manager」ダイアログボックスを閉じるには、「了解 (OK)」をクリックします。変更を保存し、ダイアログボックスを開いたままにするには、「適用 (Apply)」をクリックします。

WBEM のセキュリティに関する問題の障害追跡

この節では、次のような場合の対応方法を説明します。

クライアント (ユーザー) が WBEM サーバー上の CIM Object Manager によって認証されない場合

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 のシステム管理 (セキュリティサービス)』の「役割プロパティの変更」を参照

そのほかの CIM セキュリティ例外エラーが起きる場合

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 のシステム管理 (セキュリティサービス)』の「役割プロパティの変更」を参照してください。