1. 首页 > WebSphere教程 > 正文

WebSphere教程FG011-WebSphere安全配置(用户认证、授权)实战

本文档风哥主要介绍WebSphere Application Server 9.0.5的安全配置,包括用户认证、授权、安全域、SSL配置等内容,风哥教程参考WebSphere官方文档安全管理章节,适合WebSphere管理员在学习和测试中使用,如果要应用于生产环境则需要自行确认。更多视频教程www.fgedu.net.cn

Part01-基础概念与理论知识

1.1 WebSphere安全概述

WebSphere安全是保护应用和资源的核心机制,提供认证、授权、加密、审计等安全功能。学习交流加群风哥微信: itpux-com

WebSphere安全核心功能:

  • 认证(Authentication):验证用户身份
  • 授权(Authorization):控制资源访问权限
  • 加密(Encryption):保护数据传输安全
  • 审计(Audit):记录安全相关操作

1.1.1 安全架构

# WebSphere安全架构

┌─────────────────────────────────────────────────────────┐
│ 客户端请求 │
└─────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────┐
│ 安全拦截器 │
│ ┌─────────────────────────────────────────────────┐ │
│ │ 认证(Authentication) │ │
│ │ – 验证用户身份 │ │
│ │ – 检查凭证 │ │
│ └─────────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ 授权(Authorization) │ │
│ │ – 检查权限 │ │
│ │ – 控制访问 │ │
│ └─────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────┐
│ 应用资源 │
└─────────────────────────────────────────────────────────┘

# 安全组件

1. 用户注册表(User Registry)
– 存储用户信息
– 支持本地、LDAP、自定义

2. 安全域(Security Domain)
– 定义安全策略
– 配置认证授权

3. 角色(Role)
– 定义权限集合
– 映射用户/组

4. SSL/TLS
– 加密通信
– 证书管理

1.2 WebSphere认证机制

WebSphere认证机制:

1.2.1 认证类型

# WebSphere认证类型

1. 基本认证(Basic Authentication)
– 用户名密码
– Base64编码
– 简单但不够安全

2. 表单认证(Form-based Authentication)
– 自定义登录页面
– 灵活性高
– 常用于Web应用

3. 证书认证(Client Certificate)
– 数字证书
– 高安全性
– 双向SSL

4. 令牌认证(Token-based)
– LTPA令牌
– SSO支持
– 分布式环境

# 认证流程

1. 用户发起请求
2. 安全拦截器检查认证
3. 未认证则重定向登录
4. 用户提交凭证
5. 验证凭证
6. 创建安全上下文
7. 允许访问资源

# LTPA令牌

LTPA(Lightweight Third-Party Authentication):
– WebSphere SSO机制
– 跨服务器认证
– 令牌包含用户信息
– 可配置过期时间

LTPA令牌配置:
– 令牌过期时间:120分钟(默认)
– 令牌密钥:用于签名验证
– 跨域SSO:共享密钥

1.3 WebSphere授权机制

WebSphere授权机制:

1.3.1 授权模型

# WebSphere授权模型

1. 基于角色的访问控制(RBAC)
– 用户 -> 角色 -> 权限
– 简化管理
– 企业标准

2. Java EE安全
– 声明式安全(注解/部署描述符)
– 编程式安全(API调用)

# 角色类型

1. 管理角色
– Administrator:完全管理权限
– Operator:操作权限
– Monitor:只读权限
– Configurator:配置权限
– AdminSecurityManager:安全管理权限

2. 应用角色
– 应用自定义
– 在部署描述符中定义
– 映射到用户/组

# 授权检查流程

1. 用户访问资源
2. 检查用户认证状态
3. 获取用户角色
4. 检查角色权限
5. 允许/拒绝访问

# 权限配置示例

Web应用部署描述符(web.xml):
<security-role>
<role-name>fgeduAdmin</role-name>
</security-role>
<security-role>
<role-name>fgeduUser</role-name>
</security-role>

<security-constraint>
<web-resource-collection>
<web-resource-name>AdminPages</web-resource-name>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>fgeduAdmin</role-name>
</auth-constraint>
</security-constraint>

