Main Content

このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。

ロールベースのアクセス

メモ

ロールベースのアクセスはスタンドアロンの MATLAB® Web App Server™ 製品ではサポートされており、MATLAB Compiler™ に含まれる開発バージョンではサポートされていません。詳細については、MATLAB Web App Server の違いを参照してください。

前提条件

  • サーバー上で SSL を有効にします。詳細については、SSLを有効にするを参照してください。

  • サーバー上で認証を有効にします。詳細については、認証を参照してください。

webapps_app_roles.json ファイルの作成

サーバー上でロールベースのアクセスを有効にすると、どのユーザーがアプリを作成できるか、どのユーザーがアプリを使用できるかを決定できます。

MATLAB Web App Server は、ロールベースのアクセスに対して 2 つのロールをサポートしています。著者ユーザー

  • 著者は、MATLAB Web App Server から Web アプリを追加、削除、実行できます。著者には、サーバーのホームページに Manage Apps ボタンが表示されます。

  • ユーザーは、MATLAB Web App Server ホームページからのみ Web アプリを実行できます。ユーザーには、サーバーのホームページに Diagnostics ボタンが表示されます。

ロールベースのアクセスとポリシーベースのアクセスを併用することで、サーバー上でアプリを実行できるユーザーとアプリを変更できるユーザーを細かく決定できます。詳細については、ポリシーベースのアクセスを参照してください。

ロールベースのアクセスを有効にするには:

  1. SSL が有効になっているかどうかを確認します。詳細については、SSLを有効にするを参照してください。

  2. 認証が有効になっているかどうかを確認します。詳細については、認証を参照してください。

  3. webapps_app_roles.json という名前のファイルを作成し、webapps_private フォルダーに配置します。

    webapps_private フォルダは次の場所にあります:

    オペレーティング システムフォルダーの場所

    Windows®

    %ProgramData%\MathWorks\webapps\R2024a\config\webapps_private

    Linux®

    /local/MathWorks/webapps/R2024a/config/webapps_private

    macOS

    /Library/Application Support/MathWorks/webapps/R2024a/config/webapps_private

    webapps_app_roles.json の JSON スキーマは次のとおりです。

    {
      "version": "1.0.0",
      "appRoles": [
        {
          "id": "User",
          "description": <Text describing the User role>,   
          "users":  { <Attribute name and values to identify end-users assigned to User role> },       
          "groups": { <Attribute name and values to identify groups assigned to User role> }
        },
        {
          "id": "Author",
          "description": <Text describing the Author role>, 
          "users":  { <Attribute name and values to identify end-users assigned to Author role> },
          "groups": { <Attribute name and values to identify groups assigned to Author role> }
        }
      ]
    }

    • バージョン:JSON スキーマのバージョンを指定します。R2024a のデフォルト値は 1.0.0 です。

    • id:ロール名を指定します。User または Author のいずれかを指定できます。これら 2 つのロールのみがサポートされます。

    • 説明:各ロールの説明を指定します。次に例を示します。

      "description" : "An Author can upload, delete, and execute web apps."

    • ユーザー:作成者 または ユーザー の役割を担うことができる認証済みエンドユーザーのセットを一意に識別する属性を指定します。

      属性名は、使用している認証の種類によって異なります。

      たとえば、認証に LDAP を使用している場合は、次のように JSON スキーマを入力できます。

      "users":{ "email": ["bishop@example.com", "queen@example.com"] }
      
      上記のスキーマでは、エンドユーザーが認証されると、MATLAB Web App Server は認証されたユーザーに属性として email があるかどうかを確認し、属性値 (この場合は電子メール アドレス) がスキーマにリストされているかどうかを確認します。両方のチェックが成功すると、エンドユーザーにロールが割り当てられます。

    • グループ:作成者 または ユーザー の役割を担うことができる認証済みエンドユーザーのグループを一意に識別する属性名と対応する値を指定します。

      属性名は、使用している認証の種類によって異なります。グループを使用すると、エンドユーザーのセット全体に一度でロールを割り当てることができます。

      たとえば、認証に 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 App Server は認証されたユーザーに属性として memberOf があるかどうかを確認し、その属性の値がスキーマにリストされているかどうかを確認します。両方のチェックが成功すると、エンドユーザーにロールが割り当てられます。

      スキーマで指定される属性は、集合属性またはグループ属性である必要があります。

ヒント

  1. エンド ユーザーの一意のセットを取得する唯一の方法でない限り、各ロールのスキーマで usersgroups の両方を指定する必要はありません。

  2. ユーザー ロールの users フィールドの属性を使用してユーザーのセットを識別する場合は、作成者 ロールの users フィールドで同じ属性を使用してユーザーのセットを識別する必要があります。groups にも同じ条件が適用されます。

MATLAB Web App Server は、まず、認証されたユーザーが Author の役割を引き受けることができるかどうかを確認してから、User の役割を確認します。両方のロールに対するチェックが失敗した場合、エンドユーザーはサーバーへのアクセスを拒否されます。

LDAP 認証の webapps_app_roles.json ファイルの例

{
    "version": "1.0.0",
    "appRoles": [
        {
            "id": "User",
            "description": "A User can only 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": "An Author can upload, delete, and execute web apps.",
            "users": { "email": [
                    "bishop@example.com",
                    "queen@example.com"
                ]
            }
        }
    ]
}

Azure AD 認証用の webapps_app_roles.json ファイルの例

{
    "version": "1.0.0",
    "appRoles": [
        {
            "id": "User",
            "description": "A User can only execute web apps.",
            "groups": {
                "groups": [
                    "1a23456-ab2c-4444-a123-12345b3a81af",
                    "2b3456cd-e8ed-4fcf-ac55-6b79b0781eed "
                ]
            }
        },
        {
            "id": "Author",
            "description": "An Author can upload, delete, and execute web apps.",
            "users": { "email": [
                    "bishop@example.com",
                    "queen@example.com"
                ]
            }
        }
    ]
}

注意

webapps_app_roles.json の JSON スキーマ構文は厳格に適用されます。スキーマ構文にエラーがあると、サーバーが起動しなかったり、ログインしようとしたときにサーバーへのアクセスが拒否されたりする可能性があります。

関連するトピック