メインコンテンツ

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

認証

メモ

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

認証を使用すると、ユーザーの資格情報を検証し、MATLAB Web App Server にデプロイされた Web アプリにアクセスできるユーザーを制御できます。

前提条件

AWS リファレンスアーキテクチャーで Keycloak を使用する (Linux のみ)

R2025a 以降

Linux® 上の AWS® で R2025a MATLAB Web App Server リファレンス アーキテクチャを使用している場合、ユーザー認証は Keycloak を通じて管理されます。Keycloak は、アプリケーションとサービスに認証、承認、およびユーザー管理を提供するクラウド ネイティブ ソリューションです。Keycloak を使用して ID プロバイダーを使用して認証を構成することも、LDAP または OIDC を直接使用して認証を構成することもできます。詳細については、AWS で MATLAB Web App Server の認証を構成するを参照してください。

webapps_authn.json ファイルの作成

MATLAB Web App Server は、Lightweight Directory Access Protocol (LDAP) と OpenID Connect (OIDC) を使用した認証をサポートしています。

認証を有効にするには:

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

  2. webapps_authn.json という名前のファイルを作成し、config フォルダー内にある webapps_private フォルダーに配置します。webapps_authn.json の形式は、認証に LDAP を使用しているか、OIDC を使用しているかによって異なります。

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

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

    Windows®

    %ProgramData%\MathWorks\webapps\R2025a\config\webapps_private

    Linux

    /local/MathWorks/webapps/R2025a/config/webapps_private

    macOS

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

LDAP認証

LDAP ディレクトリ サーバーは、ユーザー、グループ、およびアプリケーションに関する情報を保存します。ディレクトリ内の各エントリは、識別名 (DN)、属性のコレクション、およびオブジェクト クラスのコレクションの 3 つのコンポーネントで構成されます。

LDAP 認証を使用するには、次の JSON スキーマを使用して webapps_authn.json という名前のファイルを作成し、webapps_private フォルダーに配置します。