1.4 WebSphere安全域配置

WebSphere安全域配置:

1.4.1 用户注册表类型

# WebSphere用户注册表类型

1. 本地操作系统(Local OS)
– 使用操作系统用户
– 简单配置
– 适合开发测试

2. LDAP用户注册表
– 企业目录服务
– 集中用户管理
– 生产环境推荐

3. 联合存储库(Federated Repository)
– 多数据源整合
– 灵活配置
– 支持虚拟成员管理器

4. 自定义用户注册表
– 实现自定义接口
– 数据库用户管理
– 特殊需求场景

# 用户注册表配置

本地操作系统:
用户:系统用户
组:系统组
认证:操作系统认证

LDAP配置:
主机:ldap.fgedu.net.cn
端口:389(LDAP)/ 636(LDAPS)
Base DN:dc=fgedu,dc=net,dc=cn
绑定DN:cn=admin,dc=fgedu,dc=net,dc=cn
用户过滤器:(uid=%s)
组过滤器:(cn=%s)

联合存储库配置:
– 多个LDAP服务器
– 数据库用户存储
– 文件系统存储

风哥提示:WebSphere安全配置是企业应用安全的基础。生产环境建议使用LDAP或联合存储库,实现集中化的用户管理和认证。

Part02-生产环境规划与建议

2.1 WebSphere安全规划

WebSphere安全规划需要考虑多个因素:

2.1.1 安全规划要素

# WebSphere安全规划要素

1. 认证方式选择
– 本地OS:开发测试
– LDAP:企业生产
– 联合存储库:复杂环境

2. 授权策略
– 最小权限原则
– 角色分离
– 定期审计

3. 加密配置
– SSL/TLS启用
– 证书管理
– 加密算法选择

4. 审计日志
– 安全事件记录
– 日志保留策略
– 审计分析

# 安全规划模板

认证方式:LDAP
LDAP服务器:ldap.fgedu.net.cn:636
SSL:启用
管理角色:
– fgeduadmin:Administrator
– fgeduoperator:Operator
– fgedumonitor:Monitor

应用安全:
– 启用应用安全
– 角色映射到LDAP组
– 会话超时:30分钟

2.2 WebSphere用户管理规划

WebSphere用户管理规划:

2.2.1 用户管理策略

# WebSphere用户管理策略

1. 用户分类
– 管理员:系统管理
– 操作员:日常运维
– 开发人员:应用开发
– 最终用户:应用访问

2. 用户命名规范
– 前缀:fgedu_
– 格式:fgedu_username
– 示例:fgedu_admin, fgedu_operator

3. 密码策略
– 最小长度:8位
– 复杂度:大小写+数字+特殊字符
– 过期时间:90天
– 历史记录:5次

4. 账户锁定策略
– 失败次数:5次
– 锁定时间:30分钟
– 自动解锁:是

# 用户管理规划

角色 用户前缀 权限范围
──────────────────────────────────────────
Administrator fgedu_admin 完全管理
Operator fgedu_oper 启动停止
Monitor fgedu_monitor 只读监控
Configurator fgedu_config 配置修改
应用管理员 fgedu_app_* 应用管理
应用用户 fgedu_user_* 应用访问

2.3 WebSphere角色规划

WebSphere角色规划:

2.3.1 角色设计原则

# WebSphere角色设计原则

1. 最小权限原则
– 只授予必要权限
– 避免过度授权

2. 职责分离
– 管理与操作分离
– 开发与运维分离

3. 角色继承
– 基础角色
– 扩展角色

# 管理角色权限

角色 权限描述
──────────────────────────────────────────────────────
Administrator 完全管理权限,包括安全配置
Operator 启动停止服务器,查看状态
Monitor 只读访问,查看配置和状态
Configurator 修改配置,不能管理安全
AdminSecurityManager 管理用户、角色、权限

# 应用角色设计

应用:fgedu电商系统

