当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。
記事そのもののリンクについてはご自由に行っていただいてよいです。

テクてく Lotus 技術者 Slack に参加しよう!

2016年7月1日金曜日

Notes/Dominoのアクセス権について

みなさん、こんにちは。
気が付いたら7月です。つまり、公約?が果たせなかった自分がここにいるということです。
なんでしょう、必要に迫られないとやらないという性格がモロにでてしまったという感じです。


さて、気を取り直して今日の話題。
今までNotes DBに対するアクセス権について取得したり設定したりといったサンプルプログラムを紹介してきましたが、
そもそもアクセス権とはなんぞや?ということに触れていませんでした。

ということで初心にかえって、ACLについて確認してみましょう。
(資料は以前に作成したものがあったのでそれを公開する形になります)。


まず、
Notes の文書をアクセスするためには、次の過程を踏まなければなりません。
  1. Notes DBへのアクセス
  2. ビューへのアクセス
  3. 文書へのアクセス
  4. アイテムへのアクセス
上記のそれぞれの中で、アクセス制御が発生します。
それらについて解説していきます。

1.Notes DBへのアクセス

Notes DBはファイルであり、データベース(以下、DB)ごとにアクセス制御が存在します。
アクセス制御は全部で次の7段階に分けられます。   
区分アイコン説明
管理者DBのすべての文書を閲覧することができる。
DBに文書を作成することができる。
DBのすべての文書を編集することができる。
DBの設計を変更することができる。
DBそのものを削除することができる。
設計者DBのすべての文書を閲覧することができる。
DBに文書を作成することができる。
DBのすべての文書を編集することができる。
DBの設計を変更することができる。
編集者DBのすべての文書を閲覧することができる。
DBに文書を作成することができる。
DBのすべての文書を編集することができる。
作成者DBのすべての文書を閲覧することができる。
DBに文書を作成することができる。
自分の作成した文書のみ編集することができる。
読者DBのすべての文書を閲覧することができる。
投稿者DBに文書を作成することができる。
なしDBを開くことはできない。


2.ビューへのアクセス

DBへアクセスすることが許されたら、ビューへアクセスできるかどうかのチェックが行われます。
ビューは、Notes DBの文書の一覧が表示されているものです。
ビューへのアクセスを禁止されるということは、文書へのアクセスを禁止しているといってもよいでしょう。
※ただし、ビューは入り口のようなものなので、複数のビューがある場合には、別のビューから一覧を表示して、文書へアクセスすることもできるので、厳密なアクセス制御とは言えません。


3.文書へのアクセス

文書は通常、DBへアクセスできるユーザーであれば、DBのアクセス権限に従った形でアクセスできます(「投稿者」以外は閲覧が可能)。
ただし、DBの設計方法によって、このルールを変更することができます。

「読者名」
このフィールドを設定することにより、文書を閲覧することができるユーザーを限定することができるのです。
設定内容説明
*
なし
アクセス制限がかかっていない状態。誰でも閲覧可能。
ユーザー名入力されているユーザーのみ閲覧可能。
グループ名そのグループ(Notesで定義してある)に所属しているユーザーのみ閲覧可能。
ユーザー名とグループ名の混在入力されているユーザー名と、グループに所属しているユーザーのみ閲覧可能。
上記以外グループ名でもないような名前などが入力されていると、誰も閲覧することができなくなる。

「作成者名」
DBに対して、文書を作成することができるのは、「投稿者」および「作成者」以上の権限を持つユーザーです。
この中でさらに、『すでに作成された文書』を編集することができるのは、「作成者」以上の権限を持つユーザーす。
1.DBへのアクセスで、「作成者」は『自分が作成した文書のみ編集することができる』となっていますが、ここでいう「自分が作成した文書」というのが、「作成者」フィールドの内容のことです。
設定内容説明
なし作成者が設定されていない状態。
「編集者」以上のユーザーのみ編集可能。
*「作成者」以上であれば、編集可能。
ユーザー名入力されているユーザーのみ編集可能。
グループ名そのグループ(Notesで定義してある)に所属しているユーザーのみ編集可能。
ユーザー名とグループ名の混在入力されているユーザー名と、グループに所属しているユーザーのみ編集可能。
上記以外「編集者」以上のユーザーのみ編集可能。
※つまり、「編集者」以上の権限を持つユーザーは、「作成者」フィールドの有無の関係なしに、文書を編集することができるのです。
※「作成者」フィールドに入力された内容が、文書の作成者という扱いになるので、実際には自分が作成していない(入力していない)文書でも編集できるようにすることも可能になります。
 →誰が作成したのかを明記しなければならないようなDBの場合、注意が必要です。


4.アイテムへのアクセス

文書へアクセスができると、その内容を閲覧することができますが、IBM Notes/Dominoの場合、さらに細かい設定ができます。

フィールドをいくつも用意することができますが、このフィールドをユーザーによって、編集権限を与えたりなくしたりすることができるのです。
例)→文書のタイトルだけは一度作成したら変更させたくないが、他の内容は変更しても良いという場合など。

アクセスを制限したいフィールドに設定を施すことでできるようになります。
 →この場合、「編集者」以上でないと、そのフィールドの内容を編集することができません。(作成者は、新規作成時に限り、入力が可能)
※この他に、セクション単位で、編集できるユーザーを制限する方法もあります。


5.文書の印刷/コピー

文書単位で、印刷、コピーを不可にすることができます。
あくまでも、文書単位なので、ある特定のユーザーだけが印刷できないようにするなどといった使い方(設定)はできません。
ただし、添付ファイルについては適用されません(起動・保存ができてしまう)。


6.文書の削除

「作成者」以上であれば、文書の削除を行うことができます。
ただし、アクセス権限に「文書の削除を許可する」というチェックがついていることが条件となります。(「作成者」は『自分の作成した文書』に限り、削除をすることができます。)
 →たとえ「管理者」でも、「文書の削除を許可する」にチェックが入っていなければ、文書を削除することはできないということを意味します。
(ただし、「管理者」はDBそのものを削除できてしまうので、そちらのほうが問題かもしれませんが・・・)
ACLの「文書の削除を許可」


※上記の設定は、すべてサーバー上のノーツDBに対して適用されます。
ローカルPC内のデータベースに対しては、有効になりません。
 →ローカルPCでもアクセス制御を適用させる方法はあるが、サーバーで施してもローカルPCにコピーする際に簡単にはずせてしまうので、ここでは記述しません。


いかがでしょうか。ACLについてなんとなくしか理解していなかった方や、IBM Notes/Dominoを最近始めました。という方は是非よく読んでいただきたいです。

では、今日はこの辺で・・・



Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
IBM Championの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

1 件のコメント:

Mitsuru Katoh さんのコメント...

ありがとうございます。参考にさせていただきます。