主要内容

基于策略的访问

笔记

独立的基于策略的访问得到了支持金宝appMATLAB®Web App Server™产品,而不是包含的开发版本MATLAB编译器™。有关详细信息,请参阅MATLAB Web应用程序服务器差异

先决条件

  • 在服务器上启用SSL。有关更多信息,请参阅启用S​​SL

  • 在服务器上启用身份验证。有关更多信息,请参阅验证

创造WebApps_acc_ctl.json文件

在服务器上启用基于策略的访问权限,您可以创建基于属性的规则,该规则允许经过身份验证的主题访问服务器上的Web应用程序。

启用基于策略的访问:

  1. 检查是否启用了SSL。有关更多信息,请参阅启用S​​SL

  2. 检查是否已启用身份验证并验证该验证UserAttributeNameGroupAttributeName值已在webapps_authn.json文件。有关详细信息,请参阅验证

  3. 检查文件夹是否存在应用服务器上的根文件夹。虽然文件夹不需要启用基于策略的访问权限,但是拥有文件夹使您可以组织Web应用程序并将其指定为可以访问的资源。有关详细信息,请参阅创建文件夹以组织Web应用程序

  4. 创建一个名称的文件WebApps_acc_ctl.json并将其放在WebApps_private文件夹。

    WebApps_private文件夹可以在:

    操作系统 文件夹位置

    视窗®

    %programData%\ Mathworks \ WebApps \R2022a\ config \ webapps_private

    Linux®

    /local/Mathworks/webApps/R2022a/config/webapps_private

    苹果系统

    /库/应用程序支持/Mathworks/W金宝appebApps/R2022a/config/webapps_private

JSON模式WebApps_acc_ctl.json是:

