「自己紹介をしてください」と言われた時、あなたはどんなことを話すだろうか。ある調査によると、日本人の場合は「自身の強み」や「何ができるか」ではなく、部署や役職などの「属性」を語る傾向にあるという。
しかし、ITシステムでは「属性」主導で管理が行われるケースはそれほど多くない。このような「ビジネスプロセスとITシステムのミスマッチ」は非効率であり、高コストなアクセス管理を生み出す結果になってしまう。そこで、本稿では「属性」をベースにアクセス管理を行うことによるメリットと具体的なテクノロジーについて解説する。
現在のITシステムにおけるアクセス管理方法の問題点
ITシステムで管理されているリソースにWindows Serverでアクセス管理する場合、現状ではどのような方法で実現しているだろうか。いくつかのケースから、まずは確認してみたい。
・Windowsファイルサーバの場合
マイクロソフトでは、10年以上にわたって「AGDLP」と呼ばれる方法で、アクセス許可を割り当てることを推奨してきた。AGDLPは「アカウント(A)」「グローバルグループ(G)」「ドメインローカルグループ(DL)」「アクセス許可(P)」の略で、(とても簡単に言えば)共通の特徴を持つユーザーをグループにまとめ、そのグループに対してアクセス許可を割り当てるという管理方法である。現在では多くの組織で、このアクセス許可の割り当て方法が採用されている。
「AGDLP」によるアクセス許可の割り当て例
・SQL Serverの場合
ITシステムのリソースをデータベースサーバに保存し、管理している場合も多いだろう。こうしたデータベースに保存されたリソースへのアクセス許可の管理に、SQL Server自身が持つアクセス許可の機能を利用する場合がある。
SQL Serverでは「ロールモデル」と呼ばれるアクセス許可の割り当て方法を採用しており、さまざまなアクセス許可が割り当てられた「ロール」と呼ばれる設定にWindowsのユーザーを追加する。この方法は、ファイルサーバにアクセス許可を割り当てるときに、「グループ」を使ってアクセス許可を設定しているのと本質的には変わらないことが分かる。

データベースを作成する権限である「dbcreator」ロールのプロパティ。Windowsユーザーを追加してアクセス許可を設定している
・SharePoint Serverの場合
社内のポータルサイトとして、SharePoint Serverを活用している組織も多いだろう。SharePoint Serverでも基本的なアクセス許可の管理方法は、「グループ」をベースとしている。あらかじめ、SharePointサイトへのアクセス許可が割り当てられたグループ(SharePointグループ)があるので、SharePointグループにWindowsのグループやユーザーを追加してアクセス許可を割り当てる。

