ユーザのアカウント情報を管理する、2つの方法

業務系のWebアプリケーションを実装するにあたり、認証・権限による出し分け機能は必須だ。あるユーザには見せたくない画面や使わせたくない機能。手っとり早い方法のひとつとしてWebアプリケーションの使用前にログイン画面を作成し、そこで決められたアカウント(ユーザID)とパスワードを入力して使用開始させる方法がある。

ご存知のとおり、FileMakerにはデフォルトで「アカウントとアクセス権の管理」と呼ばれる機能が提供されている。あらかじめここでアカウントとパスワード、アクセス権セットを割り振っておけば、FileMaker Proからはファイルを開くときの認証、Webアプリケーション(Web公開)からはBASIC認証でそのアカウントとパスワードを入力してファイルが開けるようになる。

「アカウントとアクセス権の管理」ダイアログの"アカウント"タブ。管理者はここで利用ユーザの一元管理が可能となっている

「アカウントとアクセス権の管理」で定義したアカウント情報は、ファイルを開く際に使用する。デベロッパはログイン画面も実装する必要もないので便利な機能だが・・

アカウントとアクセス権の管理でアカウント情報を管理することのメリットをまとめてみよう。

  • 管理者がユーザアカウント情報を一元で管理できる
  • Get ( アカウント名 ) 関数やフィールドオプション「入力値の自動化」の作成/修正情報"アカウント名"でアカウント名を捕捉できるようになる
  • テーブルやフィールド・FileMakerスクリプトレベルでのこまかなアクセス権が簡単に設定できる

フィールドオプション「入力値の自動化」の設定例。レコードの作成時・修正時に作成アカウント名、修正アカウント名を自動的に保存できる

アクセス権セットの編集ダイアログ。データアクセスとデザインでは、細かい分類でのアクセス制御が可能だ

便利な機能だが、反面デメリットもある。

  • アカウント情報やアクセス権セットはほかのファイルからのインポートができない。すべて手動での移行となるため、ファイル移行といった作業時に手間がかかる
  • アカウントの追加・変更・削除・閲覧には外部テーブル・FileMakerスクリプトを併用しない限り基本的にFileMaker Proが必要

アカウント情報などのインポートは、最新バージョンであるFileMaker Pro 10/FileMaker Pro Advanced 10でも用意されていない。管理されているアカウント情報が100も200もあるようなファイルでは、移行作業だけでも一苦労だ。

これらのデメリットをおぎなうために、別途外部テーブルを用意して「アカウントとアクセス権の管理」と同期する方法や、「アカウントとアクセス権の管理」そのものを利用しないといった方法もある。この場合、認証手順は「入力されたアカウント情報でファイルが開けるか」ではなく「入力されたアカウント情報がレコードとして存在しているか」となる。

Webアプリの場合は「アカウントとアクセス権の管理」は使わない方が吉?

FileMaker Proで用意されている機能の恩恵を100%受けられないWebアプリケーションの場合だと、デメリットが浮き彫りになりやすい。Web公開から利用できる機能が限られているため、ユーザマスタの登録作業や変更作業といった場合でも、ひとつひとつFileMakerスクリプトが必要になってきてしまう。既存のアカウント情報が取得できない分、外部テーブルでの管理が必須となり、アカウント情報が「テーブル」と「アカウントとアクセス権」の2重管理になってしまうので、きちんと管理していないとトラブルや原因切分の要因を増やしかねない。

実装するアプリケーションにあわせてメリットデメリットをよく考え、よりベターな管理の仕方を身につけておきたいところだ。ここでは実装するアプリケーションごとに「開発・実装速度」「メンテナンス・トラブル時のダウンタイム短縮」を考慮した場合の管理方法を紹介しよう。

FileMaker Proのみで構成するアプリケーション

「アカウントとアクセス権の管理」と外部テーブルでアカウント情報を併用管理する。2重管理によるトラブルを防ぐために、アカウントの追加や変更は「アカウントとアクセス権」からはおこなわず、UIを別途作成し外部テーブルから処理をおこなうようにする

Webのみで構成するアプリケーション

「アカウントとアクセス権の管理」を使用せず、外部テーブルでアカウント情報を管理する

FileMaker Pro/Webの両方で構成するアプリケーション

  • アクセス権セットの"データアクセスとデザイン"による細かいアクセス制御が必要なければ「Webのみで構成するアプリケーション」に沿う。アクセス制御をする場合は「FileMaker Proのみで構成するアプリケーション」に沿う
  • FileMaker Proを使用するユーザ情報を「アカウントとアクセス権の管理」で管理し、Webアプリを使用するユーザ情報を外部テーブルで管理する

紹介した管理方法はあくまで経験による例のため、すべての場面において適用できる内容ではないことをあらかじめご了承願いたい。注目されにくいアカウント情報の管理方法だが、仕様変更や有事の際の対応にかかる時間は、実装内容によってピンからキリまで。「あの時こう実装しておけば・・」となる前に、あらかじめ何パターンか試しておこう。