セキュアストレージの概要

Anypoint Studio 7.10 以前のバージョンでは、認証済みユーザーの情報がワークスペースに保存されました。つまり、ワークスペースごとに認証済みユーザーが異なることができました。

Studio 7.11 以降では、Eclipse が提供する、ログイン情報を暗号化および保存するためのセキュアストレージが導入されます。

Studio では、すべてのユーザーログイン情報のメインパスワードを自動的に生成するメインパスワードプロバイダーが提供されます。新しいログイン情報を追加すると、Studio はメインパスワードを使用してそのログイン情報を暗号化し、ユーザーのファイルシステムのセキュアストレージファイルに保存します。

セキュアストレージのアーキテクチャにより、ユーザー認証をすべての Eclipse ベースのワークスペースと Anypoint Studio インスタンスで共有できます。

メインパスワードプロバイダー

使用可能なメインパスワードプロバイダーは、動作しているシステムによって異なります。Studio では、使用可能なメインパスワードプロバイダーに優先度が割り当てられ、使用するメインパスワードプロバイダーをユーザーが選択できます。デフォルトでは、OS の基盤機能を使用してメインパスワードを生成および暗号化するパスワードプロバイダーに高レベルの優先度が割り当てられます。

新しいログイン情報を Studio に追加すると、最も高い優先度を持つパスワードプロバイダーが生成したメインパスワードを使用してログイン情報が自動的に暗号化され、ユーザーのファイルシステムに配置されているセキュアストレージファイルに保存されます。

Windows インテグレーション (64 ビット)

Windows で使用可能。このプロバイダーではメインパスワードを Windows ログイン情報に基づいて作成および暗号化し、セキュアストレージに保存します。次に、Windows インテグレーションで自動的にこのメインパスワードを使用してログイン情報を復号化します。

OS X キーストアインテグレーション

MacOS で使用可能。OS X キーストアインテグレーションでは、キーチェーンアクセスアプリケーションに保存されているランダム値を使用します。このプロバイダーでは、自動的にメインパスワードを使用してログイン情報を復号化します。

Linux インテグレーション (64 ビット)

Linuxで使用可能。このプロバイダーではランダム値を使用します。また、Linux ディストリビューションに存在し、Linux ディストリビューションで動作する必要がある ​libsecret​ ライブラリを使用します。このプロバイダーでは、自動的にメインパスワードを使用してログイン情報を復号化します。

UI プロンプト

Windows、macOS、および Linux で使用できます。このプロバイダーでは、ユーザーは、メインパスワードを作成してそのマスターパスワードを使用してログイン情報を暗号化するように要求されます。このプロバイダーでは、ユーザーは Studio を開くたびにメインパスワードを入力する必要があります。

新しいログイン情報を初めて追加すると、新しいメインパスワードが作成されたことが Studio により通知されます。また、ユーザーは、メインパスワードを忘れた場合に使用する 2 つのパスワードヒントを作成するように要求されます。このパスワードヒントは、2 番目のパスワードとして扱う必要があるセキュリティ質問です。メインパスワードを失った場合、パスワードヒントがログイン情報を回復するための唯一の方法になります。

各プロバイダーが独自のメインパスワードを提供します。プロバイダーを使用して新しいログイン情報を暗号化した場合、暗号化されたログイン情報の回復にはそのプロバイダーのみを使用できます。

メインパスワードが作成されると、Studio が閉じられるまで、またはユーザーが Studio のキャッシュからメインパスワードを手動でクリアするまで、メインパスワードはキャッシュされます。

セキュアストレージファイル

このファイルには、すべてのユーザーログイン情報が暗号化された形式で保持されます。デフォルトでは、セキュアストレージファイルは ​$HOME/.eclipse/org.eclipse.equinox.security/secure_storage​ に配置され、すべての Eclipse ベースのワークスペースと Anypoint Studio インスタンスで共有されます。

メインパスワードを更新する

特定のプロバイダーのメインパスワードを変更できます。メインパスワードを変更すると、このプロバイダーにより暗号化されたすべてのデータが新しいメインパスワードで再暗号化されます。

始める前に

復号化の問題を回避するために、他のすべての Anypoint Studio インスタンスと他のすべての Eclipse ベースのアプリケーションが実行中でないことを確認します。

メインパスワードを再生成する手順は、次のとおりです。

  1. [Preferences (プリファレンス)]​ > ​[General (一般)]​ > ​[Security (セキュリティ)]​ > ​[Secure Storage (セキュアストレージ)]​ に移動します。

  2. [Change Password…​ (パスワードを変更…​)]​ を選択します。

    secure storage change password
  3. パスワードヒントの作成を要求するメッセージが表示されたら、​[Yes (はい)]​ を選択します。

    new password created

    新しいパスワードヒントを指定しない場合、既存のヒントが持続しますが、これは既存のメインパスワードを参照するため、新しいメインパスワードを回復することはできません。

  4. パスワードが正常に更新されたことが Studio で確認されたら、​[Apply and Close (適用して閉じる)]​ を選択します。

セキュアストレージファイルとパスワードファイルの場所のカスタマイズ

パスワードファイルとセキュアストレージファイルの場所を変更する手順は、次のとおりです。

  1. AnypointStudio.ini​ ファイルを探します。

    • Windows:

      1. Anypoint Studio インストールディレクトリに移動します。

    • macOS:

      1. /Applications​ フォルダーに移動して、​AnypointStudio​ パッケージを右クリックして、​[Show Package Contents (パッケージコンテンツを表示)]​ を選択します。

      2. Contents​ > ​Eclipse​ に移動し、​AnypointStudio.ini​ ファイルを開きます。

    • Linux:

      1. /usr/lib/anypointstudio/anypointstudio.ini​ に移動します。

  2. 次のオプションを追加して、パスワードプロバイダーメカニズムをバイパスします。

    -eclipse.keyring <file_path> (1)
    -eclipse.password <file_path> (2)
    1 セキュアストレージファイルの場所を設定します。
    2 Studio でメインパスワードとして使用されるパスワードファイルの場所を設定します。
ログイン情報の復号化には、暗号化で使用したものと同じパスワードファイルのみを使用できます。

復号化エラー

No Password Provided (パスワードが指定されていない)

例外: org.eclipse.equinox.security.storage.StorageException: No password provided

プロバイダーのメインパスワードを読み込んでキャッシュした Studio が、別のメインパスワードで暗号化された値を復号化しようとすると、このエラーが発生します。

これが発生するのは、Studio の 1 つのインスタンスまたは別の Eclipse ベースのアプリケーションのユーザーがメインパスワードを変更し、それと同時に Studio の別のインスタンスのユーザーが以前にキャッシュされたメインパスワードを使用して新しいログイン情報を保存した場合です。

Given Final Block Not Properly Padded (特定の最終ブロックが適切にパディングされない)

org.eclipse.equinox.security.storage.StorageException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.​.

以前にキャッシュされたメインパスワードを使用して値が暗号化されているために、現在キャッシュされているメインパスワードではその値を復号化できない場合、このエラーが発生します。

これが発生するのは、Studio の 1 つのインスタンスまたは別の Eclipse ベースのアプリケーションを使用しているユーザーがメインパスワードを変更し、Studio の別のインスタンスまたはアプリケーションで、以前にキャッシュされたメインパスワードを使用して、暗号化された値を読み取ろうとしている場合です。