角色 描述 映射用户/组
──────────────────────────────────────────────────
fgedu_admin 系统管理员 cn=fgedu_admins,ou=groups
fgedu_manager 业务管理员 cn=fgedu_managers,ou=groups
fgedu_operator 业务操作员 cn=fgedu_operators,ou=groups
fgedu_user 普通用户 cn=fgedu_users,ou=groups
fgedu_guest 访客用户 cn=fgedu_guests,ou=groups

2.4 WebSphere审计规划

WebSphere审计规划:

2.4.1 审计配置

# WebSphere审计配置

1. 审计事件
– 登录/登出
– 权限变更
– 配置修改
– 安全事件

2. 审计日志
– 位置:/WebSphere/app/profiles/Dmgr01/logs/audit
– 格式:二进制/文本
– 轮转:按大小/时间

3. 审计策略
– 记录成功事件
– 记录失败事件
– 敏感操作记录

# 审计事件类型

事件类型 描述
──────────────────────────────────────────
AUTHENTICATION 认证事件
AUTHORIZATION 授权事件
CONFIGURATION 配置变更
SECURITY_MGMT 安全管理
RESOURCE_ACCESS 资源访问

# 审计日志分析

# 查看审计日志
/WebSphere/app/bin/auditViewer.sh /WebSphere/app/profiles/Dmgr01/logs/audit/audit.log

# 审计日志格式
[时间戳] [事件类型] [用户] [操作] [结果] [详细信息]

示例:
[2024-04-10 10:00:00] [AUTHENTICATION] [fgeduadmin] [LOGIN] [SUCCESS] [IP:192.168.1.100]
[2024-04-10 10:05:00] [AUTHORIZATION] [fgeduadmin] [CONFIG_CHANGE] [SUCCESS] [DataSource:fgedudb]

Part03-生产环境项目实施方案

3.1 WebSphere安全配置实战

WebSphere安全配置操作:

3.1.1 启用全局安全

# WebSphere启用全局安全

1. 通过管理控制台启用
安全 > 全局安全

配置项:
– 启用应用程序安全:勾选
– 启用 Java 2 安全:勾选
– 启用管理安全:勾选

用户注册表:
– 选择:联合存储库 或 LDAP

2. 通过wsadmin启用
/WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \
-username fgeduadmin -password fgedu123

# 获取安全配置
security = AdminConfig.getid(‘/Security:/’)

# 启用安全
AdminConfig.modify(security, ”’
[[appEnabled true]
[enforceJava2Security true]
[enforceFineGrainedJCASecurity true]
[activeAuthMechanism LTPA]
[activeUserRegistry WIMUserRegistry]]
”’)

# 保存配置
AdminConfig.save()

# 重启DMgr
AdminControl.invoke(AdminControl.queryNames(‘type=DeploymentManager,*’), ‘restart’)

3. 验证安全启用
# 检查安全状态
/WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \
-c “print AdminConfig.showAttribute(AdminConfig.getid(‘/Security:/’), ‘appEnabled’)”

true

# 检查用户注册表
/WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \
-c “print AdminConfig.showAttribute(AdminConfig.getid(‘/Security:/’), ‘activeUserRegistry’)”

WIMUserRegistry

3.1.2 配置LDAP用户注册表

# WebSphere配置LDAP用户注册表

1. 通过管理控制台配置
安全 > 全局安全 > 用户注册表 > LDAP

配置项:
– 主机名:ldap.fgedu.net.cn
– 端口:636
– SSL:启用
– 绑定DN:cn=admin,dc=fgedu,dc=net,dc=cn
– 绑定密码:********
– Base DN:dc=fgedu,dc=net,dc=cn

用户过滤器:(uid=%s)
组过滤器:(cn=%s)

2. 通过wsadmin配置
/WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \
-username fgeduadmin -password fgedu123