{
    "version": "1.2.0",
    "type": "ldap",
    "authnConfig": {
        "host": "<LDAP server host name>",
        "port": "<LDAP server port number>",
        "searcherDN": "",
        "searcherPassword": "",
        "baseDN": "<Point in LDAP from where to start search for a user>",
        "userFilter": "<Filter syntax>"
    },
    "appConfig": {
        "checkSSLCA": "<Boolean indicating whether to check for trusted SSL certificate>",
        "trustedSSLCA": "<Path to trusted SSL certificate>",
        "displayName": "<Identifier to display on MATLAB Web App Server home page>",
        "tokenExpirationMin": "<Token expiration duration in minutes>",
        "userAttributeName": "<Attribute name to identify user objects>",
        "groupAttributeName": "<Attribute name to identify group objects>"
        "useSSL": "<Optional: Use SSL for connection. Default: true on Windows, false on Linux/macOS>",
        "useStartTLS": "<Optional: Use STARTTLS for connection. Default: true on Linux/macOS, false on Windows>"
    }
}

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

  • タイプ:使用する認証の種類を指定します。この値を ldap に設定します。

  • ホスト:LDAP ディレクトリ サーバーのホスト名を指定します。たとえば、myldap.example.com です。

  • ポート:(オプション) LDAP ディレクトリ サーバーのポート番号を指定します。たとえば、389 です。ポート番号が指定されていない場合は、デフォルトのポートが使用されます。MATLAB Web App Server は SSL/STARTTLS を使用して LDAP サーバーとの通信を保護します。これにより、ユーザー名とパスワードが MATLAB Web App Server と LDAP サーバー間の暗号化されたチャネルを介して送信されるようになります。デフォルトでは、サーバーは Windows 上の SSL に標準ポート 636 を使用し、Linux および macOS 上の STARTTLS にポート 389 を使用します。LDAP サーバーは、指定された (またはデフォルトの) LDAP ポート経由で SSL/STARTTLS 接続を許可するように構成する必要があります。そうしないと、認証は失敗します。

  • searcherDN:ディレクトリ内の検索者アカウントの DN を指定します。既定値は "" です。検索者 DN は、LDAP ディレクトリ サーバーを検索できるアカウントを指します。たとえば、"cn=admin,dc=example,dc=com" です。

  • 検索者パスワード:検索者アカウントのパスワード。既定値は "" です。

    MATLAB Web App Server は、searcherDNsearcherPassword の値を使用して、userFilter を使用するユーザーの DN を検索します。検出された DN はその後、LDAP を通じて入力されたパスワードと照合されます。LDAP サーバーが匿名認証のアクセスを提供する場合、searcherDNsearcherPassword の値は必要ありません。

    webapps_authn.json ファイルは、サーバー アカウントのみが読み取り可能な webapps_private フォルダー内にあるため、検索者の資格情報は、サーバーにログインするアプリや他のユーザーから保護されます。

  • baseDN:ディレクトリ内のベース DN を指定します。ベース DN は、アプリケーションがユーザーの検索を開始するディレクトリ内の場所です。たとえば、dc=myldap,dc=example,dc=com です。

  • userFilter:ユーザーの DN を見つけるためのフィルターを指定します。MATLAB Web App ServeruserFilter を使用して、フィルターで {username} として表される入力されたユーザー名に一致するユーザーの DN を検索します。一致するものが見つからない場合、または複数の一致が見つかった場合、認証は失敗します。フィルターは標準の LDAP フィルター構文を使用して指定できます。たとえば、(&(objectClass=User)(sAMAccountName={username})) です。

  • checkSSLCA:LDAP サーバーの SSL 証明書が、公認の証明機関 (CA) によって署名されているかどうかを確認します。このプロパティを "true" に設定すると、有効な SSL 証明書がチェックされ、"false" に設定するとチェックは行われません。"true" に設定する場合は、trustedSSLCA の値を指定する必要があります。"false" に設定すると、ユーザー名とパスワードは暗号化されたチャネルを介して MATLAB Web App Server と LDAP サーバー間で送信されます。ただし、追加のセキュリティのためにこのチェックをお勧めします。

  • trustedSSLCA:Linux および macOS システムでは、サイト証明書に署名した証明機関 (CA) によって発行されたルート証明書へのパスを指定します。Windows システムでは、パスを指定する必要はありません。ルート証明書が 信頼されたルート証明機関の証明書ストア にある限り、MATLAB Web App Server はそれを自動的に見つけます。

  • displayName:ユーザーの LDAP エントリの属性を指定して、MATLAB Web App Server ホームページにユーザーの ID を表示する方法を設定します。たとえば、このプロパティを uid に設定すると、ユーザー ID が表示されます。デフォルトは、認証プロセス中に入力されたユーザー名です。

  • tokenExpirationMin:トークンの有効期限を分単位で指定します。たとえば、60 です。デフォルト値は "" で、トークンに有効期限がないことを意味します。

  • ユーザー属性名:ユーザー オブジェクトを識別するための属性名を指定します。たとえば、uid です。ポリシーベースのアクセスを使用する場合は、このプロパティの値を設定する必要があります。それ以外の場合は、このプロパティを JSON ファイルに含めないでください。詳細については、ポリシーベースのアクセスを参照してください。

  • グループ属性名:グループ オブジェクトを識別するための属性名を指定します。たとえば、member です。ポリシーベースのアクセスを使用する場合は、このプロパティの値を設定する必要があります。それ以外の場合は、このプロパティを JSON ファイルに含めないでください。詳細については、ポリシーベースのアクセスを参照してください。

  • SSL を使用する:(オプション) 値を "true" または "false" に設定して、LDAP サーバーが接続に SSL を必要とするかどうかを指定します。デフォルト値は、Windows では "true"、Linux および macOS システムでは "false" です。 (R2025a 以降)

  • useStartTLS:(オプション) 値を "true" または "false" に設定して、LDAP サーバーが接続に STARTTLS を使用する必要があるかどうかを指定します。デフォルト値は、Linux および macOS では "true"、Windows システムでは "false" です。 (R2025a 以降)

LDAP の webapps_authn.json ファイルの例

{
    "version": "1.2.0",
    "type": "ldap",
    "authnConfig": {
        "host": "myldap.example.com",
        "port": "",
        "searcherDN": "",
        "searcherPassword": "",
        "baseDN": "DC=myldap,DC=example,DC=com",
        "userFilter": "(&(objectClass=User)(sAMAccountName={username}))"
    },
    "appConfig": {
        "checkSSLCA": "false",
        "trustedSSLCA": "",
        "displayName": "uid",
        "tokenExpirationMin": "60",
        "useSSL": false,
        "useStartTLS": true
    }
}

ポリシーベースのアクセスを使用する場合の LDAP の webapps_authn.json ファイルの例

