※本ページにはプロモーション(広告)が含まれています
認証が必要なリソースへの、未認証または認証失敗によるアクセス拒否を示すHTTPエラー。ログインやトークン再取得で解消するケースが多い。
詳しい解説
401 Unauthorizedは、リクエストに有効な認証情報が含まれていない、または認証に失敗した場合にサーバーが返すHTTPステータスコードです。名前は『Unauthorized(未認可)』ですが、実際は『Unauthenticated(未認証)』の意味で、ユーザーが『誰なのか』をサーバーが確認できない状態です。403(権限なし)とは違い、ログインすればアクセス可能になるケースが多いです。
主な発生条件は次の通り。①認証情報の未送信: ログインが必要なAPIにトークンなしでアクセス。②セッション切れ: ログインしていたが時間経過でセッションが失効。③APIキーの間違い: リクエストヘッダーのAuthorizationに誤った値を指定。④トークンの期限切れ: JWTやOAuthトークンのexp超過。⑤Basic認証のパスワード誤り: ブラウザに表示されるパスワード入力ダイアログで誤入力。
対処手順は次の順。第1段階: ログインし直す(セッション切れが最多原因)。第2段階: ブラウザのCookieをクリアしてから再ログイン。第3段階: パスワードマネージャーで正しい認証情報をコピーして入力。第4段階: API利用時はトークンの有効期限を確認し、必要ならリフレッシュトークンで再取得。第5段階: それでも改善しない場合、アカウントがロックされていないか運営に問い合わせ。
予防策として、セッション切れ対策にブラウザの『ログイン状態を保持』をオンにする、APIトークンは期限前にリフレッシュする処理を実装する、2段階認証を有効化しアカウント侵害時のダメージを最小化する、などが有効です。開発者はWWW-Authenticateヘッダーを返し、クライアントに必要な認証方式を明示するのが仕様通りの実装です。
SaaSの管理画面で作業中に別のタブでしばらく他の作業をして戻ると、『401 Unauthorized』と表示されることがあります。多くはセッションタイムアウト(30分〜数時間)が原因です。F5押して画面が戻らなければ、一度ログアウトしてから再ログイン。Cookieやトークンが古くなっている場合は、シークレットモードでログインして同じ現象が出るかで切り分けできます。長時間作業するサービスでは『セッションを維持する』のチェックを有効にしておくのが実用的です。
別の呼び方
Unauthorized
認証エラー
401エラー
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!