Claris FileMaker Admin API の使い方と最新情報

2.7K Views

November 17, 23

スライド概要

2023-11-17 Claris Engage Japan 2023 T-27講演資料

profile-image

Claris FileMaker 認定デベロッパ、kintone認定 アプリデザインスペシャリスト(2020年2月)、kintone認定 カスタマイズスペシャリスト(2020年3月)。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
2.

オンラインイベント Claris FileMaker Admin API の使い方 と最新情報 松尾 篤 セッションID:T-27

3.

松尾 篤 株式会社エミック

4.

株式会社エミック Claris FileMaker 対応ホスティングサービスを1998年から提供 Claris FileMaker のサーバー製品と連携できる WordPress プラグインの開発・販売 Claris パートナー / Claris パートナー リセラー Webサイト : https://www.emic.co.jp/

5.

今回の話題 Claris FileMaker Server の管理方法 各管理方法の機能比較 Claris FileMaker Admin API の関連ツール FileMaker Admin API の使い方 Admin API で公開鍵認証を用いて接続する方法

6.

Claris FileMaker Server の管理方法

7.

FileMaker Server の管理方法 Claris FileMaker Server Admin Console fmsadminコマンド Claris FileMaker Admin API

8.

FileMaker Server Admin Console Webブラウザーで FileMaker Server の管理や設定等を行うことができる FileMaker Server の構成と管理、接続されたクライアントの管理、共有データベースの データの操作、監視、および共有を行うことができる Web アプリケーション (FileMaker Server ヘルプより引用)

10.

fmsadminコマンド コマンドラインインターフェース(CLI)で FileMaker Server を管理 操作にはターミナルアプリケーションを使用

11.

FileMaker Admin API バージョン18以降の FileMaker Server で利用可能(バージョン17では試用版) サーバー管理機能を他のアプリケーションやプログラム等から使用できる API = Application Programming Interface Claris FileMaker Cloud でも利用可能

12.

FileMaker Admin API の活用例 独自の管理ツールを作成 サーバーの設定を自動化 サーバーの設定状況を確認 サーバーの稼働状況を監視 サーバーサイドスクリプトの実行

13.

FileMaker Admin API の活用例 Webアプリケーションで特定の処理を行う際に FileMaker Server のスケジュールを実行 サーバー構築・設定の自動化 FileMaker Server の設定を変更する部分で使用 (同時接続ライセンス利用時に)接続クライアント数が同時接続ライセンス数の上限ある いは上限近くに到達した時にSlackのチャンネルに通知

14.

各管理方法の機能比較

15.

⚠機能比較表に関する注記 本資料における機能比較表は2023年10月時点の情報に基づくものです。 Claris FileMaker Server 2023(20.2.1)における記述であり FileMaker Cloud は対象外 です。 本資料における機能比較表は抜粋であり、すべての機能は列挙されていません。 凡例 ✅:利用可 ❌:利用不可

16.

リモートログイン PKI認証 (公開鍵認証) カスタム App の アップロード カスタム App の ダウンロード カスタム App の更新 Admin Console fmsadminコマンド Admin API ✅ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ❌ (※1) ✅ ❌ ❌ ❌ ❌ ❌ (※1) (※1)FileMaker Cloud であれば実行が可能

17.

Admin Console fmsadminコマンド Admin API データベースの開閉 ✅ ✅ ✅ データベースの 一時停止および再開 ✅ ✅ ✅ データベースの 一覧や状態を表示 ✅ ✅ ✅ ❌ データベースの検証 ✅ ✅ (※2) データベースの削除 ✅ ✅ ✅ (※2)検証スケジュールの実行で代替が可能

18.

Admin Console fmsadminコマンド Admin API データベース暗号化 パスワードの保存 ✅ ✅ ✅ データベース暗号化 パスワードの消去 ✅ ✅ ❌ 接続クライアントの 一覧を表示 ✅ ✅ ✅ クライアントに メッセージを送信 ✅ ✅ ✅ クライアントの 接続解除 ✅ ✅ ✅

19.

Admin Console fmsadminコマンド Admin API スケジュール設定の 作成 ✅ ❌ ✅ スケジュール設定の 表示・確認 ✅ ✅ ✅ スケジュール設定の 編集 ✅ ❌ ✅ スケジュール設定の 複製 ✅ ❌ ✅ スケジュール設定の 削除 ✅ ❌ ✅

20.

