デフォルトは固定TOKENを使ってエンドポイントにアクセスします。
サーバ間でエンドポイントにアクセスする場合はスクリプトがサーバに保存されていますので固定TOKENがユーザに公開されることはないのですが、HTML(jQuery等)からエンドポイントにアクセスする場合は固定TOKENがユーザに見える状態になってしまいますのでページ自体をパスワード等で保護する必要があります。
しかし、パスワードで保護したとしても固定トークンはセキュリティが低い方法ですので、もう少しセキュリティを高めるために、この挙動をカスタムして任意のスクリプト(HTML等)から一時的なTOKENでアクセスする方法を紹介します。
仕組みとしては、エンドポイントに対してセキュリティの種類を設定します。以下から選択します。
よって、認証用のテーブルを1つ作り、まずそのテーブルに固定TOKENでデータを挿入した後に一時的なTOKENでアクセスする方法をご紹介します。
尚、固定TOKENをユーザに公開しないためにデータ挿入をサーバ側でPHP等を使って行い、その後はHTML(jQuery)から一時的なTOKENを使って直接エンドポイントにアクセスします。
以下がステップです。
まず、データベースに認証用テーブルを定義します。 (方法はクイックスタートのステップ2を参照下さい)
以下のようなテーブル AuthToken を定義します。
Temp Tokenは重複すべきではなく、又、何度もこのキーでデータ取得しますので Primari Key (Index & Unique) に設定しておきます。
次に、このテーブル情報をインポートします。(方法はクイックスタートのステップ3を参照下さい)
そして、2つ関数を定義します。
まずはデータ挿入関数です。
挿入対象のカラムを指定します。
データ取得関数を定義します。この関数を使って認証します。
取得したデータは使わず、存在チェックだけ行いますので、どれでも1つ指定しておきます。
Where条件には TempToken を指定します。
次に、ビルドします。(方法はクイックスタートのステップ5を参照下さい)
ビルド後、関数一覧ページに戻るとEndpointが作成されていますので Insert関数の「View Endpoint」をクリックします。
このエンドポイントを使って認証用データを挿入します。
例えばHTMLのフォームで入力する場合、サーバにフォーム送信されたデータをPHP等でエンドポイントにアクセスしてデータ挿入します。
その際、同ページに表示されているPHPのテンプレートを使用します。
ここでは、ひとまずデバッグ用フォームを使って認証用データを挿入しておきます。 一時的なトークンはランダム文字列として vxcjeopwpjvoojpewrrewpofds を指定します。
次に、セキュリティをカスタムしたい関数に該当するProxyの設定をします。 プロジェクト表示の画面から 「Proxy Target Setting [Single]」をクリックします。
今回、例「バーコードで物品管理」で作成したAssetInfoのエンドポイントのセキュリティを変更したいと思いますのでAssetInfoテーブル行にある「View」リンクをクリックします。
該当関数のProxy Setting列の「Edit」をクリックします。
認証種類に Get Function を選択し、関数に先ほど作成した GetAuthToken 関数を指定します。
次に、ビルドします。(方法はクイックスタートのステップ5を参照下さい)
ビルド後、同関数のエンドポイントを確認します。
上記のように、指定した GetAuthToken関数のパラメータをセキュリティに指定することで関数アクセスすることができます。
先ほど作成して挿入した一時的なトークン vxcjeopwpjvoojpewrrewpofds を使ってアクセスしてみます。
上記のようにデータ取得できました。 違うトークンを指定するとアクセスできないことも同テスト・フォームで確認できます。
今回の例をベースにして、一定期間経った後はトークンを無効にする(トークンを削除にする)とか様々な工夫ができます。
弊社の開発フレームワークおよびクラウド・データベースです
© 2016-2023 Matsuesoft Corporation