FileMakerのメール送信機能を利用してログインウェブ認証を実装してみる。
FileMakerで制作したデータベースファイルには標準でアカウントを登録する機能があります。しかしこれはファイル単体でログイン時にパスワード制御をかけるのみでログインの認証をインターネット上で管理することはできません。もちろんFileMaker Serverを利用すればできるのですが、小さいシステムではそこまでお金をかけることは難しいように思います。今回の実験はFileMaker Proでウェブ認証ができないかを検証しました。
こういう状況下でおすすめです。
・システム利用料を毎月課金したい
・解約時にシステムを使用不可にしたい
・入金がない場合にログインに失敗させシステムを使用不可にしたい
・コピーして流用されるのを防ぎたい
・FileMakerServerを入れるほどの大きいシステムではない
実際に行なった作業は以下のとおりです。
①レンタルサーバーを借りる
②テストのメールアカウントを作成する
③FileMakerでメール送信機能を使ったウェブ認証を実装する
④動作テスト
①レンタルサーバーを借りる
メールアカウントを作るためにレンタルサーバーを借りました。というより既に持っていたので実際はこの作業はしていません。
②テストのメールアカウントを作成する
ダミーのメールアカウントを作成しユーザー名、パスワード、ポート番号を控えました。
③FileMakerでメール送信機能を使ったウェブ認証を実装する
これがいちばん肝となる部分ですが、FileMakerのスクリプトで「メールを送信」機能を利用します。
宛先には適当なメールアドレスを設定し、SMTPサーバー経由の送信を利用します。
SMTPのサーバー情報は②で控えたユーザー名、パスワード、ポート番号を利用します。
④動作テスト
正しいサーバー情報が入っている状態でメール送信を行います。当然、正しい設定なのでメール送信ができてエラーは発生しません。
次にサーバー情報にあえて間違えた情報を入力して送信を行います。そうするとエラーコード1501が出力されエラーが発生します。
この動作を利用します。
アカウントにはそれぞれ秘密裏にメールアカウントを割り振り、メールアカウントとパスワードを入力できるデータベースを用意します。ユーザーがログイン処理をする際にダミーのメールアドレスに送信させます。通常は正常に送信できるのでそのままログインをできますが、何らかの事情でログインをブロックしたいアカウントにはメールのパスワードを変更する、メールアカウント自体を削除することで変更後にメール送信を行おうとしてもエラーとして返ります。この時にログインできない旨のエラーメッセージを表示させればウェブ上でのログイン制御が可能となります。