用途

Linux の AIR アプリケーションでは、暗号化したローカルストレージ(ELS)キーストアにアクセスできない場合があります。そのため、起動時にハングアップしたり、起動時に空のウィンドウを表示したり、パスワードの保存機能が無効になるなどのアプリケーション表示ビヘイビアーが発生します。この文書では、ELS の使用時に頻繁に発生する問題のいくつかについて詳しく説明し、可能であれば、これらの問題を是正する手順をご案内します。

オーディエンス

この文書の対象読者は、Linux で AIR アプリケーションを実行しているユーザーです。しかし、すべての AIR アプリケーション開発者はこの文書をご覧の上、ELS の使用時に発生する可能性のある基本的な問題を理解してください。

メモ:以下のすべての例で TweetDeck を使用しますが、いずれの AIR アプリケーションにも当てはまります。

概要

ELS は Encrypted Local Store の略です。AIR では「プラットフォームベース」のセキュアなストレージが提供されます。このストレージは、ログイン認証情報、秘密キーなどのセキュリティの確保に必要な情報を格納するために使用できます。ActionScript マニュアルでは、AIR でサポートされる API について詳しく説明します。このマニュアルにはこちらでアクセスできます。

ELS は「プラットフォームベース」です。つまり、ELS はネイティブ型システムサービスを使用してデータを保護します。例えば、Mac AIR では KeyChain を使用します。Linux では、すべてのシステムで使用できる標準キーストアはありません。現在、AIR Linux では次の 2 つのキーストアをサポートします(主な基準はほとんどのディストリビューションで利用可能です)。

  • GnomeKeyring (Gnome デスクトップ環境)
  • Kwallet (KDE デスクトップ環境)

従って、AIR アプリケーションが Gnome システムで ELS KeyStore からデータを追加/取得しようとすると、AIR は gnome-keyring を使用してデータを保護します。一方、KDE デスクトップでは、AIR は KWallet を使用します。

トラブルシューティング

なんらかの対処をする前に、詳細な文書をご覧ください。また、トラブルシューティングの手順によってはデータが失われる可能性もあるため、ELS には失って困るような重要なデータは保管していないことを確認してください。

GnomeKeyring のトラブルシューティング

  1. GnomeKeyring デーモンが実行中であることを確認する

    $ ps -aef | grep -i 'gnome.*keyring'

    デーモンが実行されていない場合は、デーモンを起動します。

  2. gnome-keyring をリセットする



    キーリングデータベースが破損し、そのためアプリケーションがキーリングにアクセスできないことがあります。
    $ mv ~/.gnome2/keyrings/ ~/.gnome2/keyrings.bkp
    $ mkdir -p ~/.gnome2/keyrings/
    この場合はバックアップが作成されます。そのためキーリングデータベースは必要に応じて復元できます。

  3. AIR アプリケーションデータをリセットする



    ELS にアクセスできないと、ELS に以前に保存されたデータはすべて、もう取得できません。ELS をもう一度使用し始めるには、以下のディレクトリを削除して ELS をリセットする必要があります。
    $ rm -rf ~/.appdata/Adobe/AIR/ELS
  4. アプリケーションを再起動する



    GnomeKeyring マネージャーダイアログにキーリングデータベースを設定するマスターパスワードの入力を求めるメッセージが表示されるようにします。これで、すべてが正常に機能していることになります。ダイアログがまったく表示されない場合は、その他の問題があります。その他の問題については、文書の残りのセクションを参照してください。

