主要内容

基于策略的访问

请注意

基于策略的访问是在独立的支持万博1manbetxMATLAB®Web应用程序服务器™包括在产品而不是开发版本MATLAB编译器™。有关详细信息,请参见MATLAB Web应用程序服务器的区别

先决条件

  • 在服务器上启用SSL。有关更多信息,请参见启用SSL

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

创建webapps_acc_ctl.json文件

支持基于策略的访问服务器上允许您创建属性规则,允许经过身份验证的对象来访问web应用程序在服务器上。

支持基于策略的访问:

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

  2. 检查是否启用身份验证,并验证一种或两种userAttributeNamegroupAttributeName中指定的值webapps_authn.json文件。有关详细信息,请参见身份验证

  3. 检查文件夹内的存在应用程序根文件夹在服务器上。虽然文件夹没有必要支持基于策略的访问,在文件夹可以组织web应用程序和指定一个可以访问的资源。有关详细信息,请参见创建文件夹组织Web应用程序

  4. 创建一个文件命名webapps_acc_ctl.json并将其放入webapps_private文件夹中。

    webapps_private文件夹中可以找到:

    操作系统 文件夹位置

    窗户®

    % ProgramData % \ MathWorks \ webapps \R2023a\ config \ webapps_private

    Linux®

    /地方/ MathWorks / webapps /R2023a/ config / webapps_private

    macOS

    /图书馆/应用程序/ MathWorks 万博1manbetx/ webapps /支持R2023a/ config / webapps_private

JSON模式webapps_acc_ctl.json是:

