メインコンテンツ

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

認証

R2025a

メモ

認証はスタンドアロンの 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 は、searcherDN と searcherPassword の値を使用して、userFilter を使用するユーザーの DN を検索します。検出された DN はその後、LDAP を通じて入力されたパスワードと照合されます。LDAP サーバーが匿名認証のアクセスを提供する場合、searcherDN と searcherPassword の値は必要ありません。

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

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

  • userFilter:ユーザーの DN を見つけるためのフィルターを指定します。MATLAB Web App Server は userFilter を使用して、フィルターで {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 フォルダー内にあるため、clientId と clientSecret は、サーバーにログインするアプリや他のユーザーから保護されます。

  • 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" として扱われます。これは既定の設定です。

    警告

    サーバーは、このパラメータの存在や値に関係なく、prompt が false に設定されているかのように動作します。したがって、すでに 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 サイト