# 创建LDAP配置
ldapConfig = ”’
[[serverType CUSTOM]
[host ldap.fgedu.net.cn]
[port 636]
[sslEnabled true]
[sslConfig]
[bindDN “cn=admin,dc=fgedu,dc=net,dc=cn”]
[bindPassword fgedu123]
[baseDN “dc=fgedu,dc=net,dc=cn”]
[userFilter “(uid=%s)”]
[groupFilter “(cn=%s)”]
[userIdMap “*:uid”]
[groupIdMap “*:cn”]
[groupMemberIdMap “*:member”]
[certificateMapMode EXACT_DN]
[certificateFilter]]
”’

# 应用LDAP配置
security = AdminConfig.getid(‘/Security:/’)
AdminConfig.modify(security, ‘[[activeUserRegistry LDAPUserRegistry]]’)

ldap = AdminConfig.create(‘LDAPUserRegistry’, security, ldapConfig)

# 保存配置
AdminConfig.save()

# 测试LDAP连接
AdminControl.testConnection(ldap)

连接成功

3. 验证LDAP配置
# 查询用户
/WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \
-c “print AdminTask.searchUsers(‘[-uid fgeduadmin]’)”

fgeduadmin

# 查询组
/WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \
-c “print AdminTask.searchGroups(‘[-cn fgeduadmins]’)”

cn=fgeduadmins,ou=groups,dc=fgedu,dc=net,dc=cn

3.2 WebSphere用户管理实战

WebSphere用户管理操作:

3.2.1 创建管理用户

# WebSphere创建管理用户

1. 联合存储库创建用户
/WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \
-username fgeduadmin -password fgedu123

# 创建用户
AdminTask.createUser(‘[-uid fgeduadmin -password fgedu123 -confirmPassword fgedu123 -cn “FGedu Admin” -sn “Admin”]’)

# 创建组
AdminTask.createGroup(‘[-cn fgeduadmins -description “WebSphere Administrators”]’)

# 将用户添加到组
AdminTask.addMemberToGroup(‘[-memberUniqueName uid=fgeduadmin,o=defaultWIMFileBasedRealm -groupUniqueName cn=fgeduadmins,o=defaultWIMFileBasedRealm]’)

# 保存配置
AdminConfig.save()

2. 分配管理角色
# 获取角色配置
roles = AdminConfig.getid(‘/AdminRoleAuthorizationTable:/’)

# 分配Administrator角色
AdminTask.mapAdminRole(‘[-roleName Administrator -user fgeduadmin]’)

# 分配Operator角色
AdminTask.mapAdminRole(‘[-roleName Operator -user fgeduoperator]’)

# 分配Monitor角色
AdminTask.mapAdminRole(‘[-roleName Monitor -user fgedumonitor]’)

# 保存配置
AdminConfig.save()

3. 验证用户创建
# 查询用户
AdminTask.searchUsers(‘[-uid fgeduadmin]’)

uid=fgeduadmin,o=defaultWIMFileBasedRealm

# 查询用户角色
AdminTask.listAdminRoleUser(‘[-roleName Administrator]’)

fgeduadmin

# 完整用户创建脚本
#!/bin/bash
# create_users.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn

echo “创建WebSphere管理用户…”

/WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \
-username fgeduadmin -password fgedu123 << 'EOF' # 创建管理员 print "创建管理员用户..." AdminTask.createUser('[-uid fgeduadmin -password Fgedu@123 -confirmPassword Fgedu@123 -cn "FGedu Admin" -sn "Admin"]') AdminTask.mapAdminRole('[-roleName Administrator -user fgeduadmin]') # 创建操作员 print "创建操作员用户..." AdminTask.createUser('[-uid fgeduoperator -password Fgedu@123 -confirmPassword Fgedu@123 -cn "FGedu Operator" -sn "Operator"]') AdminTask.mapAdminRole('[-roleName Operator -user fgeduoperator]') # 创建监控员 print "创建监控用户..." AdminTask.createUser('[-uid fgedumonitor -password Fgedu@123 -confirmPassword Fgedu@123 -cn "FGedu Monitor" -sn "Monitor"]') AdminTask.mapAdminRole('[-roleName Monitor -user fgedumonitor]') # 保存配置 print "保存配置..." AdminConfig.save() print "用户创建完成" EOF echo "完成"

