Main Content

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

認証

メモ

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

前提条件

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

webapps_authn.json ファイルの作成

認証を使用すると、ユーザーの資格情報を検証し、サーバー上に展開された Web アプリにアクセスできるユーザーを制御できます。

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

認証を有効にするには:

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

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

    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

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>"
    }
}

  • バージョン:JSON スキーマのバージョンを指定します。R2024a のデフォルト値は 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 接続を許可するように構成する必要があります。そうしないと、認証は失敗します。

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

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

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

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

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

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

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

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

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

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

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

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

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"
    }
}

ポリシーベースのアクセスを使用する場合の 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>
    }
}
  • バージョン:JSON スキーマのバージョンを指定します。R2024a のデフォルト値は 1.3.0 です。 (R2023a 以降)

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

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

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

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

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

  • リダイレクト URL:(オプション) IdP で OIDC 認証を構成するときに使用したリダイレクト 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

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

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

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

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

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

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

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

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

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

メモ

  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 サイト