コミュニティソリューション

ZimaOS上のiCloudPD:キーチェーンとMFA認証を修正する

A ZimaOS user initialized boredazfcuk/icloudpd and created a keyring but still hit an MFA-cookie authentication failure.

boredazfcuk/icloudpd がキ​​ーリングを作成しても認証に失敗する場合は、保存済みのパスワードだけでなく、MFA Cookie に注目し、コンテナに記載されている初期化フローを再実行してください。 この Docker イメージでは、写真の自動ダウンロードを継続するために、永続化された /config の状態と、有効な Apple 認証セッションの両方が必要です。

元のユーザーはすでにキ​​ーリングを作成していましたが、それでも「Cookie に多要素認証情報がありません」というメッセージが表示されていました。現在の上流コンテナドキュメントでは、その理由が明確に説明されています。初期化によってパスワードが保存され、MFA Cookie が生成されますが、その Cookie には後で定期的な再認証が必要です。

初期化後に二要素認証に失敗している icloudpd コンテナのターミナル
コンテナは MFA の段階まで進みましたが、初期化後に認証情報がないと報告しました。出典:IceWhale Community Forum。

永続化が必要なもの

ホスト側のフォルダーをコンテナの /config パスにマッピングします。このディレクトリには、コンテナの再起動後も必要となる設定、Python キーリングファイル、認証 Cookie、状態情報が保存されます。

選択した download_path に従って、ダウンロードした写真用に別のホスト側フォルダーをマッピングします。写真ライブラリを、削除される可能性のあるコンテナのファイルシステム内だけに保存しないでください。

公式の初期化コマンドを実行する

上流の docker-icloudpd 設定ガイドには、次の手順が記載されています。

docker exec -it icloudpd sync-icloud.sh --Initialise

ZimaOS のコンテナ名が異なる場合は、icloudpd をその名前に置き換えてください。

キ​​ーリングは認証の一部にすぎない

初期化中、スクリプトは Apple Account のパスワードを尋ね、許可するとキ​​ーリングに保存します。その後、二要素認証を処理し、/config 配下に Cookie を作成します。

パスワードが存在していても、Cookie に有効な MFA 状態が含まれていなければ、コンテナは元のスクリーンショットに示されているのとまったく同じように失敗することがあります。

信頼済みの Apple デバイスで MFA を完了する

プロンプトが表示されたら、信頼済みデバイスでサインインを承認し、対話型ターミナルに現在の確認コードを入力します。以前の試行で使用した期限切れのコードを再利用しないでください。

Apple から確認コードが届かない、またはコードが受け付けられない場合は、Docker を疑う前に、iCloud.com から Apple Account に通常どおりサインインできることを確認してください。

/config の所有者と権限を確認する

コンテナは、永続化された設定フォルダーにキ​​ーリングファイルと Cookie ファイルを書き込む必要があります。PUID/PGID を変更した場合や、所有権が適合しない ZimaOS フォルダーをマッピングした場合、認証状態が維持されないことがあります。

初期化後、新しいキ​​ーリングファイルと Cookie ファイルがマッピング先の設定ディレクトリに作成され、コンテナを再起動しても残っていることを確認してください。

Apple によってセッションが期限切れになったら再認証する

上流のドキュメントによると、現在の Apple 認証では、およそ 30 日ごとに再認証が必要になる場合があります。コンテナには次のコマンドが用意されています。

docker exec -it icloudpd reauth.sh

これをメンテナンスの前提にしてください。ZimaOS で何も変更していなくても、正常なコンテナが後からダウンロードを停止することがあります。

Apple Account のパスワードを変更した場合

上流のラッパーには、キ​​ーリングを削除するオプションがあります。古い保存済み認証情報を削除し、無効なキ​​ーリングエントリで何度も再試行するのではなく、もう一度初期化してください。

写真の保存先を /config から分離する

設定状態とダウンロードした写真では、必要なバックアップが異なります。実際の写真ライブラリは個別にバックアップし、コンテナをゼロから再構築せずに済むよう、/config も十分に保護してください。

写真のバックアップガイドは、ローカルまたはオフサイトに 2 つ目のコピーを作成する際に役立ちます。

Apple の認証に失敗し続ける場合

コンテナのデバッグログを有効にし、認証のどの段階で失敗しているかを詳しく確認して、上流の Issue やディスカッションのトラッカーで Apple 側の最新の変更を確認してください。iCloud の認証は安定したローカルプロトコルではないため、Apple は ZimaOS とは無関係にログイン動作を変更することがあります。

FAQ

パスワードがキ​​ーリングに保存されているのに、なぜ icloudpd は失敗するのですか?

ラッパーには、有効な二要素認証 Cookie も必要です。保存されたパスワードだけでは不十分です。

どのくらいの頻度で再認証が必要ですか?

現在のラッパーのドキュメントでは、定期的な MFA 再認証が必要と説明されており、一般的には約 30 日ごとです。

認証 Cookie はどこに保存すべきですか?

コンテナの /config フォルダーを ZimaOS のストレージ上で永続化し、キ​​ーリングと Cookie の状態がコンテナの再作成後も残るようにしてください。

icloudpd は Apple の公式バックアップ製品ですか?

いいえ。Apple の認証動作に依存するサードパーティ製ダウンローダーです。ダウンロードしたライブラリは、別の方法でもバックアップしてください。