主要内容

基于策略的访问

笔记

独立服务器支持基于策略的访问万博1manbetx马铃薯草®Web App Server™产品,而不是包含的开发版本MATLAB编译器™.有关详细信息,请参阅MATLAB Web App Server差异

笔记

要使用基于策略的访问,您需要:

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

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

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

启用策略访问:

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

  2. 检查是否启用了身份验证并验证了或验证userattributename.groupAttributeName属性中指定的值webapps_authn.json文件。有关详细信息,请参阅身份验证

  3. 检查文件夹是否存在应用服务器的根文件夹。虽然没有必要使用文件夹来实现基于策略的访问,但是有文件夹可以让你组织web应用程序,并将它们指定为可访问的资源。有关详细信息,请参阅创建文件夹来组织Web应用程序

  4. 创建名为的文件webapps_acc_ctl.json.把它放在webapps_private.文件夹。

    webapps_private.文件夹可以找到:

    操作系统 文件夹位置

    窗户®

    %programdata%\ mathworks \ webapps \R2021b\ config \ webapps_private

    Linux.®

    /地方/ MathWorks / webapps /R2021b/ config / webapps_private

    macOS

    /图书馆/应用程序/ MathWorks 万博1manbetx/ webapps /支持R2021b/ 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架构的版本。默认值R2021b1.0.0.

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

  • id:指定策略ID。策略ID必须是一组字母数字字符。删除任何开头或结尾的空白。例如:

    “ID”:“policy420”
  • 描述:指定策略的描述。例如:

    "description": "公司对访问web应用程序的政策。"
  • 规则:规则块中包含规则对象列表。一个规则块中可以存在多个规则。每个规则和都需要一个ID< rule_id >每个规则都必须是唯一的。

  • id:为每个规则指定唯一的规则ID。规则ID必须是一组字母数字字符。删除任何开头或结尾的空白。例如:

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

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

    例如:

    “主题”:{“会员”:[“CN =中间,OU =中间,OU =组,DC =学校,DC = COM”]}
    “主题”:{“组”:[“销售”]}
    "subject": {"uid": ["fbueller", "cfrye"]}

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

  • 资源:指定可访问的资源类型和名称。只有类型资源应用程序文件夹都受支持万博1manbetx。如果你没有指定一个资源,那么一个经过身份验证的主题将不能访问应用程序或文件夹,即使它存在于服务器上。有关如何创建文件夹的信息,请参见创建文件夹来组织Web应用程序

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

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

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

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

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

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

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

    "resource": {"folder": ["/"]}
  • 行动:指定身份验证的主题可以执行的操作类型。如果资源类型是应用程序,支持的行动是万博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", "description": "指定的主题可以在MagicDir文件夹下运行CardTricks app .", "subject": {"uid": ["erooney"]}, "resource": {"app": ["MagicDir/CardTricks"]}, "action": ["execute"]}, {"id": "rule103", "description":“指定科目可以运行MagicDir文件夹中的所有应用程序和修改(上传或删除)应用MagicDir文件夹。”,“主题”:{“uid”:[" fbueller "]},“资源”:{“文件夹”:[" MagicDir "]},“行动”:[“执行”,“修改”]},{" id ":“rule104”,“描述”:“指定科目可以运行所有程序在休息日文件夹中。”、“主题”:{“uid”:["cfrye", "psloane"]}, "resource": {"folder": ["DayOff"]}, "action": ["execute"]}, {"id": "rule105", "description": "指定的主题可以运行apps根目录下的所有apps,并可以修改(上传或删除)apps根目录下的apps。","subject": {"uid": ["jbueller"]}, "resource": {"folder": ["/"]}, "action":["execute", "modify"]}]}

谨慎

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

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

基于策略的认证访问权限

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

    • userattributename.

    • groupAttributeName

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

  • 如果您使用基于策略的访问,并为userattributename.groupAttributeNamewebapps_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文件中的属性不匹配会导致服务器无法启动。有关详细信息,请参阅基于策略的访问

笔记

您可以使用基于策略的访问和独立于基于角色的访问的身份验证。然而,这种类型的访问导致经过身份验证的主体只能执行web应用程序,而不能修改它们。

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

  • 如果您同时使用基于策略的访问和基于角色的访问,并设置值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": "User", "description": "User role info", "groups": {"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应用程序。

相关的话题