15.4.6. IdentityManager の使用


IdentityManager へのアクセス方法は 2 通りあります。 Seam コンポーネントにインジェクトする方法は次のとおりです。
@In IdentityManager identityManager;
Copy to Clipboard Toggle word wrap
その静的な instance() メソッド経由によるアクセス方法は以下のとおりです。
IdentityManager identityManager = IdentityManager.instance();
Copy to Clipboard Toggle word wrap
以下のテーブルに IdentityManager のAPIのメソッドを示します。
Expand
表15.4 アイデンティティ管理 API
メソッド
戻り値
詳細
createUser(String name, String password)
boolean
指定された名前とパスワードで新規ユーザーのアカウントを作成します。成功すれば true を、しなければ false を返します。
deleteUser(String name)
boolean
指定された名前のユーザーアカウントを削除します。 成功すれば true を、しなければ false を返します。
createRole(String role)
boolean
指定された名前の新しいロールを作成します。 成功すれば true を、しなければ false を返します。
deleteRole(String name)
boolean
指定された名前のロールを削除します。 成功すれば true を、しなければ false を返します。
enableUser(String name)
boolean
指定された名前のユーザーアカウントを有効にします。有効でないアカウントは認証できません。 成功すれば true を、しなければ false を返します。
disableUser(String name)
boolean
指定された名前のユーザーアカウントを無効にします。成功すれば true を、しなければ false を返します。
changePassword(String name, String password)
boolean
指定された名前のユーザーアカウントのパスワードを変更します。 成功すれば true を、しなければ false を返します。
isUserEnabled(String name)
boolean
指定されたユーザーアカウントが有効であれば true を、これ以外は false を返します。
grantRole(String name, String role)
boolean
指定ロールを指定したユーザーまたはロールに付与します。 ロールを付与するには、 そのロールが既に存在している必要があります。 ロールの付与が成功した場合には true を返し、 そのロールがユーザーに既に付与されていた場合には false を返します。
revokeRole(String name, String role)
boolean
特定のユーザーまたはロールから指定したロールを取り消します。ユーザーが当該のロールのメンバーであり、かつ取り消しが成功した場合には true を返し、ユーザーが当該ロールのメンバーでなければ false を返します。
userExists(String name)
boolean
指定ユーザーが存在すれば true を、 存在していなければ false を返します。
listUsers()
List
英数字順にソートされたすべてのユーザー名の一覧を返します。
listUsers(String filter)
List
指定されたフィルタパラメータでフィルタしたユーザー名のリストを英数字順にソートして返します
listRoles()
List
すべてのロール名の一覧を返します。
getGrantedRoles(String name)
List
指定されたユーザー名に明示的に付与された全ロールの一覧を返します。
getImpliedRoles(String name)
List
指定されたユーザー名に対して暗示的に付与されている全ロールの一覧を返します。 暗示的に付与されているロールとは、ユーザーに直接付与されたロールではなく、 ユーザーがメンバーとなるロールに対して付与されたロールなどです。 例えば、 admin ロールが user ロールのメンバーであり、 ユーザーが admin ロールのメンバーであった場合、 このユーザーの暗示的なロールは admin ロールと user ロールの両方になります。
authenticate(String name, String password)
boolean
設定された Identity Store を使ってユーザー名とパスワードを認証します。 認証が成功すれば true を、失敗すれば false を返します。認証が成功しても、このメソッドの戻り値以外は何も変化しませんし、Identity コンポーネントの状態も変化しません。適切に Seam にログインするには Identity.login() を使用する必要があります。
addRoleToGroup(String role, String group)
boolean
特定のロールを指定したグループのメンバーとして追加します。成功すれば true を返します。
removeRoleFromGroup(String role, String group)
boolean
指定されたロールを指定されたグループから削除します。成功すれば true を返します。
listRoles()
List
すべてのロール名を一覧表示します。
ユーザー呼び出しにはアイデンティティ管理 API でメソッドを呼び出すための適切な承認が必要となります。 次の表では IdentityManager 内の各メソッドに対するパーミッション要件を示します。 以下に記載されるパーミッションターゲットはリテラル文字列値です。
Expand
表15.5 アイデンティティ管理のセキュリティパーミッション
メソッド
パーミッションターゲット
パーミッションのアクション
createUser()
seam.user
create
deleteUser()
seam.user
delete
createRole()
seam.role
create
deleteRole()
seam.role
delete
enableUser()
seam.user
update
disableUser()
seam.user
update
changePassword()
seam.user
update
isUserEnabled()
seam.user
read
grantRole()
seam.user
update
revokeRole()
seam.user
update
userExists()
seam.user
read
listUsers()
seam.user
read
listRoles()
seam.role
read
addRoleToGroup()
seam.role
update
removeRoleFromGroup()
seam.role
update
以下のコードのリストでは admin ロールの全メンバーにアイデンティティ管理関連の全メソッドへのアクセス権を許可する一連のセキュリティルールの例を示しています。
rule ManageUsers
  no-loop
  activation-group "permissions"
when
  check: PermissionCheck(name == "seam.user", granted == false)
  Role(name == "admin")
then
  check.grant();
end

rule ManageRoles
  no-loop
  activation-group "permissions"
when
  check: PermissionCheck(name == "seam.role", granted == false)
  Role(name == "admin")
then
  check.grant();
end
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat