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 ではほとんど実行できません。
このスクリプトはロールを作成し、複数のグループを追加します。異なるタイプのグループを取得する場合や、複数のグループを一度に追加するなど、より複雑になる可能性があります。
スクリプトの手順は次のとおりです。
  1. ロールを作成し、適切なパーミッションを割り当てます。この場合、ロールはインベントリーおよびユーザーパーミッションを管理します。
  2. メンバーとして追加するグループを検索します。
  3. 新規ロールエントリーを検索します。
  4. ロールにグループを追加します。

例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 つの部分があります。
スクリプトの手順は次のとおりです。
  1. 新規ユーザー(subject)エントリーを作成します。
  2. 新規ユーザーのプリンシパルを作成します。
  3. ロールの検索でユーザーを追加し、アレイを作成します。
  4. ロールにユーザーを追加します。

例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 );