安装 Identity Reporting 后,您仍可以修改许多安装属性。要进行更改,请运行配置更新实用程序 (configupdate.sh) 文件。
如果使用配置工具更改了 Identity Reporting 的任何设置,您必须重启动 Tomcat 才能使更改生效。但是,在 Identity Reporting 的 Web 用户界面中进行更改后,则不需要重启动服务器。
安装程序将为 Identity Reporting 创建并配置数据收集服务驱动程序和受管系统网关驱动程序。
配置受管系统网关驱动程序后,NetIQ 建议您将 KMO 修改为 SSL EC 证书 DNS。要修改 KMO,请执行以下步骤:
登录到 Identity Console。
在 IDM 管理中,单击包含受管系统网关驱动程序的驱动程序集。
单击受管系统网关驱动程序图标并转到驱动程序配置。
在配置选项卡中,单击驱动程序参数下拉菜单并执行以下步骤:
从显示连接参数字段中选择显示。
在 KMO 名称字段中,将值从 SSL CertificateDNS 更改为 SSL EC 证书 DNS。
依次单击应用、确定。
登录 Identity Reporting 应用程序。
单击数据源。
单击添加。
在添加数据源对话框中,单击从预定义列表中选择单选按钮。
选择 IDMDCSDataSource。
单击保存。
Identity Reporting 可让您针对远程 Oracle 数据库运行报告。确保运行 Oracle 数据库的服务器上存在 ojbc8.jar 文件。
要在安装后手动生成数据库纲要,请对您的数据库执行下列过程之一:
使用位于 /opt/netiq/idm/apps/IDMReporting/sql/ 中的 create_dcs_roles_and_schemas.sql 和 create_rpt_roles_and_schemas.sql SQL,将所需的角色添加到数据库。
以 postgres 用户身份登录 PGAdmin。
运行查询工具。
要创建 Create_rpt_roles_and_schemas 和 Create_dcs_roles_and_schemas 过程,请将这些 SQL 中的内容复制到查询工具,然后对连接的数据库执行命令。
要创建 IDM_RPT_DATA、IDM_RPT_CFG 和 IDMRPTUSER 角色,请按给定的顺序执行以下命令:
Select CREATE_DCS_ROLES_AND_SCHEMAS('<Set pwd for IDM_RPT_DATA>', '<Set pwd for IDMRPTUSER>');Select CREATE_RPT_ROLES_AND_SCHEMAS('<Set pwd for IDM_RPT_CFG>');
例如,如果 IDM_RPT_DATA、IDMRPTUSER 和 IDM_RPT_CFG 的口令分别是 password、password1 和 password2,则您必须执行以下命令:
Select CREATE_DCS_ROLES_AND_SCHEMAS('password', 'password1');Select CREATE_RPT_ROLES_AND_SCHEMAS('password2');将 /opt/netiq/idm/apps/IDMReporting/sql/ 中 get_formatted_user_dn.sql 的内容复制到查询工具,然后对连接的数据库执行这些命令。
注:如果针对数据库纲要创建选项选择文件,必须手动添加 get_formatted_user_dn.sql 函数。如果针对数据库纲要创建选项选择立即或启动,安装程序会将此函数添加到数据库。
以数据库管理员 (sysdba) 用户身份登录到 SQL Developer。
创建 Create_rpt_roles_and_schemas,方法是将以下 SQL 内容复制到 SQL Developer,并针对连接的数据库执行这些代码:
alter session set "_ORACLE_SCRIPT"=true;
CREATE OR REPLACE PROCEDURE create_rpt_roles_and_schemas(
idm_rpt_cfg_password character varying)
AUTHID CURRENT_USER
AS
cnt number;
BEGIN
/* Create user IDM_RPT_CFG if it does not exist */
select count(*) into cnt from ALL_USERS WHERE USERNAME = 'IDM_RPT_CFG';
IF cnt = 0 THEN
execute immediate 'CREATE USER idm_rpt_cfg IDENTIFIED BY ' || idm_rpt_cfg_password;
DBMS_OUTPUT.put_line('Created user idm_rpt_cfg');
END IF;
/* Grant rights to the idm_rpt_cfg user */
execute immediate 'GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TRIGGER, UNLIMITED TABLESPACE to idm_rpt_cfg';
DBMS_OUTPUT.put_line('Granted rights to user idm_rpt_cfg');
execute immediate 'alter session set "_ORACLE_SCRIPT"=true';
execute immediate 'alter session set "_ORACLE_SCRIPT"=false';
END;
/
exec CREATE_RPT_ROLES_AND_SCHEMAS('Novell123');
/
alter session set "_ORACLE_SCRIPT"=false;
/以系统用户身份登录到 SQL Developer,然后创建 Create_dcs_roles 和纲要,方法是将以下 SQL 内容复制到 SQL Developer,并针对连接的数据库执行这些代码:
alter session set "_ORACLE_SCRIPT"=true;
CREATE OR REPLACE PROCEDURE create_dcs_roles_and_schemas(
idm_rpt_data_password character varying,
idmrptuser_password character varying)
AUTHID CURRENT_USER
AS
cnt number;
BEGIN
/* Create user IDM_RPT_DATA if it does not exist already */
select count(*) into cnt from ALL_USERS WHERE USERNAME = 'IDM_RPT_DATA';
IF cnt = 0 THEN
execute immediate 'CREATE USER idm_rpt_data IDENTIFIED BY ' || idm_rpt_data_password;
DBMS_OUTPUT.put_line('Created user idm_rpt_data');
END IF;
/* Grant rights to the idm_rpt_data user */
execute immediate 'GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TRIGGER, UNLIMITED TABLESPACE to idm_rpt_data';
execute immediate 'GRANT CREATE PUBLIC SYNONYM to IDM_RPT_DATA';
execute immediate 'GRANT SELECT ON DBA_SEGMENTS TO IDM_RPT_DATA';
DBMS_OUTPUT.put_line('Granted rights to user idm_rpt_data');
/* Create user IDMRPTUSER if it does not exist */
select count(*) into cnt from ALL_USERS WHERE USERNAME = 'IDMRPTUSER';
IF cnt = 0 THEN
execute immediate 'CREATE USER idmrptuser IDENTIFIED BY ' || idmrptuser_password;
DBMS_OUTPUT.put_line('Created user idmrptuser');
END IF;
/* Grant rights to the idmrptuser user */
execute immediate 'GRANT CREATE SESSION to idmrptuser';
execute immediate 'GRANT SELECT ON sys.all_tables TO idmrptuser';
DBMS_OUTPUT.put_line('Granted rights to user idmrptuser');
END;
/要创建 IDM_RPT_CFG 角色,请执行以下命令:
begin
CREATE_RPT_ROLES_AND_SCHEMAS('<Set pwd for IDM_RPT_CFG>');
end;
例如,如果 IDM_RPT_CFG 的口令是 password,则您必须执行以下命令:
begin
CREATE_RPT_ROLES_AND_SCHEMAS('password');
end;
指派以下许可权限:
GRANT CREATE PUBLIC SYNONYM to IDM_RPT_CFG;
将 /opt/netiq/idm/apps/IDMReporting/sql/ 中 get_formatted_user_dn-oracle.sql 的内容复制到 SQL Developer,然后对连接的数据库执行这些命令。
注:如果针对数据库纲要创建选项选择文件,必须手动将 get_formatted_user_dn-oracle.sql 函数添加到数据库。如果针对数据库纲要创建选项选择立即或启动,安装程序会将此函数添加到数据库。
执行 delete_create_dcs_roles_and_schemas-mssql.sql 和 delete_get_formatted_user_dn-mssql.sql。
使用 /opt/netiq/idm/apps/IDMReporting/sql/ 中的 create_dcs_roles_and_schemas.mssql 和 create_rpt_roles_and_schemas.mssql,将所需的角色添加到数据库。
以数据库管理员用户身份登录 SQL Developer。
要创建 Create_rpt_roles_and_schemas 和 Create_dcs_roles_and_schemas 过程,请将 create_dcs_roles_and_schemas.mssql 和 create_rpt_roles_and_schemas.mssql 中的内容复制到 SQL Developer,然后对连接的数据库执行这些命令。
要创建 IDM_RPT_DATA、IDM_RPT_CFG 和 IDMRPTUSER 角色,请按给定的顺序执行以下命令:
execute CREATE_DCS_ROLES_AND_SCHEMAS '<设置 IDM_RPT_DATA 的口令>', '<设置 IDMRPTUSER 的口令>'
execute CREATE_RPT_ROLES_AND_SCHEMAS \'<Set pwd for IDM_RPT_CFG>\'
将 /opt/netiq/idm/apps/IDMReporting/sql/ 中 get_formatted_user_dn.sql 的内容复制到 SQL Developer,然后对连接的数据库执行这些命令。
在 /opt/netiq/idm/apps/IDMReporting/sql 中找到以下 .sql 文件。
DbUpdate-001-run-as-idm_rpt_data.sql
DbUpdate-01-run-as-idm_rpt_cfg.sql
DbUpdate-02-run-as-idm_rpt_cfg.sql
DbUpdate-03-run-as-idm_rpt_data.sql
DbUpdate-04-run-as-idm_rpt_data.sql
DbUpdate-05-run-as-idm_rpt_data.sql
DbUpdate-06-run-as-idm_rpt_cfg.sql
清除数据库校验和
要使用每个 .sql 运行 clearchsum 命令,请将下面一行附加到每个文件的开头:
update DATABASECHANGELOG set MD5SUM = NULL go
修改后的内容应该类似如下:
-- ********************************************************************* -- Update Database Script -- ********************************************************************* -- Change Log: IdmDcsDataDropViews.xml -- Ran at: 2/23/18 5:17 PM -- Against: IDM_RPT_CFG@jdbc:oracle:thin:@192.168.0.1:1521/orcl -- Liquibase version: 3.5.1 -- ********************************************************************* update databasechangelog set md5sum = null go
以相应的用户身份运行每个 .sql。
将更改提交到数据库。
在 Identity Manager 的先前版本中,因为字符数限制,长数据字段无法与 Identity Reporting 服务器进行数据同步。Identity Manager 4.9 提供了一个选项,可提高 PostgreSQL、Oracle 和 MS SQL 数据库中下列表及其相应列的字符数限制:
|
表名称 |
列名称 |
|---|---|
|
idm_rpt_data.idmrpt_idv_ent_bindings |
ent_param_str |
|
idm_rpt_data.idmrpt_idv_ent_bindings |
ent_param_val |
|
idm_rpt_data.idmrpt_idv_identity_trust |
idv_ent_ref |
|
idm_rpt_data.idmrpt_idv_identity_trust |
trust_params |
|
idm_rpt_data.idmrpt_idv_ent_bindings_hist |
ent_param_str |
|
idm_rpt_data.idmrpt_idv_ent_bindings_hist |
ent_param_val |
|
idm_rpt_data.idmrpt_idv_identity_trust_hist |
idv_ent_ref |
|
idm_rpt_data.idmrpt_idv_identity_trust_hist |
trust_params |
对于 PostgreSQL,Identity Manager 4.9 中已自动为上表中所述的所有字段提高了字符数限制。
对于 Oracle,您必须从 /opt/netiq/idm/apps/IDMReporting/sql/ 目录运行 alter_column_length-oracle.sql 脚本,以提高上表中所述的所有列的字符数限制。
对于 MS SQL,您必须从 /opt/netiq/idm/apps/IDMReporting/sql/ 目录运行 alter_column_length-mssql.sql 脚本,以仅提高已编入索引的列的字符数限制。在此例中,ENT_PARAM_STR 是表 idmrpt_idv_ent_bindings 中唯一编入索引的列。
Identity Reporting 在报告功能中整合了多个用于实现不同功能的 REST API。这些 REST API 使用 OAuth2 协议进行鉴定。
在 Tomcat 上,系统会在安装 Identity Reporting 时自动部署 rptdoc war 和 dcsdoc war。
如果您的 PostgreSQL 数据库安装在单独的服务器上,则需要在该远程数据库的 postgresql.conf 和 pg_hba.conf 文件中更改默认设置。
在 postgresql.conf 文件中更改侦听地址。
默认情况下,PostgreSQL 允许侦听 localhost 连接,不允许远程 TCP/IP 连接。要允许远程 TCP/IP 连接,请将下面的条目添加到 /opt/netiq/idm/postgres/data/postgresql.conf 文件中:
listen_addresses = '*'
如果服务器上有多个接口,可以指定要侦听的特定接口。
将客户端鉴定条目添加到 pg_hba.conf 文件中。
默认情况下,PostgreSQL 只接受来自 localhost 的连接。它会拒绝远程连接。这通过应用访问控制规则来控制,该规则允许用户在提供有效口令(md5 关键字)后从某个 IP 地址登录。要接受远程连接,请将下面的条目添加到 /opt/netiq/idm/postgres/data/pg_hba.conf 文件中。
host all all 0.0.0.0/0 md5
例如,192.168.104.24/26 trust
这仅适用于 IPv4 地址。对于 IPv6 地址,请添加以下条目:
host all all ::0/0 md5
如果您要允许来自特定网络上多台客户端计算机的连接,请采用 CIDR 地址格式在此条目中指定网络地址。
pg_hba.conf 文件支持以下客户端鉴定格式。
local database user authentication-method [authentication-option]
host database user CIDR-address authentication-method [authentication-option]
hostssl database user CIDR-address authentication-method [authentication-option]
hostnossl database user CIDR-address authentication-method [authentication-option]
您可以使用以下格式在单独的字段中指定 IP 地址和网络掩码,而不使用 CIDR 地址格式:
host database user IP-address IP-mask authentication-method [authentication-option]
hostssl database user IP-address IP-mask authentication-method [authentication-option]
hostnossl database user IP-address IP-mask authentication-method [authentication-option]
测试远程连接。
重启动远程 PostgreSQL 服务器。
使用用户名和口令远程登录服务器。
导航到 OSP 的安装位置,编辑 configupdate.sh.properties 文件中的以下项:
app_versions="ua#<version>,rpt#<version>" sso_apps=ua,rpt
示例:
app_versions="ua#4.9.0,rpt#7.2.0" sso_apps=ua,rpt
起动 configupdate,在以下字段中更新 Identity Reporting 的客户端细节:
报告客户端
数据收集服务
DCS 驱动程序
重启动 OSP 的 tomcat。
如果在安装期间针对“创建 Identity Reporting 的纲要”选择了启动或文件,请务必执行以下操作:
登录 Identity Reporting。
从 Identity Reporting 储存库中删除现有数据源和报告定义。
添加新的 Identity Manager 数据收集服务数据源。
另外,请在启动一次 Tomcat 后再重启动一次,以确保可用数据库正常运行。