ブログ

【CCH® Tagetik】ユーザー管理・セキュリティはどうする?~Repository編~

この記事をSNSでシェア!

はじめに

企業の経営管理に必要な情報を、一元管理できる経営管理プラットフォーム「CCH Tagetik」。
その中でも、「どのユーザーにどの機能を使わせるか?」「どのデータを見せたくないか?」といった権限設計は非常に重要です。一歩間違うと意図しないユーザーにデータが変更される、公開したくない個人情報が見えてしまうといった重大なインシデントとなりかねません。
本記事では、CCH Tagetik導入時に避けて通れないセキュリティ周りの仕組みについて、実際の運用ノウハウも踏まえてRepository側の設定に絞って解説します。

概要説明:2つのセキュリティ階層

CCH Tagetikのセキュリティは、大きく分けて2つの仕組みで構成されています。
1.Repositoryで定義する、利用可能な機能と使用するデータベースをユーザーに割り当てる「ロール
2.各データベース内でどのデータにアクセスするかといった詳細なアクセス権限をユーザーに設定する「ユーザー権限
以下は設定例です。(契約によりますが、ここではデータベース数を2つとして記載しています)

また、このロールやユーザー権限は、各ユーザーごとに設定していく方法以外に「参照ユーザー」というユーザーを作成して権限設定を行い、実際のユーザーは参照ユーザーから権限を継承させるだけという手段もあります。
参照ユーザーを使用することで、ユーザー数が多い場合は工数削減になるほか、メンテナンス性を上げ、管理を容易にすることが可能です。(詳しくは後述します)

ロールとライセンスタイプ

ロールの構成要素は?

ロールは、CCH Tagetik内にデフォルトで実装されている「システムロール」と、開発側で自由に作成できる「カスタムロール」が存在します。

ロールを細分化すると、最小単位はファンクションになります。これは例えば「勘定科目次元を管理する」「フォームでデータを入力する」などの具体的な権限を指します。
モジュールはファンクションをジャンルごとにまとめたものですが、設定はファンクション単位で行うため、数々の案件を経てきましたがモジュールを意識する機会は実務上はほとんどありませんでした。

システムロール

標準で用意されているロールは以下の通りです。
前述したファンクションがあらかじめ用途別にまとめられているものです。
実案件で必ずといっていいほど使用されるものは、管理者に与える「$ALL」、データ入力や参照などを行う一般ユーザー向けの「$DEREPORT」です。システムロールについては内容の変更はできません。

システムロール説明ライセンスタイプ
$ALLほぼ全ての権限(一部例外あり)管理者ユーザー
$ADMINISTRATORアプリケーション・データベースの管理権限管理者ユーザー
$AUDIT全てのデータ・テーブルの参照権限(変更は不可)データ入力&レポーティングユーザー
$CONSOLIDATOR連結機能に関する権限パワーユーザー
$DEREPORTフォーム入力・参照、フォームやプロセスに紐づくデータ処理の実行権限データ入力&レポーティングユーザー
$SYSADMINRepositoryにおけるシステム管理者の権限管理者ユーザー
$USERデータ入力・送信・データ処理権限パワーユーザー

※$ALLの説明で「ほぼ」としている理由は、後ほど解説します。

ライセンスタイプとは?

CCH Tagetikのライセンスタイプは以下の3種類あり、契約時に各ユーザー数を決めて購入します。

  • 管理者ユーザー
  • パワーユーザー
  • データ入力&レポーティングユーザー

ユーザーを追加する際、ロールを割り当てますが、ロールに含まれるファンクション一つ一つに上記いずれかのライセンスタイプが定義されており、ロールには、そのファンクション群の中で最も権限レベルの高いものが適用されます。
そのため、割り当てたロールによって、そのユーザーがどのライセンスタイプを使用するかが決まります。

※例えばシステムロール「$USER」の場合、含まれているファンクションは「パワーユーザー」と「データ入力&レポーティングユーザー」の2種類のため、$USERを割り当てたユーザーは「パワーユーザー」ライセンスタイプ1枠を使用します)

