Solaris WBEM 開発ガイド

WBEM のセキュリティ機構

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

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

クライアントの認証

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

WBEM サーバーがユーザーの ID と資格情報を検証できない場合や、ユーザー ID が無効な場合、WBEM サーバーは CIM セキュリティ例外を返します。この例外には、NO_SUCH_PRINCIPAL エラーが含まれます。

WBEM サーバーがユーザーの ID と資格情報を検証できない場合や、ユーザーのパスワードが無効な場合、WBEM サーバーは CIM セキュリティ例外を返します。この例外には、INVALID_CREDENTIAL エラーが含まれます。

役割の引き受け

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

Solaris プラットフォームでの WBEM 実装は、クライアントが Solaris OS の役割 ID を引き受ける機能をサポートします。クライアントは、Solaris OS の役割 ID を引き受けるときに、WBEM サーバー上の CIMOM による認証を受けます。RBAC 承認を確認する際、WBEM サーバーは、役割を引き受けるユーザーの ID に許可されたアクセス権ではなく、役割に許可されたアクセス権を使用します。

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

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

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

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

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

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

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

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

元のクライアント以外のクライアントによって変更、再送信、または作成されたメッセージを検出すると、WBEM サーバーは CIM セキュリティ例外を返します。この例外には、CHECKSUM_ERROR エラーが含まれます。さらに、WBEM サーバーは、ログメッセージを WBEM ログに書き込みます。

承認

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

WBEM は、次の機構により、2 種類の承認検査をサポートします。

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

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

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

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

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

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

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

MOF クラスのインスタンスが WBEM の永続的なデータストアに格納されている場合、CIMOM は、その MOF クラスを含む名前空間についての WBEM ACL を検査します。MOF クラスプロバイダの実装は、次の条件下では、ほぼ確実に RBAC 承認検査を行います。

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

監査

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

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


注 –

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


ロギング

WBEM サーバーは、特定のセキュリティイベントが発生すると、WBEM ログにログレコードを書き込みます。たとえば、クライアントの認証済みセッションが確立された場合や承認が失敗した場合などです。WBEM ログは、Solaris 管理コンソールのログビューアで調べることができます。ログビューアについては、第 9 章「問題発生時の解決方法」を参照してください。

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