目次はじめに外部のWebページからkintoneへデータを登録する場合に気を付けるポイントAPIによる操作権限を必要最低限とする外部のWebページでkintoneのデータを公開する場合に気を付けるポイント公開範囲や扱う情報の内容を制限する中継するしくみで絞り込み条件を設定するAPIによる操作権限を必要最低限とするおわりにはじめに固定リンクがコピーされましたkintoneを利用するには、kintoneのライセンスが必要となります。kintoneの契約ユーザーではない外部のユーザーとkintone内の一部のデータを共有したり、不特定多数の人からkintoneへデータを登録してもらいたい場合もあるかと思います。次のようなケースが考えられます。セミナーや採用の募集など社外から応募してもらうケース(外部からデータを登録する)取引先に取引に関する情報を公開するケース(外部にデータを公開する)予約システムとして利用し、予約者が自身の予約情報を参照するケース(外部にデータを公開する)このような要件は、Webページを用いて外部からkintoneのデータを操作することで実現できます。API仕様の理解など幅広い知識が求められますが、連携サービスを利用した比較的簡単な実装も可能です。独自にシステムを構築する場合も、連携サービスを利用する場合も、セキュリティ面の考慮を怠ると想定外の情報漏洩などの事態を招きかねません。ここでは、Webページを用いた外部からのデータ操作をセキュアにするため考慮すべき注意事項を紹介します。外部のWebページからkintoneへデータを登録する場合に気を付けるポイント固定リンクがコピーされましたデータを登録してもらうだけの場合でも、外部ユーザーにデータの参照などの余計な権限を付与してしまうことでkintone内のデータに対して悪意のある操作をされてしまう可能性があります。そこで、以下のような対策が必要です。APIでは複数の認証方法が使用できます。今回のようにkintoneの契約ユーザーではない外部のユーザーが利用する場合は、APIトークンの使用を推奨します。APIを実行できる認証方法です。APIトークンを使ってみようAPIによる操作権限について、外部ユーザー向けのアンケートを行う利用を想定して説明します。不要な権限を有していると、悪意のある人にデータを操作される可能性が高まります。他のアプリの権限も有する認証だった場合、想定外の情報まで操作されてしまうかもしれません。その点APIトークン認証では、権限を1つのアプリに限定できます。「追加」のみで「閲覧」権限は与えないなど、細かな権限制御によって外部操作の影響範囲を特定できます。対象となるアプリの利用目的を明確にし、適切な権限のみを付与するようにしましょう。連携用のkintoneユーザーアカウントを用意してパスワード認証を使用する方法も考えられますが、APIトークンのように権限を1つのアプリに限定できないため推奨しません。ユーザーアカウントの認証情報が流出すると、そのアカウントでアクセスできるすべての情報が操作可能となってしまいます。外部のWebページでkintoneのデータを公開する場合に気を付けるポイント固定リンクがコピーされました外部ユーザーにデータを公開する場合は、kintoneの環境外へデータを渡すことになります。そのため、セキュリティ面に考慮しないと情報漏洩のリスクが伴います。そこで、以下のような対策が必要です。公開範囲や扱う情報の内容を制限する固定リンクがコピーされましたkintoneは企業や自治体の情報システム基盤として利用されるケースも増えています。利用する人が増えれば、悪意を持ってWebページを操作される可能性も高まります。利用目的から影響度を予測し、次のような対策で公開範囲や情報を制限しましょう。公開するWebページへのアクセスを制御するアクセス制御のないWebページは、URLさえ知っていれば誰でもアクセスできる状態となってしまいます。特定のユーザーのみに公開したい場合は、認証やIPアドレス制限の設定が必要です。kintoneアプリに機密情報を含めない外部公開にはリスクが伴うことを理解し、扱う情報をあらかじめ選別することが大切です。外部から操作するアプリには個人情報や秘匿性の高い情報は含めず、別アプリで管理することを推奨します。個人情報や秘匿性の高い情報を公開する必要がある場合は、後述する中継するしくみの構築を検討してください。中継するしくみで絞り込み条件を設定する固定リンクがコピーされましたkintoneアプリのレコードの一部を絞り込んで公開する場合、絞り込みを行っているので画面上では問題ないように見えても、ブラウザー開発者ツールを利用すると想定していないレコードを閲覧されてしまう可能性があります。担当IDをもとに取引情報を公開するケースを例に紹介します。担当IDを入力し取引情報を取得ボタンを押下すると、kintoneアプリに保存された取引情報を表示します。このとき「担当ID=入力値」という絞り込み条件でレコードが検索されます。担当IDが未入力の場合はエラーとすることで、絞り込み条件のない取引情報の表示を防ぐことができます。誤入力や無差別入力によって想定外の取引情報を閲覧される可能性はあります。ブラウザー開発者ツールを利用して操作する場合ブラウザーの開発者ツールを利用すると、JavaScriptのエラーチェックが適用されません。そのため、担当IDによる絞り込みを強制できず、全レコードの表示が可能となってしまいます。kintoneの連携サービスを利用する場合も同様で注意が必要です。連携サービスを利用して個人情報や秘匿性の高い情報を公開する場合は、上記のように開発者ツールにて想定外のレコードが閲覧可能になっていないか確認することを推奨します。このような開発者ツールを利用した情報閲覧を防ぐには、中継するしくみで絞り込み条件を強制する方法が考えられます。APIは実行できないため、外部のWebページからkintoneのデータを操作するには、リクエストを中継するしくみが必要となります。中継するしくみにはWebサーバーを構築する方法やサーバーレスサービスを利用する方法があります。中継するしくみにて担当IDを使った絞り込み条件を必須とすれば、ブラウザーの開発者ツールでも全レコードの取得はできません。再掲)中継するしくみで絞り込みを行っていても、誤入力や無差別入力によって想定外の取引情報を閲覧される可能性はあります。担当IDと一緒に担当名や取引IDなどの付随する情報を入力してもらい、整合性をチェックする手法も有効です。APIによる操作権限を必要最低限とする固定リンクがコピーされました編集や削除などの余計な権限を付与してしまうことで、kintone内のデータに対して悪意のある操作をされてしまう可能性があります。付与する権限は最低限にしましょう。前項を確認してください。おわりに固定リンクがコピーされましたここでは、Webページを用いた外部からのデータ操作をセキュアにするため考慮すべき注意事項を紹介しました。利用目的に応じて、Webページの公開範囲やkintoneアプリで扱う情報を制限する。レコードの一部を絞り込んで公開する場合、想定外のレコードが閲覧される可能性を理解する。連携サービスを利用する場合は、ブラウザーの開発者ツールを使用した無条件のレコード閲覧が発生しないか確認する。無条件のレコード閲覧を防ぐ必要がある場合は、中継するしくみを構築する。APIの実行にはAPIトークン認証を使用し、適切な権限のみを付与する。リスクを分析して、適切な対応を選択するようにしましょう。情報漏洩を未然に防ぐこと、万が一の発生時にも影響範囲を限定することが大切です。このTipsは、2023年1月版kintoneで動作を確認しています。(cybozu.cn)。