カスタムロール

システムロールに対してカスタムロールは、ファンクションを自由に組み合わせてロールを作成することができます。
また、既存のロール(システム・カスタム問わず)からファンクションを継承し、そのうえでファンクションを追加・除外するといった使い方も可能です。

実際にカスタムロールを活用した事例

システムロールの説明において、「$ALL」は「ほぼ全ての権限(一部例外あり)」という記載をしましたが、開発する上でよく使われる機能「クエリーアナライザ」を使用するファンクションが含まれていません。(今後仕様変更の可能性はあります)
※クエリーアナライザーとは、CCH Tagetikのデータテーブルに対してクエリーを発行できる機能です。

そのため、実際の案件では以下のようなカスタムロールを作って対応しています。
 ⇒システムロール「$ALL」を参照ロールとし、クエリーアナライザのファンクションを追加

実際の作業手順

ここからは、システムロールの確認方法、カスタムロールの作り方等、実際の画面を用いて説明します。

  • ファンクション・モジュール一覧の確認
  • システムロール一覧の確認
  • カスタムロール一覧
  • 【実案件であったパターン①】ユーザーを作成し、ロールにマッピング
  • 【実案件であったパターン②】参照ユーザーを作成しロールにマッピング、ユーザーを紐づける
ファンクション・モジュール一覧

全てのファンクション・モジュールと、それぞれがどのライセンスに該当するのかを確認します。

  1. Repository画面から、ユーザー&ロール>ロール>ファンクションとモジュール をクリックします。
  1. モジュール、ファンクション一覧が表示されます。ライセンスタイプも記載されています。
    全ファンクション数は、連結やPowerBIコネクタといった拡張機能を購入しているかどうかで大幅に異なります。
システムロール一覧

デフォルトで用意されているロールの一覧を確認できます。

  1. Repository画面から、ユーザー&ロール>ロール>システムロールテーブル をクリックします。
  1. システムロール一覧が表示されます。
    含まれるファンクションを確認するには、任意のシステムロールを選択してメニューから「有効な機能」をクリックします。(例として$DEREPORTを選択しています)
  1. 選択したシステムロールに含まれるファンクションが表示されます。
カスタムロール一覧

初期の状態では何もありませんが、要件に応じて任意のロールを作成することができます。
例として1つカスタムロール「DATA_ENTRY」を作成してみます。
システムロール「$DEREPORT」を参照しつつ、ファンクションを追加します。

  1. Repository画面から、ユーザー&ロール>ロール>ロールテーブル をクリックします。
  1. カスタムロール一覧が表示されます。+ボタンで新規作成し、コード・説明を入力します。
  1. 既存のロールからファンクションを継承させる場合は「参照ロール」の右の「・・・」からロールを選択します。複数選択することも可能です。

 今回は例としてシステムロール「$DEREPORT」を選択します。

  1. 保存後、メニューから「有効なファンクション」を選択します。
  1.  さらに追加したいファンクションを設定します。
    ※アクションはデフォルトの「有効」以外に、「無効」「読み取り専用」があります。「無効」にすると継承したファンクションから除外するといったことも可能です。
  1. 「定義結果」から、継承したファンクション+追加したファンクションが確認できます。
    無効にした場合は表示されなくなるのではなく、アクションが「無効」で表示されます。

※ちなみに今回作成したカスタムロールで使用した参照ロール「$DEREPORT」はライセンスライプ「データ入力&レポーティングユーザー」ですが、追加でパワーユーザーライセンスのファンクションを追加しています。
そのため、このロールが付与されたユーザーはパワーユーザーライセンスを使用することになります。

【実案件であったパターン①】ユーザーを作成し、ロールにマッピング

ここでは、実案件のパターンに即したケースを記載します。