Admin Console fmsadminコマンド Admin API スケジュール 設定ファイルの保存 ✅ ❌ ❌ スケジュール設定の ロード・インポート ✅ ❌ ❌ スケジュール設定の 有効化 ✅ ✅ ✅ スケジュール設定の 無効化 ✅ ✅ ✅ スケジュールの実行 ✅ ✅ ✅

21.

Admin Console fmsadminコマンド Admin API プラグインの 一覧を表示 ✅ ✅ ✅ サーバープラグインの 有効化・無効化 ✅ ❌ ✅ ✅ ❌ ✅ ✅ ❌ ✅ ✅ ❌ ✅ Web 公開プラグイン の有効化・無効化 Data API プラグイン の有効化・無効化 各プラグインの構成 (有効状況)を取得

22.

Admin Console fmsadminコマンド Admin API ✅ ❌ ✅ Admin Console 自動再起動設定の変更 ❌ ✅ ❌ スクリプトエンジン 自動再起動設定の変更 ❌ ✅ ❌ ホストファイル数 上限の変更 ❌ ✅ ✅ クライアント接続の 最大数の変更 ❌ ✅ ✅ FileMaker Serverの 起動状態を取得

23.

Admin Console fmsadminコマンド Admin API サーバーの使用状況 ログの有効化 ✅ ✅ ❌ 使用状況ログ 収集間隔の変更 ❌ ✅ ❌ ログファイル サイズ制限設定の変更 ❌ ✅ ❌ クライアントの 使用状況ログの有効化 ❌ ✅ ❌ 最長呼び出しの 使用状況ログの有効化 ✅ ✅ ❌

24.

Admin Console fmsadminコマンド Admin API スクリプト同時セッ ション最大数の変更 ❌ ✅ ✅ セッションタイム アウト設定の変更 ✅ ❌ ✅ データベース キャッシュ設定の変更 ❌ ✅ ✅ ❌ ✅ ❌ ✅ ❌ ✅ Admin Console用 パスワードの再設定 Admin Console用 パスワードの変更

25.

パスワード保護された DBのホストを許可 CSRの作成 SSLサーバー証明書の インポート SSLサーバー証明書の 内容を確認 SSLサーバー証明書の 削除 Admin Console fmsadminコマンド Admin API ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ ❌ ✅ ✅ ✅

26.

Admin Console fmsadminコマンド Admin API ❌ ✅ ❌ スクリプトエンジンの 起動・停止・再起動 ❌ ✅ ❌ データベースサーバー の起動・停止 ✅ ✅ ✅ データベースサーバー の再起動 ✅ (停止+起動) ✅ ✅ ❌ ✅ ❌ Admin Serverの 起動・停止・再起動 fmsibの 起動・停止・再起動

27.

Admin Console fmsadminコマンド Admin API ✅ ✅ ❌ ✅ ✅ ❌ ✅ ✅ ❌ プログレッシブ バックアップの有効化 ✅ ❌ ✅ プログレッシブ バックアップ間隔変更 ❌ ✅ ❌ Web公開エンジンの 起動・停止・再起動 Data API エンジンの 起動・停止・再起動 ODBC/JDBCの 起動・停止・再起動

28.

XML APIの 有効化・無効化 PHP APIの 有効化・無効化 Data APIの 有効化・無効化 ODataの 有効化・無効化 ODBC/JDBCの 有効化・無効化 Admin Console fmsadminコマンド Admin API ❌ ✅ ✅ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅

29.

Admin Console fmsadminコマンド Admin API ライセンス情報および 接続数情報の取得 ✅ ❌ (※3) ✅ ライセンス証明書の インポート ✅ ❌ ✅ ライセンスの同期 ✅ ❌ ✅ 電子メール通知の 有効化・無効化 ✅ ❌ ✅ 外部認証の 有効化・無効化 ✅ ❌ ✅ (※3)ライセンスキーの表示は可能

30.

FileMaker Admin API の関連ツール

31.

Admin API の関連ツール さまざまな種類のツールやライブラリ FileMaker Pro で実装 コマンドラインツール MacアプリやiPadアプリ 各プログラミング言語(PHP、Python、JavaScript)用ライブラリ

32.

FM-Admin API Tool .fmp12 形式のファイルとして配布され FileMaker Server 2023にも対応 リモート管理および公開鍵認証にも対応 MITライセンス https://github.com/SoliantMike/FMAdmin-API-Tool

33.