3.3 WebSphere角色配置实战

WebSphere角色配置操作:

3.3.1 应用安全角色映射

# WebSphere应用安全角色映射

1. 通过管理控制台映射
应用程序 > 应用程序类型 > WebSphere企业应用程序
> 选择应用 > 安全角色到用户/组映射

配置:
– 选择角色
– 映射到用户/组
– 保存

2. 通过wsadmin映射
/WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \
-username fgeduadmin -password fgedu123

# 获取应用配置
app = AdminConfig.getid(‘/Deployment:fgeduapp/’)

# 获取角色配置
roles = AdminConfig.list(‘Role’, app)

# 映射角色到用户
AdminApp.edit(‘fgeduapp’, ”’
[-MapRolesToUsers [
[“fgeduAdmin” “fgeduadmin” “” “fgeduadmin” “” “”]
[“fgeduUser” “” “fgeduusers” “” “” “”]
]]
”’)

# 保存配置
AdminConfig.save()

# 同步节点
AdminNodeManagement.syncActiveNodes()

3. 角色映射格式说明
[“角色名” “用户列表” “组列表” “Everyone??” “AllAuthenticated??” “AllAuthenticatedInTrustedRealms??”]

示例:
[“fgeduAdmin” “fgeduadmin,fgeduadmin2” “” “No” “No” “No”]
[“fgeduUser” “” “fgeduusers,fgeduoperators” “No” “Yes” “No”]
[“fgeduGuest” “” “” “Yes” “No” “No”]

# 验证角色映射
AdminApp.view(‘fgeduapp’, ‘-MapRolesToUsers’)

MapRolesToUsers:
角色: fgeduAdmin
用户: fgeduadmin
组:
Everyone: No
AllAuthenticated: No

角色: fgeduUser
用户:
组: fgeduusers
Everyone: No
AllAuthenticated: Yes

3.4 WebSphere SSL配置实战

WebSphere SSL配置操作:

3.4.1 创建SSL证书

# WebSphere创建SSL证书

1. 创建密钥库
/WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \
-username fgeduadmin -password fgedu123

# 创建JKS密钥库
AdminTask.createKeyStore(‘[-keyStoreName fgeduKeyStore -keyStoreType JKS -keyStoreLocation /WebSphere/ssl/fgeduKeyStore.jks -keyStorePassword fgedu123]’)

# 保存配置
AdminConfig.save()

2. 创建证书
# 使用ikeyman工具
/WebSphere/app/java/bin/keytool -genkeypair \
-alias fgedu_cert \
-keyalg RSA \
-keysize 2048 \
-validity 365 \
-keystore /WebSphere/ssl/fgeduKeyStore.jks \
-storepass fgedu123 \
-dname “CN=fgedu.net.cn,OU=IT,O=FGedu,L=Beijing,ST=Beijing,C=CN”

# 验证证书
/WebSphere/app/java/bin/keytool -list \
-keystore /WebSphere/ssl/fgeduKeyStore.jks \
-storepass fgedu123

密钥库类型: JKS
密钥库提供方: SUN

您的密钥库包含 1 个条目

fgedu_cert, 2024-4-10, PrivateKeyEntry,
证书指纹 (SHA1): XX:XX:XX:XX:…

3. 配置SSL
# 创建SSL配置
AdminTask.createSSLConfig(‘[-alias fgeduSSL -keyStoreName fgeduKeyStore -trustStoreName NodeDefaultTrustStore -sslProtocol TLSv1.2]’)

# 应用SSL配置
AdminTask.modifySSLConfig(‘[-alias fgeduSSL -keyStoreName fgeduKeyStore -trustStoreName NodeDefaultTrustStore]’)

# 保存配置
AdminConfig.save()

# 重启服务器
AdminControl.invoke(AdminControl.queryNames(‘type=Server,name=server1,*’), ‘restart’)

4. 配置HTTPS
# 为应用服务器启用HTTPS
# 服务器 > 服务器类型 > WebSphere应用程序服务器
# > 选择服务器 > Web容器传输链

