MATLAB Web App Server で Keycloak をどのように設定すればよいですか?

MATLAB Web App Server の認証に Keycloak を設定したいのですが、独自のアイデンティティプロバイダー(IdP)を持っていません。また、Windows 環境を使用しているため、クラウドリファレンスのアーキテクチャは使えません。
MATLAB Web App Server の認証用に Keycloak を手動で設定するには、どのようにすればよいでしょうか。

 Accepted Answer

MathWorks Support Team
MathWorks Support Team about 4 hours ago
Edited: MathWorks Support Team 8 minutes ago
以下の構成はあくまでも一例であることにご注意ください。本設定を参考にして自社のソリューションを構築することは可能ですが、本番環境でID管理ソリューションを実装する前に、必ず IT やセキュリティチームとすべての設定内容を確認してください。
この記事では、MATLAB Web App Server で使用するための Keycloak の設定例をご紹介します。この例は OpenJDK のインストールオプションを使用しており、Windows 上でMATLAB Web App Server R2025b および Keycloak 26.5.3 で検証されております。
前提条件
Keycloak を設定する前に、以下のことを確認してください:
  • MATLAB Web App Server がインストールされ、セットアップ済みであること。
  • MATLAB Web App Server は SSL有効 として設定されていること。
  • webapps  のホームページは、同じネットワーク内のマシンから HTTPS 経由でアクセス可能あること。
