用戶和組 為列出屬於某個安全域的用戶
從Administration Console選擇該安全域
然後選擇Users節點
然後
可以使用右側窗格來查看所有用戶或者過濾清單
System用戶帳號也將是清單的一部分——這是當使用Configuration Wizard(配置向導)創建域時定義的Administration用戶帳號
選擇
Configure a new User
創建一個新用戶
需要為每個用戶指定一個名稱
一段簡短的描述和一個密碼
注意
安全域中所有的用戶名必須是獨一無二的
默認的提供程序使用不區分大小寫的用戶名
用戶可以屬於一個或多個組
為列出和編輯屬於某個安全域的所有組
需要從Administration Console選擇該安全域
然後選擇Groups節點
還可以在這裡創建一個新組
組的Membership選項卡可能會誤導人
因為它並不允許查看組的成員
要查看一個用戶是不是組的成員
必須選擇該用戶
然後查看它的Groups選項卡
WebLogic允許向其他現有的組添加組
而Membership選項卡列出了所選中的組中包含的所有子組
還可以使用這個選項卡給當前組添加另一個組
對於安全配置
組成員資格具有兩點重要的含義
假定用戶在域中定義了兩個組
A和B
而組B是組A的一個成員
這意味著
屬於組B的每個用戶同時也屬於組A
如果指派一個角色或策略給組A
就是同時向組A的所有成員和組B的所有成員指定了相同的角色或策略
當查看用戶的Groups選項卡時
Administration Console僅列出該用戶直屬的組
所以
如果一個用戶屬於組B
Administration Console在Groups選項卡下只會列出組B
即使該用戶實際上既屬於組A
也屬於組B
當使用Configuration Wizard創建一個新域時
以下組將會自動創建並隨時可用
Administrators
Deployers
Operators和Monitors
一開始
System用戶是惟一被創建的用戶
它也是域中Administrators組的惟一成員
記住
組只不過簡化了管理的任務
如果一個用戶是某個組的成員
它不會自動獲得任何特殊的權限
只有當組(直接地或通過一個角色)參與策略語句時
它才會繼承訪問權限
例如
最初的System用戶帳號獲得了Administrative訪問權限
僅僅是因為它是Administrators組的成員
而這個組又是(全局的)Admin角色的一個成員
同時有一條可用的策略語句把訪問域中各個區域(area)的權限授予Admin角色
有兩個組在Groups頁面上沒有列出
但是它們自動對於安全域可用
users
該組代表所有通過身份驗證的用戶的集合
任何成功通過身份驗證的用戶都是users組的成員
everyone
這個組代表所有WebLogic用戶的集合
包括匿名用戶
任何用戶
無論是已驗證的還是匿名的
都是everyone組的一個成員
這些組為建立默認的訪問控制提供了一種便捷的方式
例如
通過策略語句
用戶是everyone組的成員
資源可以被所有用戶訪問
另外
通過對某項資源定義如下策略
用戶是users組的成員
可以把訪問權限定為僅針對已驗證的用戶
還可以編程式地檢查服務器端的組成員資格
下面的例子用於檢查當前用戶是users組還是everyone組的成員
/** returns false if executed without any security context */
weblogic
security
SubjectUtils
isUserInGroup(
weblogic
security
Security
getCurrentSubject( )
users
);/** returns true regardless of whether the user authenticates */
weblogic
security
SubjectUtils
isUserInGroup(
weblogic
security
Security
getCurrentSubject( )
everyone
);
保護用戶帳號 WebLogic提供一種用戶封鎖功能
以防止用戶帳號的濫用
當一個用戶嘗試登錄失敗的次數達到一個阙值時
該用戶就會被封鎖
當這種情況發生時
該用戶將被封鎖一段時間(時間長短可以配置)
或者直到管理員解鎖該用戶為止
在這期間
該用戶被禁止使用這些證書訪問服務器
為配置用戶封鎖
需要選擇Administration Console左側窗格中的Security/Realms節點下的安全域
然後
可以使用User Lockout選項卡來調整封鎖功能
並查看封鎖統計信息
表
列出了User Lockout選項卡下可用的各種配置選項
默認情況下
這些設置被配置為最高安全性
表
配置用戶封鎖
當一個用戶被封鎖時
用戶列表(位於Users節點下)中的Locked欄下就會出現一個Details鏈接
如果選擇列表中某個用戶的這個鏈接
就可以查看該用戶登錄嘗試失敗的次數
以及最後一次失敗的登錄嘗試的時間
還可以選擇Unlock選項
手動重新激活用戶的帳戶
角色 和組不同
角色代表一個動態的用戶集合
角色成員資格可以通過以下規則進行定義
用戶名 可以指定多個用戶名
如果通過身份驗證的用戶與列表中的一個名稱相匹配
而且它滿足其他所有規則
它將自動成為該角色的成員
組名 可以指定多個組名
如果通過身份驗證的用戶是列表中某個組的成員
而且它滿足其他所有規則
它將自動成為該角色的成員
訪問時間 可以定義多個允許用戶進行訪問的時間段
如果用戶試圖在一個指定的時間段之內訪問資源
而且滿足其他所有規則
它將自動成為該角色的成員
通過使用邏輯AND(與)和OR(或)關系
可以以各種方式組合這些規則
例如
可以基於如下規則創建RoleA
用戶屬於組UKSeller
而且訪問時間在上午
:
到下午
:
之間
那麼任何試圖在這段時間內訪問資源
同時又是UKSeller組成員的用戶就會成為RoleA的成員
或者
可以基於如下規則創建RoleB
用戶屬於組UKSeller
或者訪問時間在上午
:
到下午
:
之間
在這種情況下
組UKSeller的每個成員都將始終屬於這個角色
同時每個在上午
:
到下午
:
之間訪問資源的用戶也將成為該角色的一個成員
而不管它屬於哪個組
當用戶嘗試訪問受(根據該角色定義的)策略語句保護的資源時
要在運行時對該角色的成員資格條件進行評估
因此
成員資格條件有助於評估在某個時刻用戶是否屬於該角色
通常
WebLogic默認的Role Mapping Provider負責管理與在某個安全域中定義的所有角色相關的信息
事實上可以定義兩類角色
全局的(scoped)和局部的(scoped)角色
全局角色 全局角色可用於安全域中的所有資源
當創建一個新域時
就會自動創建一組默認的全局角色
它用於授權對各種操作的訪問
這些預定義的全局角色與默認的安全策略(對WebLogic域執行factory
set安全配置)相關聯
Admin 屬於該角色的用戶對域的各個區域具有完全訪問權
這包括以下能力
查看和編輯域配置
啟動和停止服務器
部署應用程序(EJB
JMS factory
web應用程序)等等
任何屬於Administrators組的用戶將自動繼承Admin角色
也就是說
Admin角色的成員資格條件是用戶必須屬於Administrators組
Deployer 屬於該角色的用戶可以查看域配置
查看和編輯部署描述符
部署應用程序和EJB
以及啟動和關閉類
J
EE連接器和web服務組件
Deployer角色的成員資格條件是用戶必須屬於Deployers組
Operator 屬於該角色的用戶可以查看服務器配置
還可以啟動
停止和重新開始服務器實例
Operator角色的成員資格條件是用戶必須屬於Operators組
Monitor 屬於該角色的用戶只可以查看服務器的配置
Monitor角色的成員資格條件是用戶必須屬於Monitors組
為創建或修改現有的全局角色
需要從Administration Console左側窗格中選擇安全域
然後選擇Global Roles節點
WebLogic還提供一個稱為anonymous的全局角色
它的成員資格被定義為包括everyone組中的所有用戶
即使anonymous角色沒有出現在Administration Console中所列出的角色之中
仍然可以使用它來定義針對資源的策略
局部角色 大多數角色是局部的
這是指它們適用於特定的資源或JNDI樹的分支
全局角色和局部角色的差別在於
前者獨立於任何資源
並且可以通過Administration Console進行集中管理
而後者是跨各種資源分布的
用戶必須選擇一種特定的資源
以便查看相關的局部角色
不管實際資源是什麼
用於創建局部角色的底層principle是相同的
從Administration Console的左側窗格中定位資源
然後右擊並選擇Define Scoped Role
在某些情況下
在更詳細的方面中可以定義局部角色及其
兄弟
局部策略
例如
在web應用程序中
可以為EJB(基於每個方法)
web服務(基於每項操作)和web資源(基於某種HTTP方法類型(POST
GET
HEAD等等))都定義一個局部角色和策略
現在
讓我們看一看如何為特定的資源創建局部角色
以及在此配置中需要采取的一些預防措施
連接池和多池 JDBC資源位於Services/JDBC子樹下
可以右擊選定的資源(如
連接池)
然後選擇Define Scoped Role來為資源定義一個角色
還可以刪除或修改以前指派的角色
JDBC角色是分級的
如果右擊JDBC/Connection Pools節點
可以按照同樣的過程創建一個適用於所有連接池的局部角色
JNDI分支 可以為服務器的JNDI樹的特定的節點或分支指派一個角色
從Administ
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27620.html