4.7 Identity Reportingの設定

Identity Reportingのインストール後でも、さまざまなインストールプロパティを変更できます。変更するには、設定更新ユーティリティ(configupdate.sh)ファイルを実行します。

環境設定ツールでIdentity Reportingの設定を変更した場合、変更を反映するにはTomcatを再起動する必要があります。ただし、Identity ReportingのWebユーザインタフェースで変更を加えた場合は、サーバの再起動は必要ありません。

4.7.1 [Identity Data Collection Services (アイデンティティデータ収集サービス)]ページへのデータソースの手動追加

  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にあるSQL、create_dcs_roles_and_schemas.sqlおよびcreate_rpt_roles_and_schemas.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. get_formatted_user_dn.sqlのコンテンツをC:\NetIQ\idm\apps\IdentityReporting\sqlからクエリツールにコピーし、接続されたデータベースに対して実行します。

    メモ:データベーススキーマ作成オプションとしてFileを選択した場合、get_formatted_user_dn.sql関数を手動で追加する必要があります。データベーススキーマ作成オプションとしてNowまたはStartupを選択した場合、インストーラはこの関数をデータベースに追加します。

Oracleデータベースに対するCreate_rpt_roles_and_schemas.sqlスキーマの設定

  1. データベース管理者ユーザとしてSQL Developerにログインします。

  2. 以下のSQLの内容をSQL Developerにコピーし、接続されたデータベースに対して実行することで、Create_rpt_roles_and_schemasを作成します。

    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. Systemユーザとしてログインし、以下のSQLの内容をSQL Developerにコピーし、接続されたデータベースに対して実行することで、Create_dcs_roles_and_schemasを作成します。

    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. get_formatted_user_dn-oracle.sqlのコンテンツをC:\NetIQ\idm\apps\IdentityReporting\sqlからSQL Developerにコピーし、接続されたデータベースに対して実行します。

    メモ:データベーススキーマ作成オプションとしてFileを選択した場合、get_formatted_user_dn-oracle.sql関数を手動でデータベースに追加する必要があります。データベーススキーマ作成オプションとしてNowまたはStartupを選択した場合、インストーラはこの関数をデータベースに追加します。

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 '<Set pwd for IDM_RPT_DATA>', '<Set pwd for IDMRPTUSER>'

    execute CREATE_DCS_ROLES_AND_SCHEMAS '<Set pwd for IDM_RPT_DATA>', '<Set pwd for IDMRPTUSER>'

  6. get_formatted_user_dn.sqlのコンテンツをC:\NetIQ\idm\apps\IdentityReporting\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 リモート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.conffファイルに次のエントリを追加します。

    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ファイルは、次のクライアント認証形式をサポートしています。

    • ローカルデータベースユーザ認証方法[認証オプション]

    • ホストデータベースユーザCIDRアドレス認証方法[認証オプション]

    • hostsslデータベースユーザCIDRアドレス認証方法[認証オプション]

    • hostnosslデータベースユーザCIDRアドレス認証方法[認証オプション]

    CIDRアドレス形式の代わりに、次の形式を使用して別のフィールドにIPアドレスとネットワークマスクを指定できます。

    • ホストデータベースユーザIPアドレスIPマスク認証方法[認証オプション]

    • hostsslデータベースユーザIPアドレスIPマスク認証方法[認証オプション]

    • hostnosslデータベースユーザIPアドレスIPマスク認証方法[認証オプション]

  3. リモート接続をテストします。

    1. リモートPostgreSQLサーバを再起動します。

    2. ユーザ名とパスワードを使用してリモートでサーバにログインします。

4.7.6 Identity Reportingのインストール後の手順

インストール中に、「when to create schema for Identity Reporting (Identity Reporting用のスキーマを作成するタイミング)」のプロンプトで[startup (起動)]または[file (ファイル)]のオプションを選択した場合は、データソースをIdentity Reportingユーザインタフェースから手動で追加する必要があります。追加するには、データソースオプションに移動して、追加をクリックし、リストからIDMDCSDataSourceを選択します。

また、利用可能なデータベースが正しく実行されるように、Tomcatを一度起動した後に再起動してください。