今回は例として、実行ユーザー「ANDY」をデータベース「TGK_DATA_001」に「$DEREPORT」ロールで追加します。

  1. Repository画面から、ユーザー&ロール>ユーザー/ロールのマッピング をクリックします。
  1. +ボタンで行を追加し、ユーザー、データベース、ロールを選択します。
    ※データベース数は契約に応じて変わりますが、ユーザー管理やデータベース管理などを行うRepositoryは1環境につき1つとなります。
  1. 保存して完了です。
【実案件であったパターン②】参照ユーザーを作成しロールにマッピング、ユーザーを紐づける

参照ユーザーを使用すると、各ユーザーごとに「ユーザー/ロールのマッピング」を行う必要はなくなりますが、代わりに参照ユーザーに対してマッピングをする必要があります。

  1. 新たに参照ユーザー「REF_0001 – 事業部ユーザー」を作成します。
    参照ユーザーに対するロールの設定は、前項の「ユーザー/ロールのマッピング」と同手順で行います。
    ※参照ユーザーのコードや名称は、一目で参照ユーザーと分かるようなものがお勧めです。
  1. セキュリティタブで「他のユーザーに対する参照ユーザー」にチェックを入れることで、参照ユーザーとして使用可能となります。
    また、「一時的にロック」にチェックを入れることで、このユーザー情報ではログインができなくなり、ロール継承元として使用しつつライセンス消費を抑える運用が可能になります(契約内容により異なります)。
    ※参照ユーザーでログインして使用するニーズは過去案件でもほぼなく、特段メリットもありません。上記対応でロックして明確に役割を分ける方が、メンテナンスの分かりやすさを考えてもよいと思います。
  1. 別途新しいユーザー「ALEX」を作成し、「参照ユーザーからロールを継承」にチェックを入れます。その下の「参照ユーザー」の三点リーダーをクリックします。
  1. 参照ユーザーに「REF_0001 – 事業部ユーザー」を選択して保存します。
  1. これで、ユーザー「ALEX」のロールは「REF_0001」から継承されるようになりました。

概要説明でも触れましたが、参照ユーザーを利用するかどうかは見極めが必要です。
案件においても様々なパターンがありましたが、以下を判断の材料としています。
 ・数十人~数百人規模のユーザーがいる
 ・利用ユーザーの入れ替えが定期的にある
 ・ユーザーの権限がある程度パターン化できる

最後に

今回はRepository側の設定にフォーカスを当てましたが、実際にはこの後各データベース内で「どの組織が見れるか」といった詳細な権限の設定が必要となります。
Repository側で設定するのはあくまでも利用できる機能レベル(次元の管理、フォーム作成、フォーム入力等)です。

CCH Tagetikのセキュリティは設定項目が細分化されており多角的な設定ができるため、組み合わせによって多様な要件に対応できるのが強みだと思います。一方で、その機能を使いこなすには仕様理解や実務経験によって選べる選択肢を揃えておく必要があります。

私たちはこれまでの豊富な経験をもとに、お客様の要件を正確にお伺いしながら潜在的なセキュリティリスクを考慮したセキュリティ設計を行っております。
CCH Tagetikにおけるセキュリティ要件の実現可否など、お困りごとがございましたらぜひお問い合わせください。

※本記事は、株式会社KYOSOによる技術検証の経験に基づいたものであり、CCH Tagetikの公式ドキュメントではありません。 製品のアップデートにより、本記事の内容が最新の仕様と異なる可能性があります。導入に際しては、最新の公式情報をご確認ください。

https://www.wolterskluwer.com/ja-jp/solutions/cch-tagetik

投稿者プロフィール

水門 知世
水門 知世
2015年に入社し、金融機関向けEBサービスの運用・保守に従事。
2019年よりOracle PBCSの開発・保守を経験し、2021年以降はCCH® Tagetikの設計・開発・保守を幅広く担当しています。
会計・経営管理領域での経験を生かし、お客様の課題解決につながる実践的なノウハウを発信してまいります。
この記事をSNSでシェア!