WEB开发网
开发学院软件开发Java 将 Tivoli Access Manager 与 ObjectGrid 集成以对... 阅读

将 Tivoli Access Manager 与 ObjectGrid 集成以对分布式客户机进行身份验证和授权

 2009-09-30 00:00:00 来源:WEB开发网   
核心提示: 清单 2. JAAS 授权策略grantcodebase"http://www.ibm.com/com/ibm/ws/objectgrid/security/PrivilegedAction"principalcom.tivoli.pd.jazn.PDPrincipal&qu

清单 2. JAAS 授权策略

grant codebase "http://www.ibm.com/com/ibm/ws/objectgrid/security/PrivilegedAction" 
principal com.tivoli.pd.jazn.PDPrincipal "manager1" { 
  permission com.ibm.websphere.objectgrid.security.MapPermission 
  "Accounting.Balance", 
  "read,write,insert"; 
};

此策略授予用户 manager1 对 Accounting ObjectGrid 的 Balance 映射的读取、写入和插入权限。

JAAS 授权策略在纯文本文件中配置,这就使其管理起来有些麻烦。对于此示例,请使用 Access Manager 访问控制列表(Access Control List,ACL)来管理 ObjectGrid 授权策略。

为了使用 Access Manager Authorization Server 授权 ObjectGrid 客户机访问,您需要实现 ObjectGridAuthorization 插件来进行 ObjectGrid 的自定义授权。为此目的创建了一个插件实现类:com.ibm.websphere.samples.objectgrid.security.tam.TAMOGAuthorization。清单 3 显示了演示如何针对 Subject 对象检查映射权限的代码。

清单 3. TAMOGAuthorization. checkMapPermission(Subject, Permission) 方法代码示例

// The permission.getName() is the [OBJECTGRID_NAME].[MAP_NAME]. 
// We convert it to the ACL object bt prefixing "/OGTAMSample" 
final PDPermission pdPerm = new PDPermission(resourcePath + permission.getName(), 
 new String(pdPermissionStr)); 
 
Set principals = subject.getPrincipals(); 
 
Iterator iter = principals.iterator(); 
while (iter.hasNext()) { 
  try { 
    PDPrincipal principal = (PDPrincipal) iter.next(); 
    if (principal.implies(pdPerm)) { 
      return true; 
    } 
  } catch (ClassCastException cce) { 
  } 
} 
     
return false;

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Tivoli Access Manager

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接