4.7 配置 Identity Reporting

安装 Identity Reporting 后,您仍可以修改许多安装属性。要进行更改,请运行配置更新实用程序 (configupdate.sh) 文件。

如果使用配置工具更改了 Identity Reporting 的任何设置,您必须重启动 Tomcat 才能使更改生效。但是,在 Identity Reporting 的 Web 用户界面中进行更改后,则不需要重启动服务器。

4.7.1 在“身份数据收集服务”页面中手动添加数据源

  1. 登录 Identity Reporting 应用程序。

  2. 单击数据源。

  3. 单击添加。

  4. 在添加数据源对话框中,单击从预定义列表中选择单选按钮。

  5. 选择 IDMDCSDataSource。

  6. 单击保存。

4.7.2 对 Oracle 数据库运行报告

Identity Reporting 可让您针对远程 Oracle 数据库运行报告。确保运行 Oracle 数据库的服务器上存在 ojbc8.jar 文件。

4.7.3 手动生成数据库纲要

要在安装后手动生成数据库纲要,请对您的数据库执行下列过程之一:

针对 PostgreSQL 数据库配置 Create_rpt_roles_and_schemas.sql 纲要

  1. 使用位于 C:\NetIQ\idm\apps\IdentityReporting\sql 中的 create_dcs_roles_and_schemas.sql 和 create_rpt_roles_and_schemas.sql SQL,将必需的角色添加到数据库中。

  2. 以 postgres 用户身份登录 PGAdmin。

  3. 运行查询工具。

  4. 要创建 Create_rpt_roles_and_schemas 和 Create_dcs_roles_and_schemas 过程,请将这些 SQL 中的内容复制到查询工具,然后对连接的数据库执行命令。

  5. 要创建 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');
  6. 将 C:\NetIQ\idm\apps\IdentityReporting\sql 中 get_formatted_user_dn.sql 的内容复制到查询工具中,然后对连接的数据库执行这些命令。

    注:如果针对数据库纲要创建选项选择文件,必须手动添加 get_formatted_user_dn.sql 函数。如果针对数据库纲要创建选项选择立即或启动,安装程序会将此函数添加到数据库。

针对 Oracle 数据库配置 Create_rpt_roles_and_schemas.sql 纲要

  1. 以数据库管理员用户身份登录 SQL Developer。

  2. 创建 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;
    /
  3. 以系统用户身份登录,然后创建 Create_dcs_roles_and_schemas,方法是将以下 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;
    /
  4. 要创建 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; 
  5. 将 C:\NetIQ\idm\apps\IdentityReporting\sql 中 get_formatted_user_dn-oracle.sql 的内容复制到 SQL Developer 中,然后对连接的数据库执行这些命令。

    注:如果针对数据库纲要创建选项选择文件,必须手动将 get_formatted_user_dn-oracle.sql 函数添加到数据库。如果针对数据库纲要创建选项选择立即或启动,安装程序会将此函数添加到数据库。

针对 MS SQL 数据库配置 Create_rpt_roles_and_schemas.sql 纲要

  1. 执行 delete_create_dcs_roles_and_schemas-mssql.sql 和 delete_get_formatted_user_dn-mssql.sql。

  2. 使用 C:\NetIQ\idm\apps\IdentityReporting\sql 中的 create_dcs_roles_and_schemas.mssql 和 create_rpt_roles_and_schemas.mssql,将必需的角色添加到数据库中。

  3. 以数据库管理员用户身份登录 SQL Developer。

  4. 要创建 Create_rpt_roles_and_schemas 和 Create_dcs_roles_and_schemas 过程,请将 create_dcs_roles_and_schemas.mssql 和 create_rpt_roles_and_schemas.mssql 中的内容复制到 SQL Developer,然后对连接的数据库执行这些命令。

  5. 要创建 IDM_RPT_DATA、IDM_RPT_CFG 和 IDMRPTUSER 角色,请按给定的顺序执行以下命令:

    execute CREATE_DCS_ROLES_AND_SCHEMAS '<设置 IDM_RPT_DATA 的口令>', '<设置 IDMRPTUSER 的口令>'

    execute CREATE_DCS_ROLES_AND_SCHEMAS '<设置 IDM_RPT_DATA 的口令>', '<设置 IDMRPTUSER 的口令>'

  6. 将 C:\NetIQ\idm\apps\IdentityReporting\sql 中 get_formatted_user_dn.sql 的内容复制到 SQL Developer 中,然后对连接的数据库执行这些命令。

清除数据库校验和

  1. 在 C:\NetIQ\idm\apps\IdentityReporting\sql 中找到下列 .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

  2. 清除数据库校验和

    1. 要使用每个 .sql 运行 clearchsum 命令,请将下面一行附加到每个文件的开头:

      update DATABASECHANGELOG set MD5SUM = NULL; 

      修改后的内容应该类似如下:

      -- *********************************************************************
      -- Update Database Script
      -- *********************************************************************
      -- Change Log: IdmDcsDataDropViews.xml
      -- Ran at: 2/23/18 5:17 PM
      -- Against: IDM_RPT_CFG@jdbc:oracle:thin:@192.99.170.20:1521/orcl
      -- Liquibase version: 3.5.1
      -- *********************************************************************
      update databasechangelog set md5sum = null; 
    2. 以相应的用户身份运行每个 .sql。

  3. 将更改提交到数据库。

4.7.4 部署 Identity Reporting 的 REST API

Identity Reporting 在报告功能中整合了多个用于实现不同功能的 REST API。这些 REST API 使用 OAuth2 协议进行鉴定。

在 Tomcat 上,系统会在安装 Identity Reporting 时自动部署 rptdoc war 和 dcsdoc war。

4.7.5 连接远程 Remote PostgreSQL 数据库

如果您的 PostgreSQL 数据库安装在单独的服务器上,则需要在该远程数据库的 postgresql.conf 和 pg_hba.conf 文件中更改默认设置。

  1. 在 postgresql.conf 文件中更改侦听地址。

    默认情况下,PostgreSQL 允许侦听 localhost 连接,不允许远程 TCP/IP 连接。要允许进行远程 TCP/IP 连接,请将以下条目添加到 C:\NetIQ\idm\apps\postgres\data\postgresql.conf 文件中:

    listen_addresses = '*'

    如果服务器上有多个接口,可以指定要侦听的特定接口。

  2. 将客户端鉴定条目添加到 pg_hba.conf 文件中。

    默认情况下,PostgreSQL 只接受来自 localhost 的连接。它会拒绝远程连接。这通过应用访问控制规则来控制,该规则允许用户在提供有效口令(md5 关键字)后从某个 IP 地址登录。要接受远程连接,请将以下条目添加到 C:\NetIQ\idm\apps\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]

  3. 测试远程连接。

    1. 重启动远程 PostgreSQL 服务器。

    2. 使用用户名和口令远程登录服务器。

4.7.6 Identity Reporting 的安装后步骤

在安装期间,如果您针对提示何时创建 Identity Reporting 的纲要选择了启动或文件选项,则必须从 Identity Reporting 用户界面手动添加数据源。要添加数据源,请导航到数据源选项,单击添加,然后从列表中选择 IDMDCSDataSource。

另外,请在启动一次 Tomcat 后再重启动一次,以确保可用数据库正常运行。