# 创建新的传输链
AdminTask.createHTTPTransport(‘[-name WCInboundDefaultSecure -address [*:9443] -sslEnabled true -sslConfig fgeduSSL]’)

# 保存配置
AdminConfig.save()

风哥提示:SSL配置是保护数据传输安全的关键。生产环境建议使用CA签名的证书,并定期更新证书。学习交流加群风哥QQ113257174

Part04-生产案例与实战讲解

4.1 LDAP集成认证案例

LDAP集成认证案例:

4.1.1 案例背景

# LDAP集成认证案例

企业背景:
– LDAP服务器:Microsoft Active Directory
– 域名:fgedu.net.cn
– 用户数:5000+
– 应用:电商系统

配置目标:
– 集成AD认证
– 实现SSO
– 角色映射

4.1.2 配置实施

# LDAP集成配置实施

1. 准备LDAP信息
LDAP服务器:ad.fgedu.net.cn
端口:636(LDAPS)
Base DN:DC=fgedu,DC=net,DC=cn
绑定DN:CN=websphere,OU=ServiceAccounts,DC=fgedu,DC=net,DC=cn
绑定密码:********

用户搜索:
– 用户对象类:user
– 用户ID属性:sAMAccountName
– 用户过滤器:(&(sAMAccountName=%s)(objectClass=user))

组搜索:
– 组对象类:group
– 组名属性:cn
– 组过滤器:(&(cn=%s)(objectClass=group))

2. 配置LDAP
#!/bin/bash
# config_ldap.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn

echo “配置LDAP集成…”

/WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \
-username fgeduadmin -password fgedu123 << 'EOF' # 配置LDAP用户注册表 print "配置LDAP用户注册表..." security = AdminConfig.getid('/Security:/') ldapConfig = ''' [[serverType CUSTOM] [host ad.fgedu.net.cn] [port 636] [sslEnabled true] [bindDN "CN=websphere,OU=ServiceAccounts,DC=fgedu,DC=net,DC=cn"] [bindPassword Fgedu@123] [baseDN "DC=fgedu,DC=net,DC=cn"] [userFilter "(&(sAMAccountName=%s)(objectClass=user))"] [groupFilter "(&(cn=%s)(objectClass=group))"] [userIdMap "*:sAMAccountName"] [groupIdMap "*:cn"] [groupMemberIdMap "member:member"] [certificateMapMode EXACT_DN]] ''' AdminConfig.modify(security, '[[activeUserRegistry LDAPUserRegistry]]') ldap = AdminConfig.create('LDAPUserRegistry', security, ldapConfig) # 保存配置 AdminConfig.save() print "LDAP配置完成" EOF 3. 测试LDAP连接 # 测试用户查询 /WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \ -c "print AdminTask.searchUsers('[-uid fgeduadmin]')" CN=fgeduadmin,OU=Users,DC=fgedu,DC=net,DC=cn # 测试组查询 /WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \ -c "print AdminTask.searchGroups('[-cn fgeduadmins]')" CN=fgeduadmins,OU=Groups,DC=fgedu,DC=net,DC=cn 4. 配置角色映射 # 将AD组映射到WebSphere角色 AdminTask.mapAdminRole('[-roleName Administrator -group "CN=fgeduadmins,OU=Groups,DC=fgedu,DC=net,DC=cn"]') AdminTask.mapAdminRole('[-roleName Operator -group "CN=fgeduoperators,OU=Groups,DC=fgedu,DC=net,DC=cn"]') AdminTask.mapAdminRole('[-roleName Monitor -group "CN=fgedumonitors,OU=Groups,DC=fgedu,DC=net,DC=cn"]') AdminConfig.save() 5. 验证认证 # 使用AD用户登录 /WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \ -username fgeduadmin -password Fgedu@123 WASX7209I: 已连接到进程"dmgr" WASX7031I: 有关帮助,请输入:"print Help" print "认证成功" 认证成功

4.2 应用安全配置案例

应用安全配置案例:

4.2.1 案例背景

# 应用安全配置案例