「Example社のメンバー」などのSharePointグループにはアクセス許可が割り当てられているので、管理者はグループにWindowsユーザー/グループを追加するだけでアクセス許可を設定できる
ここまで3つの方法を確認したが、いずれのアクセス許可の管理方法もユーザーをグループにまとめ、グループに対してアクセス許可を割り当てている。ところが、ビジネスにおいて、ITリソースへのアクセス許可は「属性」によって決まる。考えてみてほしい。実際の会社、組織では次のように、すべて「属性」によってアクセスの可否が決まるのだ。
- 上級職員だからデータベースへのアクセスを許可する
- 東京事業所に勤務しているからアクセスを許可する
- 営業部に所属しているからアクセスを許可する
ところが、これまで見てきたITシステムでは、「グループ」という概念を持ち出してアクセスを管理している。グループと言っても実際には、「上級職員」グループ、「東京事業所」グループ、「営業部」グループといったように、属性をベースにしたグループを作っているだけである。それであれば、グループを作成する分だけ、管理は非効率になってしまうのである。
そして、このような非効率な管理はヒューマンエラーなどの要因により、グループに正しいユーザーが登録されなくなり、不適切なアクセス許可が割り当てられる、情報漏えいが起きる、といった問題に発展するのだ。
コスト削減のために「属性」主導のアクセス管理を行う
グループをベースにしたアクセス管理の非効率さを改善する方法として、属性主導のアクセス管理がある。「属性主導」という言葉は筆者の考えた造語であり、一般には「クレームベース」という言葉が使われる(「クレーム」とは属性のことを指すが、「クレーム」という言葉は日本語で別の意味を持つので、あえてここでは「属性主導」という言葉を使う)。
属性主導のアクセス管理では、特定のITリソースへのアクセス管理にグループを使うのではなく、ユーザーの持つ「属性」を直接参照して、アクセス可否を決定する。利用する属性主導のアクセス管理システムによって多少の違いはあるが、イメージとしては次のようになる。
- 1.ユーザー名とパスワードを利用してサインインを行う
- 2.サインインに成功すると、ユーザーの属性情報が入った「トークン」と呼ばれる情報が作成され、ユーザーのコンピュータに保存される
- 3.リソースにアクセスするときには、「トークン」をサーバーに提示してアクセス可否を決定する
「部署」という属性をベースにアクセス許可を割り当てるケース
このような方法の場合、リソースのアクセス管理を行うサーバ側では、「営業部であればアクセスを許可する」のような直観的なアクセス許可を設定するだけでよく、事前に「グループ」を作成するといった面倒な作業も必要ない。
一方、クライアント側は「トークン」と呼ばれる情報を持っていれば、トークンをサーバに渡すだけで、そのユーザーが「営業部のユーザーであるか」をサーバ側で確認してもらえる。
では、Active Directoryをベースにして属性主導のアクセス管理を行う場合、具体的にどのようなテクノロジーが活用できるかをみていこう。
・ダイナミックアクセス制御(DAC)
「ダイナミックアクセス制御(Dynamic Access Control:DAC)」はWindows Server 2012から実装されたテクノロジーで、Windows Server 2012のActive Directoryユーザーのプロパティに登録された属性情報を基にトークンを作成する。ダイナミックアクセス制御で作成されたトークンは、主にファイルサーバに保存されたファイルにアクセスするときに利用する。

ダイナミックアクセス制御では、Active Directoryから属性主導のアクセス許可を割り当てている
・Active Directoryフェデレーションサービス(ADFS)
「Active Directoryフェデレーションサービス(ADFS)」はWindows Server 2003以降で利用できるテクノロジーだが、ここではWindows Server 2008以降で利用可能なADFS 2.xというバージョンに絞って解説する。
ADFSではユーザーがITリソースにアクセスしたタイミングでADFSサーバにアクセスし、リソースにアクセスするためのトークンを作成してもらう(ダイナミックアクセス制御と同じように、サインインのタイミングでトークンを作成することも可能)。
ADFSを利用した属性主導のアクセス許可は、アプリケーション側ではなくADFS側でアクセス許可を設定するのが特徴だ。そのため、アプリケーション側でグループを使ったアクセス許可を設定しなくても、ADFSサーバで「営業部だったらトークンを作成する」のように設定するだけでよい(ADFSによるアクセス制御はトークンを「発行する」か「発行しない」かで行われる)。

「部署属性が営業部の場合、トークンを作成する」という条件を設定している様子
ADFSサーバによるアクセス制御は汎用なシステムでの利用が想定されており、最初のセクションで登場したSharePoint Serverのアクセス制御はもちろん、SQL Serverのデータベースに格納されたデータへのアクセスもWebページ経由でデータベースにアクセスするように構成されていれば、Webページのアクセス制御にADFSを活用できる。
ダイナミックアクセス制御とADFSという、Windows Server 2012の2つのテクノロジーから属性主導のアクセス制御方法を紹介したが、これらのアクセス制御方法を利用することによるメリットはもう1つある。Active Directoryで一度サインインするだけで、すべてのITリソースへのアクセスが完結する点だ。
一度のサインインですべてのITリソースにアクセスできるテクノロジーを「シングルサインオン」と呼ぶが、このことはユーザーに対するメリットをもたらす。
Keep up with ZDNet Japan
ZDNet JapanはFacebookページ、Twitter、RSS、Newsletter(メールマガジン)でも情報を配信しています。