Keycloak の場合は、以下のことを必ず確認してください:
  • OpenJDK 21がインストールされていることこのインストール先を JAVA_HOME 環境変数に設定していること。
  • サポートされているデータベース がインストールされ、設定されていること。以下の設定例ではPostgreSQL 18 を使用しています。
  • Keycloak で使用するための信頼された  SSL  証明書および秘密鍵を用意していること。
    これらの要件を満たしていれば、MATLAB Web App Server で使用している証明書/秘密鍵を再利用することも可能です。
    Keycloakをインストールする
    1. Keycloak ウェブサイト から Keycloak サーバーの ZIP ファイルをダウンロードし、ローカルフォルダに解凍します。
    2. conf/keycloak.conf を編集してデータベース、証明書、ホスト名の情報を指定します。
      1. このワークフローでは、証明書と秘密鍵を conf/フォルダに配置する方法が最も簡易な構成となります。
      2. 環境に追加の設定が必要かどうかは、Configuring Keycloak for Production を参照してください。
      3. keycloak.conf の設定例: 
        # Basic settings for running in production. Change accordingly before deploying the server.
        # Database
        # The database vendor.
        db=postgres
        # The username of the database user.
        db-username=dbuser
        # The password of the database user.
        db-password=password
        # The full database JDBC URL. If not provided, a default URL is set based on the selected database vendor.
        db-url=jdbc:postgresql://localhost/keycloak
        # Observability
        # If the server should expose healthcheck endpoints.
        #health-enabled=true
        # If the server should expose metrics endpoints.
        #metrics-enabled=true
        # HTTP
        # The file path to a server certificate or certificate chain in PEM format.
        https-certificate-file=${kc.home.dir}/conf/cert.pem
        # The file path to a private key in PEM format.
        https-certificate-key-file=${kc.home.dir}/conf/key.pem
        # The proxy address forwarding mode if the server is behind a reverse proxy.
        #proxy=reencrypt
        # Do not attach route to cookies and rely on the session affinity capabilities from reverse proxy
        #spi-sticky-session-encoder-infinispan-should-attach-route=false
        # Hostname for the Keycloak server.
        hostname=myserver.mydomain.com
         
    3. インストール先のディレクトリにてコマンドラインを開き、以下のコマンドを実行して Keycloak を起動します:
      bin\kc.bat start
        
      1. Keycloak が正常に起動すると、以下のような行が表示されます:  
        2026-02-12 13:45:31,442 INFO [io.quarkus] (main) Keycloak 26.5.3 on JVM (powered by Quarkus 3.27.2) started in 10.187s. Listening on: https://0.0.0.0:8443
        2026-02-12 13:45:31,442 INFO [io.quarkus] (main) Profile prod activated.
        2026-02-12 13:45:31,443 INFO [io.quarkus] (main) Installed features: [agroal, cdi, hibernate-orm, jdbc-postgresql, keycloak, narayana-jta, opentelemetry, reactive-routes, rest, rest-jackson, smallrye-context-propagation, vertx]
      2. このコマンドの実行中にエラーが発生して終了した場合は、表示されたエラーメッセージを確認し、必要に応じて外部の参考資料を参照してトラブルシューティングを行ってください。
    4. Keycloakをホストしているマシンでブラウザを開き、https://localhost:8443 にアクセスします。
    Keycloakの設定
    1. セットアップページ(https://localhost:8443)にアクセスし、任意のユーザー名とパスワードを入力して管理者ユーザーを作成します。その後、作成した認証情報を使用して、Keycloak 管理コンソール(https://<hostname>:8443/admin)にサインインします。
    2. 管理コンソールで Manage realms > Create realm に移動し、任意のレルム名を入力して Create をクリックします。
      Create をクリックした後、管理コンソール画面の左上に、このレルムが現在のレルムとして表示されていることを確認してください。
    3. Users > Create new user から、新しいユーザーを作成し、ユーザー名、メールアドレス、名前を入力します。
      次のページ(User details)で、Credentials > Set password に移動し、このユーザー用の新しいパスワード(一時的ではないパスワード)を設定します。
    4. Clients > Create client に移動し、MATLAB Web App Server 用のクライアントを作成します。
      クライアントタイプとして OpenID Connect を選択し、一意のクライアント ID を入力した後、Next をクリックします。
      次のページで、Client authenticationオン にし、それ以外の設定はすべて既定値のままにします。その後、Next をクリックします。
      次のページで、documentation に記載されている MATLAB Web App Server 用のリダイレクト URI を追加します。それ以外の項目はすべて空欄のままにし、Save をクリックします。
      リダイレクト URI は大文字・小文字を区別することに注意してください。webapps-start の出力に記載されているホスト名およびポート番号と完全に一致するように設定します。
    次のセクションに進む前に、以下の情報を準備しておきます。
    1. 前の手順でクライアント登録時に設定したクライアントID
    2. 新しく作成されたクライアントの Credentials タブに表示されている Client secret
    3. Realm settings > General ページの下部に記載されている OpenID Endpoint Configuration URL
    MATLAB Web App Server の設定
    1.webapps_private ディレクトリに webapps_authn.json という名前のファイルを作成し、前の手順で取得した情報を使用して内容を記述します。 
    {
    "version": "1.3.0",
    "type": "oidc",
    "authnConfig": {
    "issuer": "<Enter the OpenID Endpoint Configuration URL from the previous section here>",
    "clientId": "<Enter the Client ID from the previous section here>",
    "clientSecret": "<Enter the Client secret from the previous section here>",
    "scope": ["openid profile email"]
    },
    "appConfig": {
    "displayName": "email",
    "tokenExpirationMin": "60",
    "userAttributeName": "email",
    "groupAttributeName": "groups",
    "prompt": "false"
    }
    }
    2. MATLAB Web App Server を再起動します。
    3. WebApps のホームページにアクセスし、Keycloak で作成したユーザーのユーザー名とパスワードでログインできるか確認します。
    ここまでの手順で、Keycloak 使用した MATLAB Web App Server の認証設定は完了です。次のステップとして、ユーザーの追加、グループの作成、または、ログインページの外観をカスタマイズ(instructions)などを行うことができます。これらの設定はすべて Keycloak 上で実施可能です。
    オプション:グループを使ったロールベースアクセス
    MATLAB Web App Server でロールベースアクセス(またはポリシーベースアクセス)を有効にしたい場合は、 以下の例をご参照ください。この例では、Keycloak のグループ機能を使用した設定方法を示しています。
    1. Keycloakで「webapps-authors」と「webapps-users」の2つのグループを作成します。
      これらのグループに1人以上のユーザーを追加します (Users > 対象ユーザーを選択 > Groups > Join Group)。
    2. Client scopes > Create client scope に移動し、一意の名前を入力してから Save をクリックします。
      次の画面でMappers タブに行き、Configure a new mapper を選択します。このマッパーに一意の名前を入力しします。Mapper typeに Group Membership 、Token Claim Name に groups を選択し、Save をクリックします。
    3. Clients > MATLAB Web App Server 用に作成したクライアントを選択 > Client scopes > Add client scope を選択し、このスコープを デフォルトスコープとして追加します。 
    4. MATLAB Web App Server をインストールしたマシン上で、MATLAB Web App Server をインストールしたマシン上で、webapps_private ディレクトリに webapps_app_roles.json という名前のファイルを作成します。 
      {
      "version": "1.0.0",
      "appRoles": [
      {
      "id": "Author",
      "description": "All admins and certain team members can upload and delete apps.",
      "groups": { "groups": [ "webapps-authors" ] }
      },
      {
      "id": "User",
      "description": "All members of sales and development can run apps.",
      "groups": { "groups": [ "webapps-users" ] }
      }
      ]
      }
      このファイルを保存し、MATLAB Web App Server を再起動します。
    この設定を行うことで、以下のようになります。
    • webapps-users グループに属するすべてのユーザーは、MATLAB Web App Server に対して User レベルのアクセス権を持ちます。
    • webapps-authors グループに属するすべてのユーザーは、MATLAB Web App Server に対して Author レベルのアクセス権を持ちます。
    • 上記いずれのグループにも属さないユーザーは、MATLAB Web App Server への アクセス権を持ちません

More Answers (0)

Products

Release

R2025b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!