应用名称:fgedu电商系统
安全需求:
– 用户认证
– 角色授权
– HTTPS加密
– 会话管理

4.2.2 配置实施

# 应用安全配置实施

1. 应用安全配置(web.xml)
<?xml version=”1.0″ encoding=”UTF-8″?>
<web-app>
<security-constraint>
<web-resource-collection>
<web-resource-name>Admin Pages</web-resource-name>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>fgeduAdmin</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>

<security-constraint>
<web-resource-collection>
<web-resource-name>User Pages</web-resource-name>
<url-pattern>/user/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>fgeduUser</role-name>
</auth-constraint>
</security-constraint>

<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
</login-config>

<security-role>
<role-name>fgeduAdmin</role-name>
</security-role>
<security-role>
<role-name>fgeduUser</role-name>
</security-role>
</web-app>

2. 部署应用并配置角色映射
/WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \
-username fgeduadmin -password fgedu123

# 部署应用
AdminApp.install(‘/WebSphere/apps/fgeduapp.ear’, ‘[-appname fgeduapp]’)

# 角色映射
AdminApp.edit(‘fgeduapp’, ”’
[-MapRolesToUsers [
[“fgeduAdmin” “” “CN=fgeduadmins,OU=Groups,DC=fgedu,DC=net,DC=cn” “No” “No” “No”]
[“fgeduUser” “” “CN=fgeduusers,OU=Groups,DC=fgedu,DC=net,DC=cn” “No” “Yes” “No”]
]]
”’)

# 保存配置
AdminConfig.save()

# 同步节点
AdminNodeManagement.syncActiveNodes()

# 启动应用
appManager = AdminControl.queryNames(‘type=ApplicationManager,process=server1,*’)
AdminControl.invoke(appManager, ‘startApplication’, ‘fgeduapp’)

3. 配置会话管理
# 获取Web容器配置
webContainer = AdminConfig.list(‘WebContainer’, AdminConfig.getid(‘/Server:server1/’))

# 配置会话
sessionMgr = AdminConfig.list(‘SessionManager’, webContainer)
AdminConfig.modify(sessionMgr, ”’
[[enable true]
[sessionTimeout 30]
[enableUrlRewriting false]
[enableCookies true]
[cookieName JSESSIONID]
[cookieSecure true]]
”’)

# 保存配置
AdminConfig.save()

4. 验证安全配置
# 测试访问
curl -k https://localhost:9443/fgeduapp/admin/

HTTP/1.1 302 Found
Location: https://localhost:9443/fgeduapp/login.jsp

# 测试认证
curl -k -u fgeduadmin:Fgedu@123 https://localhost:9443/fgeduapp/admin/

HTTP/1.1 200 OK
Content-Type: text/html

4.3 安全故障处理案例

安全故障处理案例:

4.3.1 认证失败案例

# 认证失败案例

故障现象:
用户无法登录,提示认证失败

故障诊断:
1. 检查日志
tail -100 /WebSphere/app/profiles/Dmgr01/logs/dmgr/SystemOut.log | grep -i “auth”

[4/10/26 10:00:00:000 CST] 00000001 LTPAServerObj W SECJ0369E: 认证失败:用户名或密码无效

2. 检查LDAP连接
ldapsearch -x -H ldaps://ldap.fgedu.net.cn:636 \
-D “cn=admin,dc=fgedu,dc=net,dc=cn” \
-w fgedu123 \
-b “dc=fgedu,dc=net,dc=cn” \
“(uid=fgeduadmin)”

ldap_bind: Invalid credentials (49)

3. 分析原因
– LDAP绑定密码错误
– 或LDAP服务器不可达

解决方案:
1. 验证LDAP服务器
ping ldap.fgedu.net.cn
telnet ldap.fgedu.net.cn 636

2. 验证绑定凭证
ldapsearch -x -H ldaps://ldap.fgedu.net.cn:636 \
-D “cn=admin,dc=fgedu,dc=net,dc=cn” \
-w correct_password \
-b “dc=fgedu,dc=net,dc=cn” \
“(uid=fgeduadmin)”

