IdP 認証
バージョン16の頃から FileMaker Server では Amazon、Microsoft、Google アカウントを使った IdP 認証 ができるようになっています。
以前 OAuth を使って Google アカウントで FileMaker Cloud にログイン を投稿 し、
最近 LINE WORKS アカウントとの連携方法を投稿しましたが、
そもそも以前から可能だった Microsoft Azure Active Directory(Azure AD)との連携について投稿していなかったので今回投稿しました。
そもそもなぜ 外部サービスのアカウント を使うのか?
最近では FileMaker Server をパブリッククラウド上、
つまりどんなネットワークからも接続できる環境で使われるようになってきており、
より一層セキュリティの重要性が増しています。
FileMaker Server で公開されている FileMaker ファイルへのサインインは、
セキュリティー設定で登録したアカウントとパスワードの一致が必須で、
アカウントとパスワードを知らなければ当たり前ですが情報へはアクセスできません。
つまりアカウントとパスワードについて FileMaker が問題なのではなく、
アカウントとパスワードを厳密に管理することが難しくなっていることが問題なんです。
たとえば社員が新たに入ったときは、様々なサービスのアカウントとパスワードを発行し、
FileMaker アカウントにいたっては各ファイルごとにアカウントとパスワードの登録が必要です。
手間がかかるのは登録のときだけでなく、パスワード変更のときや、
退職時では確実にアカウントを使えないようにすべてのサービスで漏れがないよう設定する必要があります。
どんな会社や組織でもスタッフの出入りやパスワード管理などアカウント管理が大変になってきています。
また、多要素認証はパスワードが漏れたとしてもアクセスできないようにするいまどきは当たり前の機能になってきています。
しかしFileMaker 標準機能のアカウントとパスワードの管理は多要素認証や使い回しの禁止など高度な制御ができません。
もうこの際アカウント管理は外部で一括管理したほうが便利な世の中といえると思っています。
Microsoft Azure Active Directory(Azure AD) とは
聞いたことはあるけど似たような名称がならんでいますので、
まずは整理したいと思います。
Directory サービスとは、すべてのリソースを管理するものです。
リソースとは、アカウントや組織、ネットワークやハードウエアも含まれます。
その中で FileMaker Server と連携したいのが アカウントやそのアカウントを含むグループの情報になります。
Active Directory は、オンプレミスのサーバーで管理される、Microsoft が提供する Directory サーバーソフトウェアです。
そしてこの Active Directory をクラウドサービスなどインターネット空間でも安全に利用できるようにする機能拡張が、
Active Directoryフェデレーションサービス(ADFS)というサービスです。
つまり ADFS は Active Directory の一部であって、ADFSだけを利用するというものではありません。
本投稿の Azure AD は名前こそ似ていますが、
Active Directory や ADFS とは異なるサービスです。
Azure AD は最初からクラウド上で管理され、Microsoft アカウントを管理するサービスです。
異なるといいましたが Azure AD の機能で Azure AD Connect という機能を使えばオンプレミスのサーバーで管理される Active Directory と連携できます。
じゃあどっちがいいんだ、どっちでもいいという方なら迷わず Azure AD を選択すると良いと思います。
Azure AD のメリット
Azure AD は無料であっても ID トークン に関するカスタマイズが可能なすばらしいサービスです。
アカウントの情報だけでなくグループに関する情報も IDトークン に含めることができます。
FileMaker Server のファイルに IdP 認証でサインインできるようにする設定は、
アカウントを一つ一つ登録する方法だけでなく、
グループを登録すれば、そのグループに所属するアカウントを一つ一つ登録する必要はなくなり便利です。
Azure AD はこのグループの設定と FileMaker Server といずれも標準機能だけで連携できるのがメリットです。
Azure AD には、Free 版や Microsoft 365(旧 Office 365 )に自動付帯するもの、もしくは単独で有償契約することもできます。
Free 版やMicrosoft 365 に自動付帯するものでも グループの管理や ID トークン の変更など可能ですし、他要素認証も利用できます。
条件付きアクセスや端末認証などは残念ながら Free 版ではなく Microsoft 365 のプランを変更するか有償契約に切り替える必要があります。
また Free 版をこのアカウント管理だけで使うとしたら数万のアカウントが登録できるようです。
おそらく競合する Amazon Cognitoの無料枠を意識して合わせているんだと思われます。
Azure AD サービスの制限と制約
手順解説
おおまかな手順は次の通りです。
- Azure を組織で使えるようにして、アカウントを作成する
- Azure ポータル で アプリ を登録する
- FileMaker Server Admin Console で定義済みアイデンティティプロバイダ (IdP) 認証設定 をする
- FileMaker ファイルに カスタム Azure ユーザ、グループ を追加する
1. Azure を組織で使えるようにして、アカウントを作成する
Azure ポータル にログインできるように Microsoft アカウントを作成します。
組織がすでに Microsoft 365 などの製品の契約をしていてすでに Microsoft アカウントは作成済みだったら、
Azure ポータル にログインできる権限を社内の管理者から付与してもらいましょう。
2. Azure ポータル で アプリ を登録する
アプリ といっても普通の方が想像するアプリを作るわけではありません。
OAuth2.0 を使うアプリケーションとしてFileMaker Serverとの連携に必要な設定を行います。
Azure ポータル をブラウザで開きます。
ログイン後、左メニューバーの「Azure Active Directory」をクリックします。
左メニューバーの「アプリの登録」をクリックします。
アプリの登録画面になります。
上部の「+新規登録」をクリックします。
アプリケーションの登録画面になります。
「名前」を入れ、
「サポートされているアカウントの種類」では「この組織ディレクトリのみに含まれるアカウント (〇〇 のみ – シングル テナント)」を選択、
「リダイレクト URL(省略可能)」は省略せず、「プラットフォームの選択」は「Web」、アドレスには「https://接続先FileMakerServerのドメイン名/oauth/redirect」を設定し、
「登録」をクリックします。
アプリの登録画面に戻ります。
次の設定のために「アプリケーション(クラ…」と「ディレクトリ(テナント)…」の値をメモしておきます。
隣に「コピー」ボタンがあるので、クリップボードにコピーしてメモ帳などにペーストしておくと間違いが防げます。
次に、クライアントの資格情報 の「証明書またはシークレットの追加」をクリックします。
右からクライアント シークレットの追加ポップアップがでます。
説明に適当に文字を入力し、
「追加」をクリックします。
「アプリ情報」画面になります。
ここで忘れずに作成したばかりの行の 値 には値が見えていて、「コピー」ボタンがあるのでクリックし、
「クライアント シークレット」としてメモ帳などにペーストして控えておいてください。
この値は作成直後しか取り出すことができないようになっています。
つづけて、左のメニューから「トークン構成」をクリックします。
上部の「+グループ要求の追加」をクリックすると、右に「グループの要求の編集」ポップアップがでます。
4つのチェックボックスをすべて、もしくは適切に選択し、
「追加」をクリックします。
これでアプリの登録は完了です。
最後に設定したトークン構成の画面ですが、
ここでトークンの中身を編集できるというところが Azure AD のメリット のゆえんです。
3. FileMaker Server Admin Console で定義済みアイデンティティプロバイダ (IdP) 認証設定 をする
FileMaker Server Admin Console を開きます。
バージョン 19.4 からは https://接続先FileMakerServerのドメイン名/admin-console になってます。
上部の「管理」タブを開き、
左部の「外部認証」タブを開きます。
「定義済みアイデンティティプロバイダ(IdP)認証設定」の「Microsoft」の「変更 v」をクリックし、
次の値を設定します。
- 「Azure アプリケーション ID」は、手順2でメモしておいた「アプリケーション(クラ…」の値を入れます
- 「Azure キー」は、手順2の最後にメモ帳などにペーストしておいた「クライアント シークレット」の値を入れます
- 「Azure ディレクトリ ID」は、手順2でメモしておいた「ディレクトリ(テナント)…」の値を入れます
- 「認証設定を保存」をクリックします
そして最後に下部の「データベースにサインイン」の「外部サーバーアカウント」と「Microsoft」の2つをクリックしてオンの状態にします。
4. FileMaker ファイルに カスタム Azure ユーザ、グループ を追加する
Microsoft アカウントでサインインさせる FileMaker ファイルを完全アクセス権で開きます。
もしくは、「完全アクセスのないアカウントを管理」が有効なアクセス権セットをもつアカウントで開きます。
もうすでに普通に開こうとすると Microsoft ボタンしか見えない状態になっていると思います。
LINE WORKS アカウントで Claris FileMaker Server にサインインする(カスタム IdP 認証設定)
の「この設定後でも通常の FileMaker アカウントでサインインしたいとき」の章に記載の方法で、
ファイルを開き、これまで使っていた FileMaker アカウントとパスワードでサインインしてください。
メニューの ファイル ー 管理 ー セキュリティ を選択し、
セキュリティの管理ウインドウを開きます。
認証方法のポップアップメニューで「Microsoft Azure AD」を選択します。
左下の「+新規」をクリックし、
「グループまたはユーザ」が「ユーザ」になっていることを確認し、
「ユーザ名」のところに Microsoft アカウント を入力し、
「アクセス権セット」で適切なアクセス権セットを選択します。
連続してアカウントを追加する場合は、左下の「+新規」をクリックして続けてください。
グループに追加も、左下の「+新規」をクリックし、
「グループまたはユーザ」を「グループ」に切り替え、
「グループ名(オブジェクト ID)」のところにグループのメールアドレスではなく、グループのオブジェクト ID を入力し、
「アクセス権セット」で適切なアクセス権セットを選択します。
連続してアカウントを追加する場合は、左下の「+新規」をクリックして続けてください。
設定が終わったら右下の「OK」をクリックします。
ちなみに、グループの「オブジェクト ID」は Azure ポータルに表示されています。
また、グループの作成するときにグループの種類として「セキュリティ」と「Microsoft 365」が選択できます。
「Microsoft 365」を選ぶと、グループの中にグループを指定する入れ子のような構造ができません。
「セキュリティ」を選択しておくと良いでしょう。
以上で このFileMaker ファイルへの アカウントの登録が完了しました。
これ以外にも同じ FileMaker Server にある Microsoft アカウントでサインインが必要なファイルには、
同様の手順で「Microsoft Azure AD」のアカウントを追加する必要があります。
ユーザーごとの判定
ユーザ名の一致:Microsoft にログインしているアカウント名が、FileMaker ファイルの Microsoft Azure AD のユーザ名と一致したことによってサインインできた場合
- Get( アカウントタイプ ) は 「Azure」
- Get( アカウントグループ ) は(空欄)
- Get( アカウント名 ) は アカウント名
グループのメンバー:Microsoft にログインしているアカウント名が、FileMaker ファイルの Microsoft Azure AD のグループ名(オブジェクト ID)と一致したことによってサインインできた場合
- Get( アカウントタイプ ) は 「Azure」
- Get( アカウントグループ ) は グループ名(オブジェクト ID)
- Get( アカウント名 ) は アカウント名。つまりグループ名(オブジェクト ID)の一致よるサインインであってもアカウント名は取得可能です。
称号名順 について、
ユーザ名やグループ名は追加されるごとに、下に追加されていきますが、
照合される順は上からになります。
例えば、複数のグループのメンバーであるユーザがどのグループとして FileMaker にサインインされるかは、
一覧に表示されている順序によって変わります。
変更は行をドラッグ&ドロップ操作で変更できます。
さいごに
「この設定後でも通常の FileMaker アカウントでサインインしたいとき」や、
設定後の運用については、次の記事の最後の方で紹介しているのでご覧ください。
LINE WORKS アカウントで Claris FileMaker Server にサインインする(カスタム IdP 認証設定)