アクセスコントロールの概要
クライアントサーバーアーキテクチャーや Webインターフェースなど、複数のユーザーがアプリケーションを使用する場合は、アクセスを制御したり、接続ユーザーに応じて異なる機能を提供したりする必要が生じます。 シングルユーザーアプリケーションにおいても、機密性の高いデータを保護することは重要です。
運用環境によって、4D アクセスコントロールの方法は異なります:
- マルチユーザーアプリケーションでは、4D のユーザー&グループ機能を利用することができます。
- シングルユーザーアプリケーションでは、
Current system user
などのコマンドを使用して、システムセッションを通じてユーザーアクセスを制御します。
4Dのセキュリティ機能の概要については、4D Security guide をご覧ください。
マルチユーザーアプリケーションのアクセスコントロール
マルチユーザーアプリケーションは、4D Server を使って運用します。 これにはクライアントサーバー、Web、および RESTアプリケーションが含まれます。
マルチユーザーアプリケーションでは、4D ユーザー&グループ によってアクセスコントロールがおこなわれます。 ユーザーを作成してパスワードを割り当て、アプリケーションにおいて異なるレベルの権限を持つアクセスグループを作成します。
4D Server のパスワードアクセスシステムを起動するには、デザイナー (Designer) ユーザーにパスワードを割り当て ます。 ユーザーとグループを作成 しても、デザイナーにパスワードが指定されるまでは、すべてのアプリケーションアクセスがデザイナーアクセス権でおこなわれます (アプリケーション開始時に ID を求められません)。 つまり、アプリケーションのあらゆる部分を開くことができます。
デザイナーにパスワードが指定されると、すべてのアクセス権が有効になります。 アプリケーションや アクセスが制限されたサーバー に接続するには、リモートユーザーはログイン/パスワードを入力する必要があります。
パスワードアクセスシステムを無効にするには、デザイナーのパスワードを削除します。
シングルユーザーアプリケーションのアクセスコントロール
シングルユーザーアプリケーションとは、4D で運用する、または 4D Volume Desktop が組み込まれたデスクトップアプリケーションのことです。 シングルユーザーアプリケーションでは、アプリケーションを開くユーザーはすべて デザイナー です。つまり、ユーザー名は "Designer" で、すべての権限を持ちます。 アクセスコントロールは、4D のユーザー&グループではなく、ユーザーセッション に基づいておこなわれます。
ユーザー認証
4D のシングルユーザーアプリケーションでカレントユーザーを特定するには、そのシステムセッションを開いたユーザーを返す Current system user
コマンドが利用できます。 つまり、ユーザー認証は OSレベルに委ねられています。
この場合、次のようなコードを使用して、アプリケーション内でアクセスを許可または拒否することができます:
If(Current system user = $user) // データベースのテーブルにユーザーを保存することができます
// 特定機能へのアクセス権を付与します
End if
"Designer" ではなく、システムユーザー名を 4D で使用したい場合 (ログファイルなど) は、SET USER ALIAS
コマンドを使います。例:
SET USER ALIAS(Current system user)
アクセスの保護
権限
複数のユーザーが共有しているマシンでは、4Dアプリケーションをフォルダーにインストールし、そのフォルダーに対するアクセス権を適切なユーザーに OSレベルで与えることができます。
データの暗号化
アプリケーションのデータへのアクセスを保護したい場合は、データを暗号化 し、適切なユーザーに暗号化キーを提供することが推奨されます。