このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
ポリシーベースのアクセス
メモ
ポリシーベースのアクセスは、スタンドアロンのMATLAB® Web App Server™製品でサポートされており、 MATLAB Compiler™に含まれる開発バージョンではサポートされていません。 $。詳細については、MATLAB Web App Server の違いを参照してください。
前提条件
webapps_acc_ctl.json
ファイルの作成
サーバー上でポリシーベースのアクセスを有効にすると、認証されたサブジェクトがサーバー上の Web アプリにアクセスできるようにする属性ベースのルールを作成できます。
ポリシーベースのアクセスを有効にするには:
SSLが有効になっているかどうかを確認します。詳細については、SSLを有効にするを参照してください。
認証が有効になっているかどうかを確認し、
userAttributeName
とgroupAttributeName
の値のいずれかまたは両方がwebapps_authn.json
ファイルに指定されていることを確認してください。詳細については、認証を参照してください。サーバー上の
apps
ルート フォルダー内にフォルダーが存在するかどうかを確認します。ポリシーベースのアクセスを有効にするためにフォルダーは必要ありませんが、フォルダーを使用すると、Web アプリを整理し、アクセス可能なリソースとして指定できます。詳細については、フォルダーを作成して Web アプリを整理するを参照してください。webapps_acc_ctl.json
という名前のファイルを作成し、webapps_private
フォルダーに配置します。webapps_private
フォルダーは次の場所にあります。オペレーティング システム フォルダーの場所 Windows®
%ProgramData%\MathWorks\webapps\R2023b\config\webapps_private
Linux®
/local/MathWorks/webapps/R2023b/config/webapps_private
macOS
/Library/Application Support/MathWorks/webapps/R2023b/config/webapps_private
webapps_acc_ctl.json
の JSON スキーマは次のとおりです。
{ "version": "<major>.<minor>.<patch>", "policy": [ { "id": "<policy_id>", "description": "<policy_description>", "rule": [ { "id": "<rule_id>", "description": "<rule_description>", "subject": { "<attribute_name_of_auth_subject>": [ "<attribute_value_of_auth_subject>" ] }, "resource": { "<app OR folder>": [ "<app_name OR folder_name>" ] }, "action": [ "<action_type>" ] }, { "id": "<rule_id>", "description": "<rule_description>", "subject": { "<attribute_name_of_auth_subject>": [ "<attribute_value_of_auth_subject>" ] }, "resource": { "<app OR folder>": [ "<app_name OR folder_name>" ] }, "action": [ "<action_type>" ] } ] } ] }
"バージョン":JSONスキーマのバージョンを指定します。R2023b のデフォルト値は
1.0.0
です。"ポリシー":ポリシー ブロックには、ポリシーベースのアクセスに必要なポリシーのリストが含まれています。ポリシー ファイルに指定できるポリシーは 1 つだけです。
ID:ポリシーのポリシー ID を指定します。ポリシー ID は英数字のセットである必要があります。先頭または末尾の空白は削除されます。以下に例を示します。
"id" : "policy420"
"説明":ポリシーの説明を指定します。以下に例を示します。
"description" : "Company policy for accessing web apps."
"ルール":ルール ブロックにはルール オブジェクトのリストが含まれます。ルール ブロックには複数のルールが存在できます。各ルールには ID が必要であり、
<rule_id>
はルールごとに一意である必要があります。ID:各ルールに一意のルール ID を指定します。ルール ID は英数字のセットである必要があります。先頭または末尾の空白は削除されます。以下に例を示します。
"id" : "rule101"
"説明":各ルールの説明を指定します。以下に例を示します。
"description" : "Only the Hercules group can run the BloodPressure app."
"主題":リソースにアクセスできる認証済みサブジェクトの属性名と値のペアを指定します。
以下に例を示します。
"subject": { "memberOf": ["CN=Middle,OU=middle,ou=groups,DC=school,DC=com"] }
"subject": { "groups": ["Sales"] }
"subject": { "uid": ["fbueller", "cfrye"] }
Azure® Active Directory を使用していて、グループ ID を取得する必要がある場合は、 Azure Active Directory の使用を参照してください。
"リソース":アクセスできるリソースのタイプと名前を指定します。タイプ
app
またはfolder
のリソースのみがサポートされます。リソースを指定しない場合、認証されたサブジェクトは、アプリまたはフォルダーがサーバー上に存在する場合でも、そのアプリまたはフォルダーにアクセスできません。フォルダーの作成方法については、 「 フォルダーを作成して Web アプリを整理する 」を参照してください。たとえば、ルート レベルでアプリへのアクセスを指定するには、次のようにします。
"resource": { "app": ["BloodPressure"] }
たとえば、特定のフォルダー内のアプリへのアクセスを指定するには、次のようにします。
"resource": { "app": ["MagicFolder/CardTricks"] }
たとえば、特定のフォルダー内のすべてのアプリへのアクセスを指定するには、次のようにします。
"resource": { "folder": ["MagicFolder"] }
たとえば、ルート フォルダー内のすべてのアプリへのアクセスを指定するには、次のようにします。
"resource": { "folder": ["/"] }
"アクション":認証されたサブジェクトが実行できるアクションのタイプを指定します。リソース タイプが
app
の場合、サポートされるアクションはexecute
で、サブジェクトは Web アプリを実行できます。リソースタイプがfolder
の場合、サポートされるアクションはexecute
およびmodify
です。この場合、execute
アクションにより、対象者は指定されたフォルダー内のすべての Web アプリを実行できるようになります。modify
アクション、対象者がwebapps_app_roles.json
ロールベースのアクセス ファイルで作成者のロールを割り当てられている場合、対象者はフォルダに対して Web アプリをアップロードまたは削除できます。 。webapps_app_roles.json
ロールベースのアクセス ファイルでユーザーのロールが割り当てられているサブジェクトは、modify
が割り当てられている場合でも、フォルダーに Web アプリをアップロードしたり、フォルダーから Web アプリを削除したりすることはできません。アクション。以下に例を示します。"action": ["execute", "modify"]
詳細については、役割ベースのアクセスを参照してください。
LDAP 認証用のwebapps_acc_ctl.json
ファイルの例
{ "version": "1.0.0", "policy" : [ { "id": "policy1001", "description": "Web Apps Access Control Policy", "rule": [ { "id": "rule101", "description": "Sales group can run the BloodPressure app.", "subject": { "memberOf": ["cn=Sales,ou=sales,ou=groups,dc=example,dc=com"] }, "resource": { "app": ["BloodPressure"] }, "action": ["execute"] }, { "id": "rule102", "description": "Specified subjects can run the CardTricks app in the MagicDir folder.", "subject": { "uid": ["erooney"] }, "resource": { "app": ["MagicDir/CardTricks"] }, "action": ["execute"] }, { "id": "rule103", "description": "Specified subjects can run all apps in the MagicDir folder and modify (upload or delete) apps in MagicDir folder.", "subject": { "uid": ["fbueller"] }, "resource": { "folder": ["MagicDir"] }, "action": ["execute", "modify"] }, { "id": "rule104", "description": "Specified subjects can run all apps under the DayOff folder.", "subject": { "uid": ["cfrye", "psloane"] }, "resource": { "folder": ["DayOff"] }, "action": ["execute"] }, { "id": "rule105", "description": "Specified subjects can run all apps in the apps root folder and modify (upload or delete) apps in the apps root folder.", "subject": { "uid": ["jbueller"] }, "resource": { "folder": ["/"] }, "action": ["execute", "modify"] } ] } ] }
注意
webapps_acc_ctl.json
の JSON スキーマ構文は厳密に適用されます。スキーマ構文にエラーがあると、サーバーが起動しなかったり、ログインしようとするとサーバーへのアクセスが拒否されたりする可能性があります。
認証およびロールベースのアクセスによるポリシーベースのアクセスの使用
認証を伴うポリシーベースのアクセス
ポリシーベースのアクセスを使用する場合は、
appConfig
webapps_authn.json
ブロックに次のプロパティを含めて、適切な値を設定する必要があります。userAttributeName
groupAttributeName
これらのプロパティの値を含めて設定しないと、サーバーが起動しなくなります。詳細については、認証を参照してください。
ポリシーベースのアクセスを使用し、
userAttributeName
webapps_authn.json
groupAttributeName
およびgroupAttributeName
の値を設定する場合、subject
webapps_acc_ctl.json
プロパティは、認証ファイルに設定した値と一致する必要があります。認証ファイル (webapps_authn.json) ポリシーベースのアクセス ファイル (webapps_acc_ctl.json) "userAttributeName": "
<value>
", "groupAttributeName": "<value>
""subject": { "
<attrib>
": ["..."] } "subject": { "<attrib>
": ["..."] }たとえば、
webapps_authn.json
認証ファイルに次の値を設定するとします。"userAttributeName": "uid", "groupAttributeName": "memberOf"
次に、
webapps_acc_ctl.json
ポリシーベースのアクセス ファイルでも同じ値を使用する必要があります。"subject": { "uid": ["..."] }
"subject": { "memberOf": ["..."] }
JSON ファイル内の属性が一致しないと、サーバーが起動しなくなります。詳細については、ポリシーベースのアクセスを参照してください。
メモ
ロールベースのアクセスとは独立した認証を伴うポリシーベースのアクセスを使用できます。ただし、このタイプのアクセスでは、認証されたサブジェクトは Web アプリの実行のみが可能になり、変更はできなくなります。
認証を伴うポリシーベースおよびロールベースのアクセス
ポリシーベースのアクセスとロールベースのアクセスを同時に使用し、
userAttributeName
および/またはgroupAttributeName
の値をwebapps_authn.json
に設定する場合認証ファイル、次にsubject
ポリシーベースのアクセス ファイルのwebapps_acc_ctl.json
プロパティに指定された属性、およびgroups
に指定された属性およびusers
プロパティは、認証ファイルに設定した値と一致する必要があります。認証ファイル ( webapps_authn.json
)ポリシーベースのアクセス ファイル ( webapps_acc_ctl.json
)ロールベースのアクセス ファイル ( webapps_app_roles.json
)"userAttributeName": "
<value>
", "groupAttributeName": "<value>
""subject": { "
<attrib>
": ["..."] } "subject": { "<attrib>
": ["..."] }"users": { "
<attrib>
": ["..."] } "groups": { "<attrib>
": ["..."] }たとえば、
webapps_authn.json
認証ファイルに次の値を設定するとします。"userAttributeName": "uid", "groupAttributeName": "memberOf"
次に、
webapps_app_roles.json
ロールベースのアクセス ファイルは同じ属性を使用する必要があります。"appRoles": [ { "id": "User", "description": "User role info", "groups": { "memberOf": ["..."] }, "users": { "uid": ["..."] } }, { "id": "Author", "description": "Author role info", "groups": { "memberOf": ["..."] }, "users": { "uid": ["..."] } } ]
また、
webapps_acc_ctl.json
ポリシーベースのアクセス ファイルは同じ値を使用する必要があります。"subject": { "memberOf": ["..."] }
"subject": { "uid": ["..."] }
値が一致しないと、サーバーが起動しなくなります。詳細については、役割ベースのアクセスを参照してください。
メモ
認証を伴うポリシーベースのアクセスとロールベースのアクセスを使用する場合、認証されたサブジェクトには、 webapps_app_roles.json
ロールベースのアクセス ファイルで 作成者 のロールが割り当てられ、 を持つ必要があります。 modify
は、サブジェクトが Web アプリを変更できるようにするために、webapps_acc_ctl.json
ポリシーベースのアクセス ファイル内のアクションとして実行されます。