fmcsadmin エミックで開発したコマンドラインツール リモート管理および公開鍵認証にも対応 Apache License, Version 2.0 https://github.com/emic/fmcsadmin

34.

fmsadminコマンド fmcsadmin ✅ ✅ リモートログイン ❌ ✅ PKI認証(公開鍵認証) ❌ ✅ スケジュール設定の削除 ❌ ✅ マルチプラットフォーム対応 (macOS、Windows、Ubuntu Linux)

35.

FileMaker Admin API の使い方

36.

FileMaker Admin API 今回は FileMaker Server を対象とした解説

37.

FileMaker Admin API を使うには HTTPリクエストをサーバーに送信する HTTP(HyperText Transfer Protocol)はWebで一般的に使われている通信規格 サーバーをSSL/TLSに対応させる必要がある 独自ドメイン名とSSLサーバー証明書が必要

38.

FileMaker Admin API Reference 📁 FileMaker Server > 📁 Documentation > 📂 Admin API Documentation > 📄 index.html ファイル をWebブラウザーで開く

40.

リクエストメソッド→ パス→ ←リクエストヘッダー

41.

←例 ←リクエストボディ

42.

HTTPリクエストの構成要素 リクエストメソッド(GET、POST、PUT、PATCH、DELETE) パス( /fmi/admin/api/v2 で始まる) リクエストヘッダー リクエストボディ

43.

FileMaker Admin API 使用手順 ログイン処理でアクセストークンを取得 Admin Console 管理者のユーザ名とパスワードを使用 取得したアクセストークン(Admin API トークン)を用いて処理を実行 アクセストークンの無効化(ログアウト処理を実行)

44.

ログイン処理 対象となるアカウント名とパスワードを用いてBase64エンコード文字列を生成して Authorizationヘッダーに含めることで認証が可能 アカウント名とパスワードの間には「:」を追加 アカウント名が「guest」、パスワードが「sample-password」の場合 Authorization: Basic Z3Vlc3Q6c2FtcGxlLXBhc3N3b3Jk

45.

ログインURLの例 https://example.com/fmi/api/v2/user/auth

46.

curlコマンド実行例 curl https://example.com/fmi/admin/api/v2/user/auth -X POST -H "Authorization: Basic Z3Vlc3Q6c2FtcGxlLXBhc3N3b3Jk"

47.

curl データ転送に特化したソフトウェア さまざまな通信規格に対応 WindowsおよびmacOSに標準搭載 [URL から挿入]スクリプトステップで cURL オプションを指定可能

48.

curlコマンド実行例 curl https://example.com/fmi/admin/api/v2/user/auth -X POST -H "Authorization: Basic Z3Vlc3Q6c2FtcGxlLXBhc3N3b3Jk" パス : /fmi/admin/api/v2/user/auth

49.

curlコマンド実行例 curl https://example.com/fmi/admin/api/v2/user/auth -X POST -H "Authorization: Basic Z3Vlc3Q6c2FtcGxlLXBhc3N3b3Jk" -X : リクエストメソッド(省略時はGET)

50.

curlコマンド実行例 curl https://example.com/fmi/admin/api/v2/user/auth -X POST -H "Authorization: Basic Z3Vlc3Q6c2FtcGxlLXBhc3N3b3Jk" -H : リクエストヘッダー

51.
[beta]
curlコマンド実行例
curl https://example.com/fmi/admin/api/v2/user/auth -X POST -H "Authorization:
Basic Z3Vlc3Q6c2FtcGxlLXBhc3N3b3Jk" -d '{}'

-d : リクエストボディ(GETメソッドの時は省略可)

52.
[beta]
レスポンスはJSON
{
"response": {
"token":
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzaWQiOiJjYzliNzFjNy1lYTQ4LTQ3YmYtYjgwNi00ZmMyMjZjNzY1YWYiLCJpYXQiOjE2OTg1NjA
5MDN9.A8Brl-hhXiNTUwhIku1EGtuXkgc7VnYiwB0OcdR9Ez0"
},
"messages": [
{
"code": "0",
"text": "OK"
}
]
}

ログイン後にアクセストークンを取得

53.

curlコマンド実行例 curl https://example.com/fmi/admin/api/v2/databases -H "Authorization: Bearer <JSON Web Token>" curl https://example.com/fmi/admin/api/v2/databases -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzaWQiOiJjYzliNzFjNy1lYTQ4LTQ3YmYtYjgwNi00ZmMyMjZjNzY1YWYi LCJpYXQiOjE2OTg1NjA5MDN9.A8Brl-hhXiNTUwhIku1EGtuXkgc7VnYiwB0OcdR9Ez0" 取得したアクセストークンを利用

