Red Hat Training
A Red Hat training course is available for Red Hat JBoss Operations Network
12.9. ユーザーおよびロール
ロールは、JBoss ON の主なアクセス制御方法です。ロールは、ユーザーとリソース(リソースグループ経由)の関係を作成します。ロールに設定されたパーミッションは、ロールのリソースに対して付与するパーミッションを定義します。
12.9.1. ロールの作成
ユーザーは、ユーザーが属するロールにあるリソースのみを表示および管理できます。リソースがない場合、パーミッションに関係なく、ユーザーは JBoss ON ではほとんど実行できません。
このスクリプトはロールを作成し、複数のグループを追加します。異なるタイプのグループを取得する場合や、複数のグループを一度に追加するなど、より複雑になる可能性があります。
スクリプトの手順は次のとおりです。
- ロールを作成し、適切なパーミッションを割り当てます。この場合、ロールはインベントリーおよびユーザーパーミッションを管理します。
- メンバーとして追加するグループを検索します。
- 新規ロールエントリーを検索します。
- ロールにグループを追加します。
例12.28 新規ロール
// create the role var role = Role('Role Name - ' + java.util.Date()); role.description = 'This role is an example'; role.addPermission(Permission.MANAGE_INVENTORY); role.addPermission(Permission.VIEW_USERS); RoleManager.createRole(role); //search for the group to add to the role groupcriteria = new ResourceGroupCriteria(); groupcriteria.addFilterGroupCategory.toString('MIXED'); var groups = ResourceGroupManager.findResourceGroupsByCriteria(groupcriteria); //search for the new role var c = new RoleCriteria(); c.addFilterName('Role Name'); var roles = RoleManager.findRolesByCriteria( c ); RoleManager.addResourceGroupsToRole(roles.get(0).id,[groups.get(0).id]);
12.9.2. ユーザーの作成
ユーザーエントリーには、JBoss ON の記述エントリーとログインユーザー名/パスワードのペアであるプリンシパルの 2 つの部分があります。
スクリプトの手順は次のとおりです。
- 新規ユーザー(subject)エントリーを作成します。
- 新規ユーザーのプリンシパルを作成します。
- ロールの検索でユーザーを追加し、アレイを作成します。
- ロールにユーザーを追加します。
例12.29 ユーザーの作成とロールの追加
//create the new user entry var newSubject = new Subject(); newSubject.setEmailAddress( 'admin@example.com' ); newSubject.setFirstName('John'); newSubject.setLastName('Smith' ); newSubject.setFactive(true); newSubject.setFsystem(false); newSubject.setName('jsmith'); var s = SubjectManager.createSubject(newSubject); //create the login principal for the user SubjectManager.createPrincipal( s.name, 'password' ); //search for the role and create an array var c = new RoleCriteria(); c.addFilterName('Role Name'); var roles = RoleManager.findRolesByCriteria( c ); var role = roles.get(0); var rolesArray = new Array(1); rolesArray[0] = role.getId(); //add the new user to the roles in the array RoleManager.addRolesToSubject(s.getId(), rolesArray );