# 返回用户信息

3. 更新绑定密码
/WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \
-username fgeduadmin -password fgedu123

ldap = AdminConfig.getid(‘/LDAPUserRegistry:/’)
AdminConfig.modify(ldap, ‘[[bindPassword correct_password]]’)
AdminConfig.save()

4. 重启DMgr
AdminControl.invoke(AdminControl.queryNames(‘type=DeploymentManager,*’), ‘restart’)

# 故障处理结果
问题原因:LDAP绑定密码错误
解决方案:更新正确的绑定密码
处理时间:15分钟

Part05-风哥经验总结与分享

5.1 WebSphere安全配置检查清单

WebSphere安全配置检查清单:

# WebSphere安全配置检查清单

认证配置:
□ 全局安全已启用
□ 用户注册表配置正确
□ LDAP连接正常
□ 密码策略已配置

授权配置:
□ 管理角色已分配
□ 应用角色已映射
□ 权限最小化原则

加密配置:
□ SSL已启用
□ 证书有效
□ HTTPS已配置
□ 加密算法安全

审计配置:
□ 审计日志已启用
□ 审计事件已配置
□ 日志轮转已配置

# 安全配置验证脚本
#!/bin/bash
# security_check.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn

echo “=== WebSphere安全检查 ===”

# 检查全局安全
echo “1. 检查全局安全状态:”
/WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \
-username fgeduadmin -password fgedu123 \
-c “print AdminConfig.showAttribute(AdminConfig.getid(‘/Security:/’), ‘appEnabled’)” 2>/dev/null

# 检查用户注册表
echo “2. 检查用户注册表:”
/WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \
-username fgeduadmin -password fgedu123 \
-c “print AdminConfig.showAttribute(AdminConfig.getid(‘/Security:/’), ‘activeUserRegistry’)” 2>/dev/null

# 检查SSL配置
echo “3. 检查SSL配置:”
/WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \
-username fgeduadmin -password fgedu123 \
-c “print AdminTask.listSSLConfigs()” 2>/dev/null

# 检查管理角色
echo “4. 检查管理角色:”
/WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \
-username fgeduadmin -password fgedu123 \
-c “print AdminTask.listAdminRoleUser(‘[-roleName Administrator]’)” 2>/dev/null

echo “=== 检查完成 ===”

5.2 WebSphere安全常见问题

WebSphere安全常见问题及解决方案:

5.2.1 常见问题汇总

# WebSphere安全常见问题

问题1:认证失败
原因:用户名密码错误、LDAP连接失败
解决:检查凭证、检查LDAP连接

问题2:权限不足
原因:角色未映射、权限配置错误
解决:检查角色映射、检查权限配置

问题3:SSL证书错误
原因:证书过期、证书不受信任
解决:更新证书、导入信任证书

问题4:会话超时
原因:会话时间过短、会话丢失
解决:调整会话超时、启用会话复制

问题5:LTPA令牌无效
原因:令牌过期、密钥不匹配
解决:检查令牌配置、同步密钥

5.3 WebSphere安全最佳实践

基于多年WebSphere运维经验,总结安全最佳实践:

5.3.1 安全配置原则

  • 最小权限原则:只授予必要的权限
  • 职责分离:管理与操作分离
  • 加密传输:启用SSL/TLS
  • 定期审计:检查安全配置和日志

5.3.2 安全配置建议

  • 使用LDAP:集中管理用户和认证
  • 定期更新密码:设置密码过期策略
  • 启用审计:记录安全相关操作
  • 证书管理:定期更新SSL证书
生产环境建议:WebSphere安全配置是企业应用安全的基础,需要精心设计和持续维护。建议定期进行安全审计,及时更新安全配置,确保系统安全。from WebSphere视频:www.itpux.com

本文档详细介绍了WebSphere 9.0.5的安全配置,包括用户认证、授权、安全域、SSL配置等内容。通过学习本文档,读者可以掌握WebSphere安全配置的方法和最佳实践。更多视频教程www.fgedu.net.cn

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息