4D v14.3

On 4D Mobile Authentication データベースメソッド

ホーム

 
4D v14.3
On 4D Mobile Authentication データベースメソッド

On 4D Mobile Authentication データベースメソッド 


 

$1, $2, $3 -> On 4D Mobile Authentication データベースメソッド -> 戻り値 
引数   説明
$1  テキスト in ユーザー名
$2  テキスト in パスワード
$3  ブール in True = ダイジェストモード False = ベーシックモード
戻り値  ブール in True = リクエスト承認 False = リクエスト拒否

説明   

On 4D Mobile Authentication データベースメソッド は4D Mobile セッション(REST経由) を開くのを管理するための方法を提供します。このデータベースメソッドは主に Wakanda Server と4D v14との接続を設定するときにそれをフィルタリングするのが主な目的です。

Wakanda Server から mergeOutsideCatalog() メソッドを使用して4D Mobile セッションを開くリクエストが来ると(一般的なケース)、接続の識別子がリクエストのヘッダーに供給されます。続いて On 4D Mobile Authentication データベースメソッド データベースメソッドが呼ばれこれらの識別子を評価します。4D データベースのユーザーのリストを使用することもできますし、独自の識別子のテーブルを使用することもできます。

重要: On 4D Mobile Authentication データベースメソッド が定義される(つまり中にコードが記述される)と、4D は4D Mobile リクエストの管理をそちらに全て一任します。このとき、データベース設定のWeb/4D Mobile ページ内の「読み込み/書き出し」メニューで設定した内容は、無視されます(Design Reference マニュアルを参照して下さい)。

このデータベースメソッドは二つのテキスト型の引数($1$2)と一つのブール型の引数($3)を4Dから受け取り、ブール型の引数 $0 を返します。これらの引数は以下の様に宣言されている必要があります。

  //On 4D Mobile Authentication データベースメソッド
 C_TEXT($1;$2)
 C_BOOLEAN($0;$3)
 ... // メソッドのコード

$1 には接続に使用したユーザー名が入り、 $2 にはパスワードが入ります。

リクエストに使われるモードにより、パスワード ($2) は標準テキストまたはハッシュ値で受け取る事が可能です。このモードは $3 引数によって指定され、適切に処理することができます:

  • パスワードが標準テキスト(ベーシックモード)である場合、$3 にはFalse が渡されます。
  • パスワードがハッシュ値(ダイジェストモード)である場合、$3 には True が渡されます。

REST接続リクエストがWakanda Serverから来るときは、パスワードは必ずハッシュ値で送られてきます。

リクエストがブラウザや Wakanda 以外の Web クライアントから送られてくる場合、デベロッパが責任を持って "username-4D" フィールドと "password-4D" フィールドを HTTP ヘッダーに含めることによってオリジナルのHTML/JavaScript ページからの認証を管理して下さい。この場合、パスワードは4D REST サーバーに標準テキストで送られてなければなりません(サードパーティからの干渉のリスクを避けるためにSSLを使用して下さい)。 [#/note]

4D Mobile 接続の識別子は、データベースメソッド内でチェックしなければなりません。通常、ユーザー独自のテーブルを使用して名前とパスワードをチェックします。もし識別子が有効であるなら、 $0True を渡します。すると、リクエストが受理されます。4Dはこのリクエストを実行して結果をJSON形式で返します。
それ以外の場合は $0False を渡します。この場合、接続は拒否され、サーバーはリクエストの送信者へ認証をエラーを返します。

ユーザーがデータベースの4Dユーザーのリストの中に載っているとき、以下のコードによってパスワードを直接チェックすることができます:

 $0:=Validate password($1;$2;$3)

Validate password コマンドは拡張され、第一引数にユーザー名、第二引数にパスワードを渡し、任意の第三引数でパスワードがハッシュド形式で書かれているかどうかを指定できるようになりました。

4D データベースのものとは別の独自のユーザーリストを使用したい場合、そのユーザー達のパスワードを、Wakanda Server が On 4D Mobile Authentication データベースメソッド データベースメソッドに接続リクエストを送る時のアルゴリズムと同じものを用いてハッシュ形式にて$2 引数に保存することができます。

この方法を使用してパスワードをハッシュする場合、以下の様に記述して下さい:

 $HashedPasswd :=Generate digest($ClearPasswd ;4D digest)

Generate digest コマンドにはハッシュアルゴリズムとして 4D digest を受け取れるようになりました。これは4Dのパスワードの内部管理で使用されているメソッドと対応しています。

この例題ではパスワード "123"を使用する、4Dユーザーと合致しない "admin"というユーザーのみを受け入れる場合を考えます:

  //On 4D Mobile Authentication database method
 C_TEXT($1;$2)
 C_BOOLEAN($0;$3)
  //$1: ユーザー
  //$2: パスワード
  //$3: ダイジェストモード
 If($1="admin")
    If($3)
       $0:=($2=Generate digest("123";4D digest))
    Else
       $0:=($2="123")
    End if
 Else
    $0:=False
 End if

以下の On 4D Mobile Authentication データベースメソッド の使用例は、接続リクエストが4D データベースのユーザーに保存されている二つの認証済みの Wakanda サーバーのどちらかから来ていることをチェックします:

 C_TEXT($1;$2)
 C_BOOLEAN($0)
 ON ERR CALL("4DMOBILE_error")
 If($1="WAK1")|($1="WAK2")
    $0:=Validate password($1;$2;$3)
 Else
    $0:=False
End case

 
プロパティ 

プロダクト: 4D
テーマ: データベースメソッド
番号: 3367

 
履歴 

New
初出: 4D v14
名称変更: 4D v14.3

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v14 R2)
ランゲージリファレンス ( 4D v14.3)

Parent of : On 4D Mobile Authentication database method ( 4D v14 R3)