{“版本”:“ ”,“策略”:[{“ id”:“ ”,“描述”:“ ”,“ rule”:[[{“ id”:“ ”,“描述”:“ ”,“主题”:{“ ”文件夹>“:[“ ”]},“ action”:[“ ”]},{“ ID”:“ ”,“ description”,“描述”:“ ”,“主题“: { "": [ "" ] }, "resource": { "": [ "" ] }, "action": [ "" ] } ] } ] }
  • 版本:指定JSON模式的版本。的默认值R2022a1.0.0

  • 政策:策略块包含基于策略访问所需的策略列表。在策略文件中只能指定单个策略。

  • ID:为策略指定策略ID。策略ID必须是一组字母数字字符。任何领先或尾随的空白空间都被删除。例如:

    “ ID”:“ Policy420”
  • 描述:为策略指定描述。例如:

    “描述”:“访问Web应用程序的公司策略。”
  • 规则:规则块包含规则对象的列表。规则块中可以存在多个规则。每个规则都需要一个ID对于每个规则,必须是唯一的。

  • ID:为每个规则指定一个唯一的规则ID。规则ID必须是一组字母数字字符。任何领先或尾随的空白空间都被删除。例如:

    “ ID”:“ Rule101”
  • 描述:为每个规则指定描述。例如:

    “描述”:“只有大力神小组才能运行血压应用程序。”
  • 主题:指定可以访问资源的身份验证主体的属性名称值对。

    例如:

    “主题”:{“成员”:[Cn = Midder,OU = MIDDER,OU =组,DC = School,DC = COM']}
    “主题”:{“组”:[“ sales”]}
    “主题”:{“ uid”:[“ fbueller”,“ cfrye”]}

    如果您使用的是Azure®Active Directory并需要检索组ID,请参阅使用Azure Active Directory

  • 资源:指定可以访问的资源的类型和名称。只有类型的资源应用程序或者文件夹得到支持金宝app。如果您不指定资源,则即使该应用程序存在于服务器上,已经过身份验证的主题也将无法访问该应用程序或文件夹。有关如何创建文件夹的信息,请参阅创建文件夹以组织Web应用程序

    例如,要在根级别指定对应用程序的访问:

    “资源”:{“ app”:[“ BloodPressure”]}

    例如,在特定文件夹中指定对应用程序的访问:

    “资源”:{“ app”:[“ MagicFolder/Cardtricks”]}

    例如,要指定特定文件夹中所有应用程序的访问:

    “资源”:{“文件夹”:[“ MagicFolder”]}

    例如,要指定对根文件夹中所有应用程序的访问:

    “资源”:{“文件夹”:[“/”]}
  • 行动:指定身份验证的受试者可以执行的操作类型。如果资源类型是应用程序,支持的动作是金宝app执行,该主题可以运行一个Web应用程序。如果资源类型是文件夹,所支持的行动是金宝app执行调整。这执行在这种情况下,操作使主题可以在指定文件夹中运行所有Web应用程序。这调整操作让主题可以上传或删除Web应用程序,如果分配了主题的角色作者在里面webApps_app_roles.json基于角色的访问文件。主题分配了角色用户在里面webApps_app_roles.json基于角色的访问文件也无法上传或删除Web应用程序,即使分配了文件夹或从文件夹中调整行动。例如:

    “动作”:[“执行”,“修改”]

    有关详细信息,请参阅基于角色的访问

例子WebApps_acc_ctl.json用于LDAP身份验证的文件

{“版本”:“ 1.0.0”,“策略”:[{“ ID”:“ policy1001”,“描述”:“ Web Apps访问控制策略”,“规则”:[{“ ID”:“ Rule101”,“描述”:“销售组可以运行BloodPressure应用程序。“资源”:{“ app”:[“ floodpressure”]},“ action”:[“ execute”]},{“ id”:“ rule102”,“描述”:MagicDir文件夹。“,“主题”:{“ UID”:[“ Eroney”]},“资源”:{“ app”:[“ MagicDir/cardTricks”]},“ action”:[execute'execute'execute'},{“ id”:“ rule103”,“ description”:“指定的主题可以在MagicDir文件夹中运行所有应用程序,并在MagicDir文件夹中修改(上传或删除)应用程序。“]},“ resource”:{“文件夹”:[“ magicDir”]},“ action”:[“ execute”,“ modify”]},{“ id”:“ rule104”,“ description”:“指定受试者可以在Dayoff文件夹下运行所有​​应用程序。“,“主题”:{“ uid”:[“ cfrye”,“ psloane”]},“ resource”:{“ folder”:[dayoff“]},”,“行动“: ["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"] } ] } ] }

警告

JSON模式语法WebApps_acc_ctl.json严格执行。模式语法中的错误可能导致服务器没有启动,或者在尝试登录时被拒绝访问服务器。

使用基于策略的访问以及基于身份验证和基于角色的访问

通过身份验证基于策略的访问

  • 如果使用基于策略的访问,则必须在AppConfig街区webapps_authn.json身份验证文件并设置适当的值:

    • UserAttributeName

    • GroupAttributeName

    未能包含这些属性的值并设置这些属性的值导致服务器未启动。有关详细信息,请参阅验证

  • 如果使用基于策略的访问,并为UserAttributeNameGroupAttributeName在里面webapps_authn.json身份验证文件,然后是指定的属性主题属性WebApps_acc_ctl.json基于策略的访问文件必须匹配您在身份验证文件中设置的值。

    身份验证文件(webapps_authn.json) 基于策略的访问文件(webApps_acc_ctl.json)

    “ UserAttributeName”:”“,” GroupAttributeName“:”:

    “主题”: { ”“: [“...“] } “主题”: { ””:[[“ ...”]}

    例如,如果在webapps_authn.json身份验证文件:

    “ UserAttributeName”:”uid“,” GroupAttributeName“:”:成员

    然后,WebApps_acc_ctl.json基于策略的访问文件必须使用相同的值:

    “主题”: { ”uid”:[[“ ...”]}
    “主题”: { ”成员”:[[“ ...”]}

    JSON文件中的属性不匹配导致服务器未启动。有关详细信息,请参阅基于策略的访问

笔记

您可以将基于策略的访问使用与基于角色的访问无关的身份验证。但是,这种类型的访问会导致身份验证的受试者能够仅执行Web应用程序,但不能修改它们。

基于策略和基于角色的访问权限

  • 如果您同时使用基于策略的访问和基于角色的访问,并为UserAttributeName和/或GroupAttributeName在里面webapps_authn.json身份验证文件,然后是指定的属性主题属性WebApps_acc_ctl.json基于策略的访问文件和指定的属性小组用户属性必须匹配您在身份验证文件中设置的值。

    身份验证文件(webapps_authn.json 基于策略的访问文件(WebApps_acc_ctl.json 基于角色的访问文件(webApps_app_roles.json

    “ UserAttributeName”:”“,” GroupAttributeName“:”:

    “主题”: { ”“: [“...“] } “主题”: { ””:[[“ ...”]}

    “用户”:{”“:[[“ ...”]}“组”:{””:[[“ ...”]}

    例如,如果在webapps_authn.json身份验证文件:

    “ UserAttributeName”:”uid“,” GroupAttributeName“:”:成员

    然后,webApps_app_roles.json基于角色的访问文件必须使用相同的属性:

    “ Acceptoles”:[{“ ID”:“用户”,“描述”:“用户角色信息”,“组”:{”成员“:[“ ...”]},“用户”:{”uid“:[“ ...”]}},{“ id”:“作者”,“描述”:“作者角色信息”,“组”:{”成员“:[“ ...”]},“用户”:{”uid“:[[“ ...”]}}]]

    而且,WebApps_acc_ctl.json基于策略的访问文件必须使用相同的值:

    “主题”: { ”成员”:[[“ ...”]}
    “主题”: { ”uid”:[[“ ...”]}

    不匹配的值导致服务器未启动。有关详细信息,请参阅基于角色的访问

笔记

当您使用基于策略的访问和基于角色验证的验证验证时,必须分配身份验证的主题的角色作者在里面webApps_app_roles.json基于角色的访问文件,调整作为动作WebApps_acc_ctl.json基于策略的访问文件,以便受试者能够修改Web应用程序。

相关话题