エブリサイトのkintoneアプリ接続制限機能は、kintoneのサブドメインごとに設定することができる、エブリサイトのkintoneアプリへの接続設定(接続先の追加、編集、削除)に関する権限設定機能です。


この機能を使用していないkintoneのサブドメインでは、組織のメンバーは誰でも接続設定を開き、編集しkintoneアプリへの接続設定をすることが可能です。


また、kintoneアプリ接続制限機能を適切に設定することにより組織内のgusukuアカウントに対して、エブリサイトでkintoneアプリに対しての接続設定に関する権限をコントロールすることが可能となります。

なお、接続設定の許可の単位はkintoneアプリの単位ではなく、kintoneアプリで設定したAPIトークン単位になります。


kintoneアプリ接続制限画面を開くには

kintoneアプリ接続制限機能の設定画面は、エブリサイトの画面の左上にあるハンバーガーメニュー(≡)をクリックすると、表示されます。



クリックした時の、接続制限を一切行っていない状態での初期表示は次のようになります。



kintoneアプリ接続制限画面で接続制限機能を設定するには

kintoneアプリ接続制限画面で接続制限機能を設定するには、まず接続制限情報を保持するためのkintoneアプリが必要です。


接続制限情報を保持するkintoneアプリの準備

アプリを作成します。



なお、このアプリには次のフィールドが必要です。

  • APIトークンを保存するフィールド

  • メールアドレス(ログインアカウントの)を保存するフィールド
    各画面共通の部分について の「右上のボタン(アカウントアイコン・アカウントメニュー)」節に記載のログインアカウントに紐つくメールアドレスになります


この記事では、次の様なアプリを作成しました。

※フィールド名とフィールドコードは同じものを指定

フィールド名

フィールドタイプ

備考

アプリID

数値


アプリ名

文字列(1行)


APIトークン

文字列(1行)


メールアドレス

リンク

入力値の種類:メールアドレス


アプリを作成したら、アプリのAPIトークンもアクセス権「レコード閲覧」で生成しておきます。



これで、kintoneアプリの準備は終了です。


続いてエブリサイトの設定に移りましょう。


エブリサイト側の設定

エブリサイトでkintoneアプリ接続制限画面を最初に表示した時の画面は次のようになっています。



右上の「kintoneアプリ接続制限を追加する」をクリックすると、次のようなダイアログが表示されます。



それぞれのパラメータについては、次のように入力してください。


ドメイン

「ドメイン」には、kintoneのサブドメインを入力します。


接続設定作成権限を管理する kintone アプリ

「接続設定作成権限を管理する kintone アプリ」には、先ほど作成した「接続制限情報を保持するkintoneアプリ」のアプリIDを入力します。


kintone アプリの API トークン

「kintone アプリの API トークン」には、先ほど作成した「接続制限情報を保持するkintoneアプリ」のAPIトークンを入力します。


権限チェッククエリ

「権限チェッククエリ」には、「接続制限情報を保持するkintoneアプリ」に対してレコードが存在するかどうかを絞り込むためのクエリを設定します。この際、「{{token}}」と「{{user}}」の使用が必須となります(この2つの記述を使っていない接続制限設定は保存する事ができません)


なお、上のkintoneアプリのフィールドコードに沿って記載すると、例えば


APIトークン = "{{token}}" and メールアドレス = "{{user}}"


といった形になります。


※注:もし、kintoneのフィールドタイプを 文字列(複数行) にして複数の値を設定したい場合、{{token}}との一致を判定させる式は「 like "\"{{token}}\""」、また{{user}}との一致を判定させる式は「 like "\"{{user}}\""」と書く必要があります。

ですので、例えば仮に APIトークンを 文字列(複数行) で設定し、フィールドコードを「APIトークン_複数」に設定、またメールアドレスを 文字列(複数行) で設定し、フィールドコードを「メールアドレス_複数」に設定した場合、権限チェッククエリの設定値は次のようになります。

APIトークン_複数 like "\"{{token}}\"" and メールアドレス_複数 like "\"{{user}}\""


なお、権限チェックについては、この接続制限ダイアログで設定した情報をもとにkintoneアプリに接続、レコードを検索し、1件でも検索対象となるレコードがあれば、権限ありと判断されます。


また、権限チェッククエリに関する応用的なポイントとしては、指定するクエリを適切に指定する事で、お客様のガバナンスルールに合わせた運用が可能となります。


具体的には、例えばこの「接続制限情報を保持するkintoneアプリ」上にてプロセス管理を有効にし、kintoneアプリのプロセス管理上でのステータス(※「ステータス」フィールド)の値が承認されているレコードのみを検索対象とすれば、承認されているユーザーのみがクエリの検索対象(すなわち、承認されているユーザーのみがレコード操作権限を持つ形)となります。


接続設定の追加、編集、削除で権限が無いと判断された場合

権限が無いと判断された(検索対象となるレコードが無かった)場合は、次の様なダイアログが表示され、追加・編集・削除に関する処理がキャンセルされて元のダイアログに戻ります。



気を付けるべき点

すでに設定済みの接続設定には影響を与えない

この機能はkintoneアプリへの接続設定(接続先の追加、編集、削除)に関する権限を設定する機能であり、すでに設定済みの接続設定については影響を与えません。


接続制限の設定が1つもされていないkintoneのサブドメインに対しては影響を与えない

このkintoneアプリの接続制限は設定が一つもされていないkintoneのサブドメインに対しては影響を与えないため、注意してください。

具体的な例を示します。

エブリサイトから2つのkintoneサブドメイン(ここでは「〇〇〇〇〇.cybozu.com」、「△△△△.cybozu.com」)に対して接続設定(接続先の追加、編集、削除)を行う際、エブリサイト上のkintoneアプリ接続制限機能の設定が次の画面のように設定されていたとします。


この時、それぞれのkintoneサブドメインに対しての接続設定は次のようになります。
「〇〇〇〇〇.cybozu.com」についてはkintoneアプリ接続制限に対応するドメインのレコードがあるため、接続制限チェックが行われます

「△△△△.cybozu.com」についてはkintoneアプリ接続制限に対応するドメインのレコードがないため、接続制限チェックが行われません


これを図に示すと次のようになります。


アプリの管理・運営については適切に管理する必要がある

「接続制限情報を保持するkintoneアプリ」にはAPIトークン、メールアドレスが格納されるため、このアプリの管理・運営については適切に管理される事をおすすめします。