dosya CLIを安全に認証する
対話形式、標準入力、DOSYA_API_KEYでサインインし、アカウントと認証情報の優先順位を確認して、保存済みのアクセスを安全に無効化します。
最終確認日
スクリーンショットは英語版の画面です。
dosya CLIはdos_ APIキーで認証します。個人のターミナルでは入力内容が表示されない対話式プロンプトを使い、セットアップスクリプトでは標準入力にキーをパイプするか、自動化環境にDOSYA_API_KEYを渡してください。再利用可能なシークレットを--keyの直後に指定しないでください。シェルの履歴やプロセス一覧に露出する可能性があります。
このCLI用のキーを作成する
プロフィール → API(APIキー)を開き、API:APIキーを作成を選択して、このマシンまたは自動化ジョブ用の名前を付けてください。実行するコマンドに必要な最小限の権限を選んでください。
- 読み取り専用は一覧表示とダウンロードができますが、アップロード、移動、削除はできません。
- アップロードのみはファイルを追加できますが、保存済みファイルの一覧表示やダウンロードはできません。
- フルアクセスはワークスペースのロール権限の範囲内で、コンテンツを読み取り変更するコマンドに対応します。
CLIはRESTエンドポイントを呼び出すため、プロトコルでREST APIを含めてください。ジョブに適している場合は、ワークスペースの固定、IP範囲、利用可能時間、利用制限、有効期限を追加してください。一度だけ表示される完全なトークンを保存してください。その後、キーの一覧にはプレフィックスだけが表示されます。

手順
対話式コマンドを実行し、入力内容が表示されないプロンプトが現れたらキーを貼り付けてください。
dosya auth login
dosya whoami
サインインに成功するとAuthenticated as NAME (EMAIL)が表示されます。続いてdosya whoamiはアカウント名、メールアドレス、ユーザーID、ワークスペース数を表示し、dosya whoami --jsonはスクリプト用のアカウントオブジェクトを出力します。
CLIはトークンとAPIベースを~/.dosya/config.jsonに保存します。XDG_CONFIG_HOMEが設定されている場合は$XDG_CONFIG_HOME/dosya/config.jsonに保存します。Unix系システムではフォルダーはモード0700、ファイルは0600で作成されます。キーは保護されたファイル内に平文で保存されます。復元後の権限によりグループや他のユーザーが読み取れる場合、CLIは修正用のchmod 600コマンドと共に警告します。
argvに露出させずにセットアップスクリプトを認証する
キーを標準入力にパイプしてください。
printf '%s\n' "$MY_KEY" | dosya auth login --key -
dosya whoami --json
空のパイプはNo API key on stdin.で失敗します。--key -もDOSYA_API_KEYも指定しない非対話実行はCannot prompt for API key in non-interactive mode.で失敗します。dos_で始まらない値はネットワークリクエストの前に拒否されます。
CIや短命のコンテナーでは、キーを環境シークレットとして渡し、ディスクへの書き込みを省いてください。
export DOSYA_API_KEY="$MY_KEY"
dosya whoami --json
認証情報の優先順位は--key、DOSYA_API_KEY、保存済み設定の順です。APIエンドポイントの優先順位はDOSYA_API_BASE、設定ファイル、https://api.dosya.devの順です。想定外のアカウントや環境を調査する前に、どの取得元が優先されるか確認してください。

よくある認証の失敗を解決する
| CLI出力 | 対処方法 |
|---|---|
Authentication failed: invalid API key. | 一度だけ表示される完全なトークンをコピーしてください。元の値を取得できない場合は新しいキーを作成してください。 |
Not authenticated. Run: dosya auth login | DOSYA_API_KEYを指定するか、サインインして認証情報を保存してください。 |
Authentication failed. Run 'dosya auth login' to re-authenticate. | サーバーが401を返しました。有効期限や無効化を確認し、認証情報を更新してください。 |
Permission denied. You don't have access to this resource (403). | キーは有効ですが、スコープ、プロトコル、接続元の条件、ワークスペースの固定、または現在のロールによって操作が拒否されました。 |
| ローカルでは使えるキーがCIでは使えない | 注入されたキー、DOSYA_API_BASE、接続元のIP許可リスト、利用可能時間のタイムゾーン、選択したワークスペースのメンバーシップを比較してください。 |
終了コード3は認証の失敗、5は有効な認証情報への権限拒否、4はネットワークの失敗、2はCLIの使い方が無効であることを示します。自動処理では終了コード5に対して繰り返しサインインし直さないでください。
サインアウトまたはキーを無効化する
dosya auth logoutはローカルの設定ファイルのみを削除します。APIキーは有効期限が切れるか無効化されるまで、他の場所では引き続き使えます。
dosya auth logout
サーバーに保存されたキーを破棄してからローカルファイルを消去するには、次を実行してください。
dosya auth logout --revoke
サーバー側の無効化は元に戻せません。キーを削除し、キャッシュの無効化を要求します。キャッシュが消去されるか期限切れになるまで、キャッシュ済みの認証が受け入れられる場合があります。アクセスが遮断されたと判断する前に、古いクライアントを停止し、拒否されることを確認してください。無効化に失敗した場合、コマンドを再試行できるようCLIはローカルの認証情報を保持します。401は保存済みキーがすでに無効であることを示すため、CLIは安全に消去します。環境変数のみのDOSYA_API_KEYはサインアウトでは管理されません。その認証情報は**プロフィール → API(APIキー)**から無効化してください。
確認できる結果
dosya whoamiはキーを表示せずに目的のアカウントを識別します。認証情報の取得元とエンドポイントが明確になり、保存ファイルを使う場合はオーナーのみが読み取れます。このCLIの使用を終了するときに、キーを個別に無効化できます。
関連ガイド
この記事は役に立ちましたか?
評価の結果を読み込んでいます…
投票すると、回答を変更できるように、必要な投票用Cookieが最長180日間保存されます。
質問と回答
このガイドの手順について質問できます。質問は確認後に公開されます。
公開の質問には、アカウントの詳細、認証情報、非公開ファイルを含めないでください。これらについては 非公開サポート をご利用ください。
質問を読み込んでいます…
dosyaアカウントにサインインすると、質問を投稿できます。