{
    "version": "1.2.0",
    "type": "ldap",
    "authnConfig": {
        "host": "myldap.example.com",
        "port": "",
        "searcherDN": "",
        "searcherPassword": "",
        "baseDN": "DC=myldap,DC=example,DC=com",
        "userFilter": "(&(objectClass=User)(sAMAccountName={username}))"
    },
    "appConfig": {
        "checkSSLCA": "false",
        "trustedSSLCA": "",
        "displayName": "uid",
        "tokenExpirationMin": "60",
        "userAttributeName": "uid",
        "groupAttributeName": "memberOf"
    }
}

OIDC認証

OpenID Connect (OIDC) を使用すると、MATLAB Web App Server はサードパーティの ID プロバイダー (IdP) によって実行される認証に基づいてエンドユーザーの ID を検証できます。サーバー上で OIDC 認証を使用するには、Microsoft® Azure® AD や Google® Identity Platform などの IdP に登録する必要があります。

OIDC 認証を使用するには、次の JSON スキーマを使用して webapps_authn.json という名前のファイルを作成し、webapps_private フォルダーに配置します。

{
    "version": "1.3.0",
    "type": "oidc",
    "authnConfig": {
        "issuer": "<OIDC IdP issuer URI>",
        "clientId": "<Client ID from IdP>",
        "clientSecret": "<Client secret from IdP>",
        "redirectUrl": "<Redirection URL>",
        "scope": ["<scope1> <scope2>"]
    },
    "appConfig": {
        "port": "<OIDC authentication port number used by MATLAB Web App Server>",
        "displayName": "<Identity to display on MATLAB Web App Server home page>",
        "tokenExpirationMin": "<Token expiration duration in minutes>",
        "userAttributeName": "<Attribute name to identify user objects>",
        "groupAttributeName": "<Attribute name to identify group objects>",
        "prompt": <Boolean indicating whether to re-authenticate user>,
        "timeoutInSeconds": "<Default HTTP request timeout in seconds for OIDC authentication>", 
        "checkSSLCA": "<Boolean indicating whether to validate SSL certificate against a recognized CA>",
        "trustedSSLCA": "<Path to the root certificate on Linux/macOS>" 
    }
}
  • バージョン:JSON スキーマのバージョンを指定します。R2025a のデフォルト値は 1.3.0 です。 (R2023a 以降)

  • タイプ:使用する認証の種類を指定します。この値を oidc に設定します。

  • issuer:OIDC IdP 発行者 URI を指定します。たとえば、Google アイデンティティ プラットフォームを使用している場合: https://accounts.google.com/.well-known/openid-configuration

  • クライアントID:IdP に資格情報を登録する際に取得した クライアント ID を指定します。たとえば、Google アイデンティティ プラットフォームを使用している場合: 1234567890-xxxxxxxxxxxx.apps.googleusercontent.com

  • clientSecret:IdP に資格情報を登録する際に取得した クライアント シークレット を指定します。たとえば、Google アイデンティティ プラットフォームを使用している場合: _xxxxxxxxxxxxx_Xxxxxx_xX

    webapps_authn.json ファイルは、サーバー アカウントによってのみ読み取り可能な webapps_private フォルダー内にあるため、clientIdclientSecret は、サーバーにログインするアプリや他のユーザーから保護されます。

  • redirectUrl:IdP で OIDC 認証を構成するときに使用したリダイレクト URL を指定します。リファレンス アーキテクチャを使用して AWS にデプロイされたサーバーの場合は、スタックの一部として作成された 出力 内の URL を使用します。空のままにすると、MATLAB Web App Server を実行しているコンピューターのホスト名とポート番号がコールバックとして使用されます。URL の形式は https://<MATLABWebAppServer_hostname>:<port_server_is_running_on>/webapps/extauth/callback です。たとえば、MATLAB Web App Server がポート 9988 で実行されている場合、リダイレクト URL は https://example.com:9988/webapps/extauth/callback になります。

    R2021a より前のバージョンでは、リダイレクト URL の形式は https://<MATLABWebAppServer_hostname>:<port>/oidc/callback でした。たとえば、https://example.com:3000/oidc/callback です。

  • スコープ:管理者が MATLAB Web App Server にアクセスを許可するリソースの識別子を指定します。たとえば、Google アイデンティティ プラットフォームを使用している場合: openid profile email

  • ポート:(オプション) OIDC 認証のために MATLAB Web App Server プロセスが内部で使用するポート番号を指定します。たとえば、4000 です。このポート番号は、redirectUrl ポート番号とは異なる必要があります。ポート番号が指定されていない場合、MATLAB Web App Server プロセスは OIDC 認証用のポートを自動的に選択します。

  • displayName:認証されたユーザー オブジェクトの属性名を指定して、MATLAB Web App Server ホームページにユーザーの ID を表示する方法を構成します。たとえば、Google Identity Platform を使用している場合、given_name はユーザーの名前を表示します。デフォルトは sub 属性です。

  • tokenExpirationMin:トークンの有効期限を分単位で指定します。たとえば、60 です。デフォルト値は "" で、トークンに有効期限がないことを意味します。

  • ユーザー属性名:ユーザー オブジェクトを識別するための属性名を指定します。たとえば、uid です。ポリシーベースのアクセスを使用する場合は、このプロパティの値を設定する必要があります。それ以外の場合は、このプロパティを JSON ファイルに含めないでください。ポリシーベースのアクセスを使用していないが、このプロパティを JSON ファイルに含めることにした場合は、値を "" に設定します。詳細については、ポリシーベースのアクセスを参照してください。

  • グループ属性名:グループ オブジェクトを識別するための属性名を指定します。たとえば、member です。ポリシーベースのアクセスを使用する場合は、このプロパティの値を設定する必要があります。それ以外の場合は、このプロパティを JSON ファイルに含めないでください。ポリシーベースのアクセスを使用していないが、このプロパティを JSON ファイルに含めることにした場合は、値を "" に設定します。詳細については、ポリシーベースのアクセスを参照してください。

  • プロンプト:アイデンティティ プロバイダー (IdP) にすでにログインしているユーザーを再認証するかどうかを指定します。 (R2023a 以降)

    R2024b 以前:

    • "prompt""true" に設定されている場合、ユーザーは IdP にログインしている場合でも再認証する必要があります。

    • "prompt""false" に設定され、ユーザーが IdP にログインしている場合、IdP ログイン画面は表示されません。ユーザーがログインしていない場合、ユーザーはログインして再認証する必要があります。

    • "prompt" フィールドと値が指定されていない場合は、"prompt" フィールドは "true" として扱われます。これは既定の設定です。

    警告

    サーバーは、このパラメータの存在や値に関係なく、promptfalse に設定されているかのように動作します。したがって、すでに IdP にログインしているユーザーには再認証は求められません。 (R2024b 以降)

  • タイムアウト(秒):(オプション) MATLAB Web App Server がすべての OIDC 認証要求に対して設定するデフォルトの HTTP要求タイムアウトを秒単位で指定します。既定値は 5 秒です。 (R2025a 以降)

  • checkSSLCA:OIDC サーバーの SSL 証明書が、認定された証明機関 (CA) によって署名されているかどうかを確認します。このプロパティを "true" に設定すると、有効な SSL 証明書がチェックされ、"false" に設定するとチェックは行われません。"true" に設定する場合は、trustedSSLCA の値を指定する必要があります。"false" に設定すると、ユーザー名とパスワードは暗号化されたチャネルを介して MATLAB Web App Server と OIDC サーバー間で送信されます。ただし、追加のセキュリティのためにこのチェックをお勧めします。 (R2025a 以降)

  • trustedSSLCA:Linux および macOS システムでは、サイト証明書に署名した証明機関 (CA) によって発行されたルート証明書へのパスを指定します。Windows システムでは、パスを指定する必要はありません。ルート証明書が 信頼されたルート証明機関の証明書ストア にある限り、MATLAB Web App Server はそれを自動的に見つけます。 (R2025a 以降)

