25.8. リモートクライアントサーバーモードのデータセキュリティー
25.8.1. セキュリティーレルム リンクのコピーリンクがクリップボードにコピーされました!
ManagementRealmは、管理 CLI や Web ベースの管理コンソールに機能を提供する管理 API の認証情報を保存します。これは、JBoss Data Grid Server を管理するための認証システムを提供します。管理 API に使用する同じビジネスルールでアプリケーションを認証する必要がある場合には、ManagementRealmを使用することもできます。ApplicationRealmは Web アプリケーションと EJB のユーザー、パスワード、およびロール情報を保存します。
REALM-users.propertiesはユーザー名とハッシュ化されたパスワードを保存します。REALM-roles.propertiesはユーザー対ロールのマッピングを保存します。mgmt-groups.propertiesはManagementRealmのユーザー対ロールのマッピングを保存します。
standalone/configuration/ ディレクトリーに保存されます。ファイルは add-user.sh や add-user.bat コマンドによって同時に書き込まれます。コマンドの実行時、新しいユーザーをどのレルムに追加するかを最初に決定します。
25.8.2. 新しいセキュリティーレルムの追加 リンクのコピーリンクがクリップボードにコピーされました!
管理 CLI を実行します。
cli.shまたはcli.batコマンドを開始し、サーバーに接続します。新しいセキュリティーレルムを作成します。
次のコマンドを実行し、ドメインコントローラーまたはスタンドアロンサーバー上でMyDomainRealmという名前の新しいセキュリティーレルムを作成します。/host=master/core-service=management/security-realm=MyDomainRealm:add()
/host=master/core-service=management/security-realm=MyDomainRealm:add()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいレルムのユーザーの情報を保存するプロパティーファイルへの参照を作成します。
以下のコマンドを実行して、新規セキュリティーレルムのプロパティーファイルの場所を定義します。このファイルには、このセキュリティーレルムのユーザーについての情報が含まれます。以下のコマンドは、jboss.server.config.dir内のmyfile.propertiesという名前のファイルを参照します。注記
新たに作成されたプロパティーファイルは、含まれるadd-user.shおよびadd-user.batスクリプトによって管理されません。そのため、外部から管理する必要があります。/host=master/core-service=management/security-realm=MyDomainRealm/authentication=properties:add(path="myfile.properties",relative-to="jboss.server.config.dir")
/host=master/core-service=management/security-realm=MyDomainRealm/authentication=properties:add(path="myfile.properties",relative-to="jboss.server.config.dir")Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーの再ロード
変更を反映するためにサーバーをリロードします。:reload
:reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
新しいセキュリティーレルムが作成されます。新たに作成されたこのレルムにユーザーやロールを追加すると、デフォルトのセキュリティーレルムとは別のファイルに情報が保存されます。新規ファイルはご使用のアプリケーションやプロシージャーを使用して管理できます。
25.8.3. セキュリティーレルムへのユーザーの追加 リンクのコピーリンクがクリップボードにコピーされました!
add-user.shまたはadd-user.batコマンドを実行します。ターミナルを開き、JDG_HOME/bin/ディレクトリーへ移動します。Red Hat Enterprise Linux や他の UNIX 系のオペレーティングシステムを稼働している場合は、add-user.shを実行します。Microsoft Windows Server を稼働している場合はadd-user.batを実行します。管理ユーザーかアプリケーションユーザーのどちらを追加するか選択します。
この手順ではbを入力し、アプリケーションユーザーを追加します。ユーザーが追加されるレルムを選択します。
デフォルトでは、ManagementRealmおよびApplicationRealmのみが選択可能です。ただし、カスタムレルムが追加されている場合はその名前を入力します。入力を促されたらユーザー名、パスワード、ロールを入力します。
入力を促されたら希望のユーザー名、パスワード、任意のロールを入力します。yesを入力して選択を確認するか、noを入力して変更をキャンセルします。変更はセキュリティーレルムの各プロパティーファイルに書き込まれます。
25.8.4. セキュリティーレルムの宣言的な有効化 リンクのコピーリンクがクリップボードにコピーされました!
authentication および authorization セクションを宣言します。
例25.7 セキュリティーレルムの宣言的な有効化
server-identities パラメーターも証明書を指定するために使用できます。
25.8.5. 承認のための LDAP からのロールのロード (リモートクライアントサーバーモード) リンクのコピーリンクがクリップボードにコピーされました!
memberOf 属性を用いてユーザーエンティティーがユーザーが属するグループをマップしたり、 uniqueMember 属性を用いてグループエンティティーが属するユーザーをマップしたりすることがあります。また、両方のマッピングが LDAP サーバーによって維持されることもあります。
force が false に設定されている場合は承認クエリー中に再使用されます。force が true の場合は、承認中 (グループのロード中) に検索が再実行されます。通常、これは認証と承認が異なるサーバーによって実行される場合に行われます。
重要
force 属性で、デフォルト値の false に設定されていても必要となります。
username-to-dn
username-to-dn 要素は、ユーザー名をエントリーの識別名へマップする方法を指定します。この要素は、以下の両方の条件に見合う場合のみ必要となります。
- 認証および承認手順は異なる LDAP サーバーに対するものである。
- グループ検索が識別名を使用する。
- 1:1 username-to-dn
- リモートユーザーによって入力されたユーザー名はユーザーの識別名であると指定します。
<username-to-dn force="false"> <username-is-dn /> </username-to-dn>
<username-to-dn force="false"> <username-is-dn /> </username-to-dn>Copy to Clipboard Copied! Toggle word wrap Toggle overflow これは 1:1 マッピングを定義し、追加の設定はありません。 - username-filter
- 次のオプションは、前述の認証手順の簡単なオプションと似ています。指定のユーザー名に対して一致する指定の属性が検索されます。
<username-to-dn force="true"> <username-filter base-dn="dc=people,dc=harold,dc=example,dc=com" recursive="false" attribute="sn" user-dn-attribute="dn" /> </username-to-dn><username-to-dn force="true"> <username-filter base-dn="dc=people,dc=harold,dc=example,dc=com" recursive="false" attribute="sn" user-dn-attribute="dn" /> </username-to-dn>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 設定可能な属性は次のとおりです。base-dn: 検索を開始するコンテキストの識別名。recursive: サブコンテキストが検索対象となるかどうか。デフォルトはfalseです。attribute: 指定のユーザー名に対して一致されるユーザーエントリーの属性。デフォルトはuidです。user-dn-attribute: ユーザーの識別名を取得するために読み取る属性。デフォルトはdnです。
- advanced-filter
- 詳細フィルターを指定するオプションです。認証セクションでは、カスタムフィルターを使用してユーザーの識別名を見つけられます。
<username-to-dn force="true"> <advanced-filter base-dn="dc=people,dc=harold,dc=example,dc=com" recursive="false" filter="sAMAccountName={0}" user-dn-attribute="dn" /> </username-to-dn><username-to-dn force="true"> <advanced-filter base-dn="dc=people,dc=harold,dc=example,dc=com" recursive="false" filter="sAMAccountName={0}" user-dn-attribute="dn" /> </username-to-dn>Copy to Clipboard Copied! Toggle word wrap Toggle overflow username-filter の例で一致する属性は、その意味とデフォルト値が同じです。新たな属性は以下の 1 つのみです。filter: ユーザー名が{0}プレースホルダーで置き換えられる、ユーザーのエントリーの検索に使用されるカスタムフィルター。
重要
フィルターの定義後も XML が有効である必要があるため、&などの特殊文字が使用される場合は、適切な形式が使用されるようにしてください。たとえば、&文字には&を使用します。
グループ検索
例25.8 LDIF の例: プリンシプルからグループ
TestUserOne は GroupOne のメンバーで、GroupOne は GroupFive のメンバーです。グループメンバーシップは、memberOf 属性を使用して表されます。memberOf 属性は、ユーザー (またはグループ) がメンバーであるグループの識別名に設定されます。
memberOf 属性を設定することも可能です (ユーザーが直接メンバーであるグループごとに 1 つ)。
例25.9 LDIF の例: グループからプリンシパル
TestUserOne は GroupOne のメンバーであり、GroupOne は GroupFive のメンバーですが、相互参照にはグループからユーザーへ属性 uniqueMember が使用されます。
一般的なグループ検索
<group-search group-name="..." iterative="..." group-dn-attribute="..." group-name-attribute="..." >
...
</group-search>
<group-search group-name="..." iterative="..." group-dn-attribute="..." group-name-attribute="..." >
...
</group-search>
group-name: この属性は、ユーザーがメンバーであるグループのリストとして返されるグループ名に使用される形式を指定するために使用されます。これは、単純なグループ名またはグループの識別名になります。識別名が必要な場合は、この属性をDISTINGUISHED_NAMEに設定できます。デフォルトはSIMPLEです。iterative: ユーザーがメンバーであるグループを特定した後に、グループがメンバーであるグループを特定するため、グループを基に反復検索するかどうかを指定するために使用される属性です。反復検索が有効であると、他のグループのメンバーでないグループが見つかるか、サイクルが検出されるまで検索を続行します。デフォルトはfalseです。
重要
group-dn-attribute: 属性が識別名であるグループのエントリーです。デフォルトはdnです。group-name-attribute: 属性が単純名であるグループのエントリーです。デフォルトはuidです。
例25.10 プリンシパルからグループへの設定例
memberOf 属性です。
principal-to-group 要素が単一の属性で追加されていることです。
group-attribute: ユーザーがメンバーであるグループの識別名と一致する、ユーザーエントリー上の属性名。デフォルトはmemberOfです。
例25.11 グループからプリンシパルへの設定例
group-to-principal 要素が追加されています。この要素は、ユーザーエントリーを参照するグループの検索がどのように実行されるかを定義するために使用されます。以下の属性が設定されます。
base-dn: 検索を開始するために使用するコンテキストの識別名。recursive: サブコンテキストも検索されるかどうか。デフォルトはfalseです。search-by: 検索で使用されるロール名の形式です。有効な値はSIMPLEおよびDISTINGUISHED_NAMEです。デフォルトはDISTINGUISHED_NAMEです。
principal-attribute: ユーザーエントリーを参照する、グループエントリー上の属性名。デフォルトはmemberです。