RAD サーバー エンジンの権限付与
RAD サーバー エンジン(RAD サーバーサーバー) への移動
EMS サーバーの権限付与により、HTTP 要求での EMS リソースまたは特定の EMS エンドポイントへのアクセスを許可または拒否することができます。
権限付与は、EMS サーバーへの HTTP 要求で使用される資格情報によって決まります。
デフォルトでは、EMS リソースおよび EMS エンドポイントは公開されています。
EMS では次の 3 種類の異なる資格情報があります。
- マスタ秘密鍵 -- この資格情報を使用すると、お使いの EMS サーバーの任意の EMS リソース内の任意の EMS エンドポイントに HTTP 要求でアクセスできます。
- ユーザー -- この資格情報では特定の EMS ユーザーを識別します。エンドポイントやリソースへのアクセスは、そのユーザーまたはそのユーザーの所属先グループに許可されたものに限られます。
- アプリケーション秘密鍵 -- この資格情報では、すべての HTTP 要求に許可されているエンドポイントにアクセスできます。
目次
EMS の権限付与で使用される資格情報
EMS マスタ秘密鍵による認証
EMS マスタ秘密鍵(MasterSecret)の場合は、EMS データベースに格納されているすべての EMS データに完全にアクセスできる権限が付与されます。
この EMS マスタ秘密鍵は管理作業に使用します。EMS マスタ秘密鍵 を使用すると、EMS サーバー内のすべての EMS リソースにアクセスできます。
マスタ秘密鍵の変更は、EMS サーバー構成ファイルで行います。
EMS アプリケーション秘密鍵による認証
EMS アプリケーション秘密鍵(AppSecret)は、EMS クライアント アプリケーションから認証エンドポイントへのアクセス権を付与します。
AppSecret キーは、EMS サーバー構成ファイルで変更します。
EMS アクセス ルール
アクセス ルールを作成して、特定の EMS リソースまたは EMS リソース エンドポイントに関する権限付与を構成することができます。
EMS 管理 API リソース(たとえば EMS ユーザーや EMS グループなど)またはカスタム EMS リソースの新しいアクセス ルールを設定できます。
- メモ: EMS サーバーでマスタ秘密鍵による認証を用いて EMS リソースへのアクセスを制御している場合は、EMS 構成ファイルで設定されたアクセス ルールは無視されます。
次のものに対するアクセス ルールおよび設定を(JSON 文字列として)指定できます。
- リソース -- リソース設定は、その EMS リソース内のすべてのエンドポイントに適用されます。
- 特定のエンドポイント -- エンドポイント設定は、リソースの設定より優先されます。
EMS リソースまたは EMS リソース エンドポイントの下記の JSON 属性を変更できます。
JSON 属性 | 説明 |
---|---|
{"public": true}
|
あらゆる要求に権限を付与します。 |
{"public": false}
|
EMS クライアント アプリケーションは、EMS ユーザーまたは EMS グループによっては、権限を付与される場合があります。 |
{"users": ["username1", "username2"]}
|
フィールド username で EMS ユーザーに権限を付与します。 |
{"users": ["userid1", "userid2"]}
|
フィールド userid で EMS ユーザーに権限を付与します。 |
{"users": ["*"]}
|
あらゆる EMS ユーザーに権限を付与します。 |
{"groups": ["groupname1", "groupname2"]}
|
EMS グループに所属するあらゆる EMS ユーザーに権限を付与します。 |
{"groups": ["*"]}
|
あらゆる EMS グループのあらゆる EMS ユーザーに権限を付与します。 |
次のサンプルでは、LoginUser と SignupUser の 2 つの EMS エンドポイントを除いて、リソース Users のすべてのメソッドを非公開にしています。
Users={"public": false}
Users.LoginUser={"public": true}
Users.SignupUser={"public": true}
次にサンプルでは、カスタム EMS リソース Resource1 のすべてのメソッドを、グループ group1 のすべての EMS ユーザーに公開しています。
Resource1={"groups": ["group1"]}
アクセス ルールの作成と変更は、EMS サーバー構成ファイルで行います。
EMS サーバー ウィンドウ内のログに、作成されたアクセス ルールが(RegACL エントリとして)表示されます。
EMS リソースおよび EMS エンドポイントへのアクセスの制御
リソースやエンドポイントへのアクセスを制御する方法は、EMS ユーザーによる方法と EMS クライアント アプリケーションによる方法の 2 とおりあります。
EMS サーバー構成ファイルの編集
EMS サーバー構成ファイル(emsserver.ini ファイルを使用して、リソースおよびエンドポイント別に権限付与を構成できます。
マスタ秘密鍵またはアプリケーション秘密鍵を構成するか、EMS リソースおよび EMS エンドポイントのアクセス ルールを新規作成します。
- メモ: emsserver.ini ファイルでこれらの値を変更する場合は、EMS サーバーを停止して 構成パラメータを再読み込みする必要があります。EMSDevServer.exe を終了させ再起動して、emsserver.ini ファイルを再読み込みする必要があります。
プログラムによる制御
カスタム EMS リソースを新規作成し、特定の EMS エンドポイントへのアクセスを防ぐコードを追加することができます。 コードでは、特定の EMS ユーザーまたは特定の EMS グループの EMS ユーザーから送信された要求かどうかを確認します。
要求内で特定された EMS ユーザーが問題のエンドポイントにアクセスできない場合は、カスタム リソースで例外を発生させて、権限のない要求であることを示す必要があります。