54.

Demo

55.

Admin API で公開鍵認証を用いて接続する方法

56.

PKI(Public Key Infrastructure):公開鍵認証基盤 FileMaker Server 19.6以降でPKI認証をサポート PKIとは公開鍵暗号方式に基づく電子認証の技術基盤 キーファイルを担当者に渡すことでAdmin Consoleの管理パスワードを複数の担当者間 で共有する必要がなくなる

57.

詳細はAdminAPI̲PKIAuthフォルダ内のREADMEを参照 📁 FileMaker Server > 📁 Tools > 📂 AdminAPI̲PKIAuth > 📄 README.txt

58.

スクリプトの実行にはPythonが必要 前提条件としてpython3やpip3コマンドを事前に使えるようにしておく必要がある スクリプト内部でssh-keygenコマンドやopensslコマンドを呼び出している箇所がある スクリプトの中身を理解すればPythonは不要

59.

スクリプトの実行に必要なライブラリをインストール 実行例(Ubuntuの場合はコマンドが違うので詳細については REAEME.txt を参照) % pip3 install pyjwt % pip3 install cryptography % pip3 install requests

60.

fmadminapi̲pki̲token̲example.py 📁 FileMaker Server > 📁 Tools > 📂 AdminAPI̲PKIAuth > 📄 fmadminapi̲pki̲token̲example.py

61.

キーファイルの生成 % cd /Library/FileMaker\ Server/Tools/AdminAPI̲PKIAuth/ % python3 fmadminapi̲pki̲token̲example.py Enter private key file path: demo Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in demo Your public key has been saved in demo.pub :

63.

Admin Consoleに設定するパブリックキーの内容を確認 % cat demo.pub -----BEGIN PUBLIC KEY----MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAluQOjfk4eTJd7qde7B0N taIVAARwEgRannOK6rSwmhhMSTbpuiXeWZvZU2PgDi3u56BdT96fXGb+O2PeYq5b /ejNMUI3zqlKs43iXZlT3bqE0dpRzVhYmUG7hjpqGBdGtp0XDaiLBKo8xy1oLdOj (省略) k5oMi5l0R6rbud2K0koxzqIaQYPUggnTAWeIKSyv9h6+haYEHxvSLQL/mzMuIQBK 4J54upcDSAA8whepaGxwc4cCAwEAAQ== -----END PUBLIC KEY-----

65.

PKIトークンの取得 % python3 fmadminapi̲pki̲token̲example.py Enter private key file path: demo Enter expiration time in days (defaults to 1 day from now): 1 Name of public key on FileMaker Server Admin Console: demo Enter passphrase (empty for no passphrase): Token has been successfully written to demo.txt % cat demo.txt

66.

curlコマンド実行例 curl https://example.com/fmi/admin/api/v2/user/auth -X POST -H "Authorization: Basic Z3Vlc3Q6c2FtcGxlLXBhc3N3b3Jk" Basic認証の場合

67.

curlコマンド実行例 curl https://example.com/fmi/admin/api/v2/user/auth -X POST -H "Authorization: PKI <PKI-token>" PKI認証の場合

68.

fmcsadmin エミックで開発したコマンドラインツール リモート管理および公開鍵認証にも対応 Apache License, Version 2.0 https://github.com/emic/fmcsadmin

69.

fmcsadminコマンドを使った場合の動作確認例 % cd /Library/FileMaker\ Server/Tools/AdminAPI̲PKIAuth/ % fmcsadmin -i demo list files filemac:/Macintosh HD/Library/FileMaker Server/Data/Databases/TestDB.fmp12

70.

まとめ

71.

まとめ サーバー管理面での拡張性と柔軟性を提供する FileMaker Admin API を利用することで 目的や必要に応じたツールを開発可能 新バージョンが登場するたびに機能が拡充されることが多いので更新履歴を確認すると吉 FileMaker Server と FileMaker Cloud で利用できる機能において異なる点が一部存在

72.

関連URL FileMaker Admin API ガイド https://help.claris.com/ja/admin-api-guide/ 社内システムから Claris FileMaker Cloud に接続する際に知っておきたいポイント https://youtu.be/BIAj0ZwymWc?si=K4Whm7kmMNZHf8ff