
FileMakerエンジニア

本記事は、FileMaker(ファイルメーカー)とDjangoを連携させるログイン機能編 Part2になります。
前回のPart1では、Django側でプロジェクトを作成し、その中にアプリケーションを作成と初期準備の工程を解説しました。
これにより、開発のベースとなるDjangoの環境が整った状態となっています。
今回からはいよいよ本格的にログイン機能の開発に着手していくフェーズに入ります。
とはいえ、すぐに画面側の処理やユーザー認証の構築に入る前に、FileMaker Data APIとの接続準備を進めていくことが重要です。
DjangoからFileMakerのデータベースへアクセスし、ログイン情報をAPI経由で取得・照合するための土台を構築していきます。
目次
FileMaker Data API
まずは、汎用的に作成できるようにモジュール化していきます。
モジュール化とは、プログラムの中で同じようなプログラムが出てきたときに何度も同じソースコード、つまりプログラムを書くのではなく、プログラムの機能を意味のある単位(モジュール)に分割して整理する設計手法のことです。
これをすることでプログラムの簡略化やテストの範囲を減らしたり、バグがおこりにくいシステムが開発できます。
認証
ログイン
FileMaker Data APIを使うときはまず、サーバーとファイルにアクセスできる権限があるかを確かめるために Tokenを取得します。
つまり、アプリケーションやWebサービスでいうログインを行います。
Tokenは、いわば「このリクエストは認証をパスしていますよ」という デジタルの引換券となります。
これをリクエスト時に添えることで、サーバーはどんな人がどの権限でアクセスしているのかを判断し、許可された範囲内でAPI操作を実行します。
そのため、FileMaker Data APIをはじめとする多くのWeb APIで、Tokenは認証の要として欠かせない仕組みになっています。
ログインをするためのソースコードは以下になります。
returnは使用する際にTokenを使用できるようにTokenを返しておきます。
なお、本来であれば取得できなかった場合のエラー処理を記述する必要がありますが、ここでは省略しています。

ログアウト
ログインをするとログアウトする処理も必要です。
よくAPIを使用しているシステムを見るとTokenを発行しそのままにしているものがよく見かけますが、セキュリティと運用面でリスクが増えるので必ずログアウトすることをおすすめします。
また、セキュリティ面を考えるのであればトークンには有効期限を設けておくとよいです。
FileMakerではTokenの有効期限は1時間になっていますので、その点は安心ですね。
Tokenは短命に、1 端末 1 本+ローテーション が現代的な安全設計とも言えますので設計の際は覚えておくとよいと思います。
ログアウトをするためのソースコードは以下になります。

レコードの取得
では、Tokenを取得しログアウトまで作成いたしましたので、次はFileMaker内にあるレコードを取得するためのソースコードを記載します。
今回はFileMaker内にある担当者マスタのアカウント、パスワードが一致するものでDjangoにログインします。
Djangoのログインは後程開発しますので、まずはFileMakerに指定したレコードがあるかを探すためのソースコードを開発します。
レコードを取得するためのソースコードは以下になります。

少しだけ解説します。 まず、先ほど作成したログインモジュールを login(host, database) で呼び出し、Tokenを取得します。 取得したTokenは、headersのAuthorization: Bearerに入れています。
また、リクエストパラメータの json=query にレコードの検索条件となるJSONを入れます。
ここに関してはログインの処理を作成する際に再度記載いたします。
次にログアウト処理をするためにlogout(host, database, token)を実行しています。
最後にreturnで取得した内容を返しています。
まとめ
これで FileMaker Data API を叩くための準備がひと通り整いました。
コードをモジュールとして切り出しておくと、将来「同じような処理を開発したい」や「仕様変更で一部だけ書き換えたい」といった場面でも、必要なときに必要な部品だけを持って来られます。
結果としてバグの温床になるコピペ地獄を避け、テスト範囲を局所化できるのは大きなメリットです。
また、チーム開発では コードの責務が明確になる ためレビューやオンボーディングもスムーズまさにエンジニアリングの基本であり醍醐味ですね。
次回は Django 側で ログイン機能を開発し、本日作成した API モジュールと実際に連携させていきます。
また、株式会社ブリエでは、FileMakerを活用したシステム開発や運用支援を行っています。
業務システムのセキュリティについてのご相談もお気軽にお問い合わせください。

多岐にわたる業種での経験を経て、現在はFileMakerを中心に活躍中のエンジニアです。ローコード開発を得意としながらも、Django、React、Flutterなどの技術にも挑戦し、幅広い開発スキルを習得。常に自分の技術を磨き、より良いソリューションを提供できるよう、継続的にスキルアップを図っています。多彩な技術を駆使して、クライアントのニーズに応える柔軟性と、迅速かつ効果的な開発力が強みです。