KWallet のトラブルシューティング

  1. KWallet デーモンが実行中であることを確認する
    $ ps -aef | grep -i kwallet
    デーモンが実行されていない場合は、デーモンを起動します。デーモンを起動するには kwalletmanager を起動するのが最も簡単な方法です。この方法は、ほぼすべてのディストリビューションで利用できます。kwalletmanager を起動すると、KWallet デーモンが正常に起動します。

  2. Kwallet サブシステムが無効になっていないことを確認します。kwalletmanager を起動し、kwalletmanager のシステムトレイアイコンを右クリックし、「構成」をクリックします。「KDE ウォレットサブシステムを有効にする」オプションが選択されていることを確認します。

  3. システムトレイアイコンをダブルクリックして kwalletmanager を開き、ウォレットリストに「kdewallet」というウォレットがあることを確認します。存在しない場合は、初期設定のウォレットとして使用する「kdewallet」という名前の新しいウォレットを作成します。

  4. AIR アプリケーションデータをリセットする

    ELS にアクセスできないと、ELS に以前に保存されたすべてのデータは取得できなくなります。ELS をもう一度使用し始めるには、以下のディレクトリを削除して ELS をリセットする必要があります。

    $ rm -rf ~/.appdata/Adobe/AIR/ELS
  5. アプリケーションを再起動します。

デスクトップを切り替える際に ELS を使用する

現在、ELS は 1 つのマシン上で Gnome または KDE のいずれか 1 つのデスクトップ環境をサポートします。デスクトップセッションが Gnome で、あるアプリケーションを使ってデータを ELS に保存する場合に、デスクトップを KDE に変更すると、同じアプリケーションでは、デスクトップセッションが Gnome であったとき以前に保存したデータにアクセスすることはできません。

これは、AIR Linux は Gnome 環境では GnomeKeyring をサポートし、KDE 環境では Kwallet をサポートするため、これらの 2 つのパスワードマネージャー間でデータを転送する標準的な方法がないためです。

KDE から Gnome に移動しようとする場合、またはその逆の場合、新しいデスクトップで ELS を使用するために ELS をリセットできます。ELS をリセットすると以前のデータがすべて削除されるため、十分注意して使用してください。ELS をリセットするには、以下のディレクトリを削除します。

$ rm -rf ~/.appdata/Adobe/AIR/ELS

ELS データを別のマシンに移行する

アプリケーションによって ELS に保存されるすべてのデータは、そのマシン上のユーザーに限定されます。そのため、ELS データを別のマシンに移行すると、ユーザー情報が異なるために ELS データが無効になる可能性があります。

KWallet/GnomeKeyring における AIR キーの破損

Kwallet または GnomeKeyring に保存されている AIR キーが破損した場合、それらのキーを使用して保存されたすべてのデータは失われます。復元する方法はありません。

AIR キーを復元するには、以下のディレクトリを削除します。

$ rm -rf ~/.appdata/Adobe/AIR/ELS

この操作により ELS がリセットされ、新しいデータを ELS に保存できるようになります。

書き出したセッションで ELS にアクセスする

現在、ssh を使用してセッションを書き出すと、または別のユーザーに切り替える(sudo/su)と、ELS にアクセスできません。 

Gnome または KDE 以外のデスクトップ環境で ELS を使用する

現在、ELS は 2 つのデスクトップ環境(Gnome と KDE)のみをサポートします。現在ご使用のデスクトップ環境がサポートされるかどうかを確認するには、コンソール(端末)でアプリケーションを実行します。

$ /opt/TweetDeck/bin/TweetDeck
Unknown desktop manager, only Gnome and KDE are supported

「デスクトップマネージャが不明です。Gnome および KDE のみがサポート対象です」というメッセージが表示された場合、AIR がご使用のデスクトップ環境をサポートしないか、それを認識できなかったことを意味します。

しかし、ご使用のシステムで gnome-keyring デーモンまたは kwallet デーモンのいずれかがシステムで実行していれば、ELS を使用できます。GnomeKeyring デーモンが実行されている場合は、以下の変数を書き出す

$ export GNOME_DESKTOP_SESSION_ID=1

KWallet デーモンが実行されている場合は、以下の変数を書き出す

$ export KDE_FULL_SESSION=1

ご使用のデスクトップ環境が KDE4 以降の場合は、もうひとつの変数を書き出す必要があります

$ export KDE_SESSION_VERSION=4

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

リーガルノーティス   |   プライバシーポリシー