{“版本”:“<主要>。<小>。<补丁>”、“政策”:[{" id ":“< policy_id >”,“描述”:“< policy_description >”,“规则”:[{" id ":“< rule_id >”,“描述”:“< rule_description >”,“主题”:{" < attribute_name_of_auth_subject > ": [" < attribute_value_of_auth_subject > "]},“资源”:{“<应用程序或文件夹>”:[" < app_name或folder_name > "]},“行动”:[" < action_type > "]}, {" id ": " < rule_id >”,“描述”:“< rule_description >”,“主题”:{" < attribute_name_of_auth_subject > ": [" < attribute_value_of_auth_subject > "]},“资源”:{“<应用程序或文件夹>”:[" < app_name或folder_name > "]},“行动”:[" < action_type > "]}]}]}
  • 版本JSON模式:指定的版本。的默认值R2023a1.0.0

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

  • id:指定一个ID的政策。的政策ID必须是一组字母数字字符。任何前导或尾随空格移除。例如:

    “id”:“policy420”
  • 描述:指定一个描述政策。例如:

    “描述”:“公司政策来访问web应用程序。”
  • 规则:规则块包含规则对象的列表。多个规则可以存在于一个规则。一个ID为每个规则和要求< rule_id >为每个规则必须是唯一的。

  • id:为每个规则指定一个唯一的规则ID。规则的ID必须是一组字母数字字符。任何前导或尾随空格移除。例如:

    “id”:“rule101”
  • 描述:指定每个规则的描述。例如:

    “描述”:“只有大力士组血压应用可以运行。”
  • 主题:指定一个属性名称-值对的经过身份验证的主体可以访问的资源。

    例如:

    “主题”:{“memberOf”:“CN =中间,OU =中间,OU =组,DC =学校,DC = com”]}
    “主题”:{“团体”:["销售"]}
    “主题”:{“uid”: [“fbueller”、“cfrye”]}

    如果您正在使用Azure®活动目录,需要检索组id,明白了使用Azure活动目录

  • 资源:指定的类型和名称可以访问的资源。只有资源的类型应用程序文件夹都受支持万博1manbetx。如果你不指定一个资源,然后经过身份验证的主体没有访问服务器上的应用程序或文件夹,即使它的存在。有关如何创建文件夹的信息,明白了创建文件夹组织Web应用程序

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

    “资源”:{“应用”:[“血压”]}

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

    “资源”:{“应用”:[" MagicFolder / CardTricks "]}

    例如,指定访问所有应用程序在一个特定的文件夹:

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

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

    “资源”:{“文件夹”(" / ")}
  • 行动:指定身份验证的主体可以执行的操作类型。如果资源类型应用程序支持的行动万博1manbetx执行,让主体运行一个web应用程序,如果资源类型文件夹,支持的行动万博1manbetx执行修改。的执行行动,在这种情况下,让主体运行的所有web应用程序在指定的文件夹中。的修改行动让主题上传或删除一个web应用程序,或从一个文件夹,如果主题是分配的作用作者webapps_app_roles.json基于角色的访问文件。一个主题分配的作用用户webapps_app_roles.json基于角色的访问文件不能上传或删除一个web应用程序从一个文件夹或即使他们被分配一个修改行动。例如:

    “行动”:(“执行”,“修改”)

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

例子webapps_acc_ctl.json申请LDAP身份验证

{“版本”:“1.0.0”、“政策”:[{" id ":“policy1001”、“描述”:“网络应用访问控制策略”、“规则”:[{" id ":“rule101”、“描述”:“销售组血压应用可以运行。”“主题”:{“memberOf”: [“cn =销售,ou =销售,ou =组,dc = myboston, dc = com”]},“资源”:{“应用”:[“血压”]},“行动”:"执行"},{" id ":“rule102”、“描述”:“指定科目可以运行CardTricks应用MagicDir文件夹。”“主题”:{“uid”: [" erooney "]},“资源”:{“应用”:[" MagicDir / CardTricks "]},“行动”:"执行"},{" id ":“rule103”、“描述”:“指定科目可以运行MagicDir文件夹中的所有应用程序和修改(上传或删除)应用MagicDir文件夹中。”“主题”:{“uid”: [" fbueller "]},“资源”:{“文件夹”:[" MagicDir "]},“行动”:[“执行”,“修改”]},{“id”:“rule104”、“描述”:“指定科目可以运行所有程序在休息日文件夹中。”“主题”:{“uid”: [“cfrye”、“psloane”]},“资源”:{“文件夹”:[“休息日”]},“行动”:"执行"},{" id ":“rule105”、“描述”:“指定科目可以运行应用程序根目录中的所有应用程序和修改(上传或删除)应用程序的应用程序根目录”。“主题”:{“uid”: [" jbueller "]},“资源”:{“文件夹”(“/”)},“行动”:[“执行”,“修改”]}}]}

谨慎

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

使用基于策略的访问认证和基于角色的访问

基于策略的访问身份验证

  • 如果你使用基于策略的访问,你必须包括以下属性appConfig块的webapps_authn.json验证文件并设置适当的值:

    • userAttributeName

    • groupAttributeName

    未能包括和设置这些属性的值会导致服务器没有启动。有关详细信息,请参见身份验证

  • 如果使用基于策略的访问和设置值userAttributeNamegroupAttributeNamewebapps_authn.json验证文件,然后指定的属性主题财产的webapps_acc_ctl.json基于策略的访问文件必须匹配的值设置身份验证文件。

    认证文件(webapps_authn.json) 基于策略的访问文件(webapps_acc_ctl.json)

    “userAttributeName”:“<值>”、“groupAttributeName”:“<值>

    “主题”:{"<属性>”:“…”]}“主题”:{"<属性>”:“…”]}

    例如,如果您设置以下值webapps_authn.json验证文件:

    “userAttributeName”:“uid”、“groupAttributeName”:“memberOf

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

    “主题”:{"uid”:“…”]}
    “主题”:{"memberOf”:“…”]}

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

请注意

您可以使用基于策略的访问认证独立的基于角色的访问。然而,这种类型的访问结果验证学科只能够执行网络应用但不修改它们。

基于策略和基于角色的访问身份验证

  • 如果你同时使用基于策略的访问和基于角色的访问,并设置值userAttributeName和/或groupAttributeNamewebapps_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”:“memberOf

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

    “appRoles”: [{" id ":“用户”、“描述”:“用户角色信息”,“组织”:{"memberOf”:“…”]}, "users": { "uid”:“…”]}}, { "id": "Author", "description": "Author role info", "groups": { "memberOf”:“…”]}, "users": { "uid”:“…”}})

    和,webapps_acc_ctl.json基于策略的访问文件必须使用相同的价值观:

    “主题”:{"memberOf”:“…”]}
    “主题”:{"uid”:“…”]}

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

请注意

当您使用基于策略的访问和基于角色的访问认证,经过身份验证的主体必须分配的作用作者webapps_app_roles.json基于角色的访问文件和修改作为一个行动webapps_acc_ctl.json基于策略的访问文件为了能够修改web应用程序。

相关的话题