メモ

  1. OIDC 認証を使用する場合は、MATLAB Web App Serverアプリケーション として IdP に登録する必要があります。

  2. 登録プロセス中に、MATLAB Web App Server のリダイレクト URL が必要になります。URL の形式は https://<MATLABWebAppServer_hostname>:<port_server_is_running_on>/webapps/extauth/callback です。たとえば、https://example.com:9988/webapps/extauth/callback です。

Google アイデンティティ プラットフォームを使用した OIDC の webapps_authn.json ファイルの例

{
    "version": "1.2.0",
    "type": "oidc",
    "authnConfig": {
        "issuer": "https://accounts.google.com/.well-known/openid-configuration",
        "clientId": "1234567890-xxxxxxxxxxxx.apps.googleusercontent.com",
        "clientSecret": "_xxxxxxxxxxxxx_Xxxxxx_xX",
        "redirectUrl": "https://example.com:9988/webapps/extauth/callback",
        "scope": ["openid profile email"]
    },
    "appConfig": {
        "port": "4000",
        "displayName": "given_name",
        "tokenExpirationMin": "60"
    }
}

ヒント

認証を設定した後、ブラウザからログインできない場合は、ブラウザのキャッシュと Cookie をクリアするか、別のブラウザを試してください。

注意

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

参考

トピック

外部の Web サイト