主要内容

基于角色的访问

请注意

独立支持基于角色的访问MATLAB®Web应用服务器™产品,而不是包含的开发版本MATLAB编译器™.详情请参见MATLAB Web应用服务器的差异

先决条件

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

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

创建webapps_app_roles.json文件

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

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

  • 一个作者可以添加,删除和运行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 / 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:指定角色名称。你可以指定用户作者.只支持这两种角色。

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

      "description": "作者可以上传、删除和执行网页应用。"

    • 用户:指定一个属性,该属性唯一标识一组通过身份验证的终端用户作者或者一个用户

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

      例如,如果您使用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 can execute 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 can execute web apps.", "groups": {"groups": ["1a23456- ab2c4444 -a123-12345b3a81af", "2b3456cd-e8ed-4fcf-ac55-6b79b0781eed "]}}, {"id": "Author", "description": "Author可以上传、删除和执行web apps.", "users": {"email": ["bishop@example.com", "queen@example.com"]}}]}

谨慎

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

相关的话题

Baidu
map