セキュリティ・認証 / 認証/認可
リダイレクトURIとは
Redirect URI。OAuth/OIDCで認証後に戻る先として事前登録するURLです。
用語集内のカードを見るセキュリティ・認証 / 認証/認可
Redirect URI。OAuth/OIDCで認証後に戻る先として事前登録するURLです。
用語集内のカードを見るリダイレクトURIを、定義だけで終わらせず、現場で出てくる場面、確認材料、見落としやすい点、関連語とのつながりまで順に確認できます。
リダイレクトURI(Redirect URI)は、OAuth/OIDCで利用者の認証が終わったあと、認可サーバーやIdPがブラウザを戻す先のURLです。アプリ側ではコールバックURLと呼ばれることもあります。
この値は単なる戻り先ではありません。認可コードやトークンを渡す入口になるため、事前登録したURIとリクエスト中のURIが一致しているかをIdPが確認します。ここが緩いと、別のサイトへ認証結果を送ってしまう余地が生まれます。
ログイン画面が表示されるのに最後だけ失敗する場合、まずリダイレクトURIを疑います。アプリ、IdP、ブラウザのどこでURLが変わったのかを切り分ける必要があります。
多くのIdPは、scheme、host、path、末尾スラッシュ、ポート番号、大小文字、クエリ文字列を含めてリダイレクトURIを照合します。https://example.com/callback と https://example.com/callback/ は別物として扱われることがあります。
本番、検証、ローカル開発を同じ登録に混ぜると、不要なURIが残りやすくなります。ワイルドカードや広すぎるドメイン許可は便利に見えますが、認証結果の戻り先を広げる設定でもあります。
リダイレクトURI不一致では、invalid_redirect_uri、redirect_uri_mismatch、AADSTS50011のようなエラーが出ることがあります。エラー文だけで直さず、認可リクエストに入っているredirect_uriの値と、IdPのアプリ登録を同じ時刻で確認します。
PKCEやstateを使っていても、リダイレクトURIの登録ミスは別問題として残ります。stateはリクエストの対応関係を守り、PKCEは認可コードの悪用を抑えます。戻り先そのものを正しく制限するのはリダイレクトURIです。
エラーを消すだけなら、IdPにURIを追加すれば通る場合があります。しかし、そのURIが誰の管理下にあるか、今後も使うか、HTTPSで保護されるかを確認しなければ、古い戻り先が認証経路として残ります。
SSOの変更では、アプリ所有者、IdP管理者、DNS/Web担当の境界が分かれます。戻り先のURLがCDN、ロードバランサー、リバースプロキシで書き換わる場合もあります。
リダイレクトURIを変更したら、旧URI、新URI、対象アプリ、client_id、IdPテナント、反映時刻、ログイン確認結果、戻し条件を残します。URLだけをメモしても、あとでどのアプリ登録に効いた変更か追えません。
関連語としてOAuth、OIDC、クライアントID、PKCE、stateを並べると、認証フローのどの部分を直したのか説明しやすくなります。
同じ主要カテゴリの用語をまとめて確認できます。現在の用語を起点に、前後の用語へ進むと文脈を保ったまま読み進められます。