はじめに
対象読者
- Claris FileMaker ユーザ
- とりわけ Windows Server において FileMaker Server を用いて管理している
環境
- Claris FileMaker Server 19.4.2
- Windows Server 2016 Datacenter Edition
状況
- 自前の WEB サイトから Data API を呼び出している
- 自前の WEB サイトのドメインと FileMaker Server のドメインとが異なる
- 上記の場合、CORS 対応が必要となる
- Windows Server ( IIS ) 環境での CORS 対応がややしんどい、知らないと詰む
CORS とは?
ことのきっかけ
補足
- この段については、どうしてこの記事を書くに到ったかの経緯説明です。読み飛ばしていただいても構いません
FileMaker Server の ver.up 時に……
- FileMaker Server 19.4.1 → 19.4.2 への updater を実行してアップデートし、再起動した
- その後、バグなのか何なのか、Admin Console へのログインができなくなる
- パスワードが通らない
- PIN 番号も通らない
- 認証情報が全部吹っ飛んでいる……?
FileMaker Server を再インストール
- 上記のため、いたしかたなく一度アンインストール → 再インストール
- この時点で、そもそもこのサーバで CORS 対応をしていたという事実を、既存メンバーは誰一人として認識になかった……
- 以前にこのサーバで CORS 対応をしていたメンバーが育休中……
WEB サーバ側で Data API が読めない!
- 後日、問題が発覚。API 通信ができずに機能不全
- Chrome の console を見ると CORS 問題のもよう……
対応法
IIS CORS Module のインストール
- これが必須となる。以前に一度インストールされていたら不要
- もし初めて CORS 対応を入れる場合にはインストールが必要
-
https://www.iis.net/downloads/microsoft/iis-cors-module
- たまにこのページが開けなくなることがあるけれど、根気強くアクセスしていると、またアクセスできるようになる……
web.config への CORS 許可の追記
-
C:\Program Files\FileMaker\FileMaker Server\HTTPServer\confに存在している - IIS のアプリケーションプールにある HTTP リクエストヘッダ付与あたりと連動しているので、IIS 側で設定を変えると自動で変更される。基本的には、あまり不用意に弄らない方が良い
- 以下のように
corsブロックを</system.webServer>の手前の位置に追加。管理者権限でおこなう必要がある
web.config
<security>
<requestFiltering allowDoubleEscaping="true">
<requestLimits maxAllowedContentLength="4294967295" />
</requestFiltering>
</security>
<cors enabled="true" failUnlistedOrigins="true">
<add origin="*">
<allowHeaders allowAllRequestedHeaders="true" />
<allowMethods>
<add method="GET" />
<add method="PATCH" />
<add method="POST" />
<add method="PUT" />
<add method="DELETE" />
</allowMethods>
</add>
</cors>
</system.webServer>
</configuration>
- FileMaker Server をアンインストール → 再インストールすると、この箇所の記述が消えます。ので、再度記述を挿入してあげる必要があります。いかにも忘れがち!
アプリケーションプールの再起動
- 上記の追記と保存が完了したら IIS 上でアプリケーションプールの再起動をおこなえば、完了
おわりに
雑感
- 公式ドキュメントに記載しておいて欲しいのですが……!
