主要内容

基于角色的访问

请注意

独立服务器支持基于角色的访问万博1manbetxMATLAB®Web应用服务器产品而不是包含在其中的开发版本MATLAB编译器™.详细信息请参见MATLAB Web应用程序服务器差异

先决条件

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

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

创建webapps_app_roles.json文件

在服务器上启用基于角色的访问可以让您决定哪些用户可以编写应用程序,哪些用户可以使用它们。

MATLAB Web应用服务器万博1manbetx支持两种基于角色的访问:作者而且用户

  • 一个作者可以添加,删除和运行web应用程序MATLAB Web应用服务器.一个作者看到一个管理应用程序按钮。

  • 一个用户只能运行web应用程序MATLAB Web应用服务器主页。一个用户看到一个诊断按钮。

您可以使用基于角色的访问和基于策略的访问来精确地确定谁可以在服务器上运行应用程序,谁可以修改它们。详细信息请参见基于策略的访问

启用基于角色的访问。

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

  2. 检查是否开启了鉴权。有关更多信息,请参见身份验证

  3. 创建一个名为webapps_app_roles.json把它放在webapps_private文件夹中。

    webapps_private文件夹可在以下地址找到:

    操作系统 文件夹位置

    窗户®

    % ProgramData % \ MathWorks \ webapps \R2022b\ config \ webapps_private

    Linux®

    /地方/ MathWorks / webapps /R2022b/ config / webapps_private

    macOS

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

    的JSON模式webapps_app_roles.json是:

    {"version": "1.0.0", "appRoles": [{"id": "User", "description": <描述User角色的文本>,"users":{<标识标识User角色>的属性名和值},"groups":{<标识标识User角色>的属性名和值}},{"id": "Author", "description": <描述Author角色的文本>,"users":{<标识标识Author角色>的属性名和值},"groups":{<用于标识分配给Author角色的组的属性名称和值>}}]}

    • 版本:指定JSON模式的版本。的默认值R2022b是:1.0.0

    • id:角色名。你可以指定用户作者.目前只支持这两种角色。万博1manbetx

    • 描述:为每个角色指定描述信息。例如:

      "description": "作者可以上传、删除和执行web应用程序。"

    • 用户:指定一个属性,该属性唯一地标识可以承担角色的经过身份验证的最终用户集作者或者一个用户

      属性名称取决于您使用的身份验证类型。

      例如,如果您使用LDAP进行身份验证,您可以如下所示填写JSON模式:

      "users":{"email": ["bishop@example.com", "queen@example.com"]}
      在上面的模式中,一旦最终用户通过了身份验证,MATLAB Web应用服务器检查经过身份验证的用户是否有电子邮件作为属性,并检查该属性值(在本例中为电子邮件地址)是否列在模式中。当两个检查都成功时,最终用户将被分配一个角色。

    • :指定一个属性名和相应的值,唯一标识一组经过身份验证的终端用户,这些用户可以承担角色作者或者一个用户

      属性名称取决于您使用的身份验证类型。使用允许您一次性为整个最终用户集分配一个角色。

      例如,如果您使用LDAP进行身份验证,您可以如下所示填写JSON模式:

      "groups": {"memberOf": ["CN=Marketing,OU=Mail,DC=ldap,DC=example,DC=com", "CN=Development,OU=Mail,DC=ldap,DC=example,DC=com"]}
      在上面的模式中,一旦最终用户通过了身份验证,MATLAB Web应用服务器检查经过身份验证的用户是否有memberOf作为属性,并检查该属性的值是否列在模式中。当两个检查都成功时,最终用户将被分配一个角色。

      模式中指定的属性需要是集合属性或组属性。

提示

  1. 您不需要同时指定用户而且在每个角色的模式中,除非这是获得唯一最终用户集的唯一方法。

  2. 属性中的属性用户用户角色标识一组用户时,需要使用相同的属性用户作者角色来标识一组用户。同样的条件也适用于

MATLAB Web应用服务器首先检查经过身份验证的用户是否可以承担角色作者在检查用户的角色。如果对两个角色的检查都失败,最终用户将被拒绝访问服务器。

例子webapps_app_roles.jsonLDAP认证文件

{"version": "1.0.0", "appRoles": [{"id": "User", "description": "A User只能执行web apps.", "groups": {"memberOf": ["CN=Marketing,OU=Mail,DC=ldap,DC=example,DC=com", "CN=Development,OU=Mail,DC=ldap,DC=example,DC=com"]}}, {"id": "Author", "description": "Author可以上传、删除和执行web apps.", "users": {"email": ["bishop@example.com", "queen@example.com"]}}]}

例子webapps_app_roles.json文件Azure广告的身份验证

{"version": "1.0.0", "appRoles": [{"id": "User", "description": "A User只能执行web apps.", "groups": {"groups": ["1a23456-ab2c-4444-a123-12345b3a81af", "2b3456cd-e8ed- 4ffc -ac55-6b79b0781eed "]}}, {"id": "Author", "description": "Author可以上传、删除和执行web apps.", "users": {"email": ["bishop@example.com", "queen@example.com"]}}]}

谨慎

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

相关的话题