一.概要
帳票にはWeb帳票のハイパーリンクが設定されていますが、ハイパーリンク先の子帳票に対して権限を持たないユーザーには、ハイパーリンクをクリックして子帳票が表示できますか?ハイパーリンク先の子帳票は、親帳票から権限を継承できますか?
以下は、ハイパーリンク継承権限のロジックを整理し、FineReportハイパーリンクの権限継承設定で、権限の漏洩を回避できる方法を説明します。
注1:URLのハイパーリンクジャンプにはhyperlinktokenが付けられるため、30分の有効期間内に、当tokenを使用して他のすべてのテンプレートを表示できるため、不正アクセスにつながる可能性があります。そのため、2019-12-05以降のバージョンのJARパッケージにはユーザーログイン制限が追加されています。
注2:FineReportには共有機能がありません。共有とは、現在の帳票のURLを他の人にコピーすることをさします。
二.ロジックの説明
ユーザーは、管理ポータルと管理ポータル以外の両方から帳票を閲覧できます。
上記2つのシーンで帳票のアクセス許可を構成する方法は同じですが、どちらもテンプレート認証を使用してテンプレートのアクセス許可を構成します。テンプレート認証の詳細については、「テンプレート認証」をご参照ください。
注:ハイパーリンク方式がテンプレートパスである場合にのみ、ハイパーリンク権限が継承できます。次の2つの方法は、権限の継承に対応していません。
1.パラメータはテンプレートパスの直後に書き込むこと
2.WebページのリンクにテンプレートプレビューURLを入力されること
1.管理ポータルで開かれる帳票
ユーザーがFineReport管理ポータルを直接使用して帳票を開く場合、テンプレートの権限を確認するためのテンプレートアクセス方法は、以下の三種類があります:テンプレートタイプのトップページ、リンクを介してテンプレートトップページをマウントすること、リンクを介してテンプレートディレクトリをマウントすること。
プラットフォームディレクトリは、テンプレートの権限を確認せずにテンプレートを直接マウントするには、権限管理-権限の構成で対応するユーザーにディレクトリ権限を割り当てるだけで、ユーザーはテンプレートの内容を確認できます。
ハイパーリンクで子帳票を開く権限を持たないユーザーは、子帳票を閲覧するには、子帳票にメイン帳票の権限を継承する必要があります。子帳票テンプレートの認証権限を再度設定するのは面倒です。
理解を容易にするために、詳細なユーザー操作シーンを例として説明します(ここでは役割認証シーンのみを説明します)。
操作シーン | 認証&権限 | 2019-12-05以降のバージョンのJARファイルで、ハイパーリンクが指す子帳票を閲覧する場合 |
---|---|---|
ユーザAがプラットフォームにログイン-帳票1を開く-帳票2にハイパーリンクを設定する | 帳票2には要認証 ユーザAには帳票2に対して権限を持たない | 新しいウィンドウ/プラットフォーム内の新しいタブ/ダイアログボックス/現在のページ/プラットフォームの現在タブのいずれによって帳票2を閲覧できます |
ユーザAがプラットフォームにログイン-帳票1を開く-帳票2にハイパーリンクを設定-帳票2のURLを新しいブラウザにコピーする | 帳票2には要認証 ユーザAが権限を持たない ユーザBが権限を持つ ユーザCが権限を持たない | ログインプロンプトを表示し、ユーザAがログインした後: tokenの期限が切れる前に帳票2を閲覧できますが、tokenの期限が切れた後に閲覧できません。 帳票1のハイパーリンクを使用して改めて開く必要があります。 ログインプロンプトを表示し、ユーザーBがログインした後: 帳票2を閲覧でき、且つテンプレートデータはユーザーBの権限に従ってフィルタリングされます ログインプロンプトを表示し、ユーザーCがログインした後 権限がないとメッセージが表示されます |
ユーザーAがプラットフォームにログイン-帳票1を開く-帳票2にハイパーリンクを設定-帳票2のURLを同一ブラウザの新タブページにコピーする | 帳票2には要認証 ユーザーAは帳票2に対して権限を持たない | tokenの期限が切れる前に帳票2を閲覧できます tokenの期限が切れた後に閲覧できません。帳票1のハイパーリンクを使用して改めて開く必要があります。 |
2.管理ポータル以外で開かれる帳票
ユーザーが帳票を自分のシステムに統合して開く場合、ユーザーはテンプレート認証を使用してテンプレートの権限を割り当てる必要もあります。
ハイパーリンクで開かれる子帳票は、メイン帳票の権限を継承する必要があります。帳票が多数ある場合、管理者は通常、メイン帳票の権限のみを設定し、ハイパーリンクが指す子帳票が多数存在する可能性があるため、権限を逐一に設定するのは非常に面倒です。
理解を容易にするために、詳細なユーザー操作シーンを例として説明します:
2.1.ロール権限認証
操作シーン | 認証&権限 | 2019-12-05以降のJARファイルにおいて、ハイパーリンクが指す子帳票を閲覧する場合 |
---|---|---|
ユーザAが帳票1を開く-帳票2にハイパーリンクを設定する | 帳票1と帳票2とも要認証 ユーザAは帳票1に対して権限を持ち、帳票2に対して権限を持たない | tokenの期限が切れる前にユーザーAは帳票2を閲覧できます tokenの期限が切れた後にログインプロンプトが表示され、ユーザーAがログインした後に帳票2を閲覧できません。帳票1のハイパーリンクを使用して改めて開く必要があり、帳票1を改めてログインする必要もあります。 |
ユーザAが帳票1を開く-帳票2にハイパーリンクを設定する-帳票2のURLを新しいブラウザにコピーする | 帳票1と帳票2とも要認証 ユーザーAは帳票1に対して権限を持ち、帳票2に対して権限を持たない ユーザーBは帳票2に対して権限を持つ | ログインプロンプトが表示され、ユーザーAがログインした後: tokenの期限が切れる前に帳票2を閲覧できます tokenの期限が切れた後にログインプロンプトが表示され、ユーザーAがログインした後に帳票2を閲覧できません。帳票1のハイパーリンクを使用して改めて開く必要があります。 ログインプロンプトが表示され、ユーザーBがログインした後: 帳票2の権限を付与されたデータは閲覧できます |
ユーザAが帳票1を開く-帳票2にハイパーリンクを設定する-帳票2のURLを同一ブラウザの新タブページにコピーする | 帳票2は要認証 ユーザーAは帳票2に対して権限を持たない | tokenの期限が切れる前にユーザーAはログインせずに帳票2を閲覧できます。 tokenの期限が切れた後にログインプロンプトが表示され、ユーザーAがログインした後に帳票2を閲覧できません。帳票1のハイパーリンクを使用して改めて開く必要があります。 |
2.2.ユーザーパスワードのみを認証する
操作シーン | 認証&権限 | 2019-12-05以降のJARファイルにおいて、ハイパーリンクが指す子帳票を閲覧する場合 |
---|---|---|
ユーザAが帳票1を開く-帳票2にハイパーリンクを設定する | 帳票2は要認証 | tokenの期限が切れる前にユーザーAは帳票2を閲覧できます tokenの期限が切れた後にユーザーAは帳票2を更新しログインプロンプトが表示され、任意ユーザーがログインしたら帳票2を閲覧できます |
ユーザAが帳票1を開く-帳票2にハイパーリンクを設定する-帳票2のURLを新しいブラウザにコピーする | 帳票1と帳票2とも要認証 | ログインプロンプトが表示され、ユーザーAがログインした後: tokenの期限が切れる前に帳票2を閲覧できます 期限が切れた後、改めてログインする必要があります。ログインしたら、閲覧できます ログインプロンプトが表示され、ユーザーBがログインした後: tokenの期限が切れる前に帳票2の権限を付与されたデータを閲覧できます 期限が切れた後、改めてログインする必要があります。ログインしたら、閲覧できます |
ユーザAが帳票1を開く-帳票2にハイパーリンクを設定する-帳票2のURLを同一ブラウザの新タブページにコピーする | 帳票2は要認証 | tokenの期限が切れる前にユーザーAはログインせずに帳票2を閲覧できます tokenの期限が切れた後、ユーザーAは改めてログインする必要があります |
2.3.デジタル署名
操作シーン | 認証&権限 | 2019-12-05以降のJARファイルにおいて、ハイパーリンクが指す子帳票を閲覧する場合 |
---|---|---|
ユーザAが帳票1を開く-帳票2にハイパーリンクを設定する | 帳票1と帳票2とも要認証 | tokenの期限が切れる前にユーザーAは帳票2を確認できます tokenの期限が切れた後に帳票2が確認できません。帳票1のハイパーリンクを使用して改めて開く必要があります。しかし、帳票1のデジタル署名の期限が切れないか確認しなければなりません。 |
ユーザAが帳票1を開く-帳票2にハイパーリンクを設定する-帳票2のURLを新しいブラウザにコピーする | ||
ユーザAが帳票1を開く-帳票2にハイパーリンクを設定する-帳票2のURLを同一ブラウザの新タブページにコピーする |
2.4.認証を有効にしない場合
操作シーン | 2019-12-05以降のJARファイルにおいて、ハイパーリンクが指す子帳票を閲覧する場合 |
---|---|
帳票1を開く>帳票2にハイパーリンクを設定する | ログインする必要なく、帳票1と帳票2の内容をいつでも閲覧できます。 |
帳票1を開く>帳票2にハイパーリンクを設定する>帳票2のURLを新しいブラウザにコピーする | ログインする必要なく、帳票1と帳票2の内容をいつでも閲覧できます。 |
帳票1を開く>帳票2にハイパーリンクを設定する>帳票2のURLを同一ブラウザの新タブページにコピーする | ログインする必要なく、帳票1と帳票2の内容をいつでも閲覧できます。 |