Azure AD アプリケーションのリダイレクト URI: 普通はサインイン後に元のページに戻るよね

Azure AD アプリケーションを開発および作ろうかなーと計画してる皆様と、たまーにしか Azure AD に触れないので大事な Tips をすぐ忘れてしまう私のための備忘録です。

サインインが必要な web ページって常日頃普通に使ってるけど、どのページも、サインインした後ってその「サインインしようとした」ページに必ず戻るよね。でも、Azure AD のリダイレクト URI ってそもそも固定の URI をいっこだけしか指定できないじゃん。はて、サインイン後に元のページに戻るってどうすんの?

こうするといいらしい。

  • リダイレクト URI としてパラメーターを受け取れるページを設定
  • サインインするためのボタンに設定するハイパーリンクの URL 中に元のページを示すデータを渡すよう仕込む
  • サインインが無事完了してリダイレクト URI のページにリダイレクトされ、元のページを示すデータがパラメーターとして渡される
  • リダイレクト URI のページは受け取ったパラメーターに応じたページへリダイレクトしちゃう

なるほど!!!! …ってすごい感動したんだけど、これって Azure AD 以外でも常識の方法かな…?
え?そう?常識?私が知らないだけ?うっそーん

あと、いまどきの web アプリでパラメーターを URL で渡すってセキュリティホールになるんじゃ…とも思ったけど、そこまできちんとカバーしてるドキュメントがちゃんと docs.microsoft.com にあったよ orz

リダイレクト URI (応答 URL) に関する制約と制限 状態パラメーターを使用する
https://docs.microsoft.com/ja-jp/azure/active-directory/develop/reply-url#use-a-state-parameter

どなたかの参考になれば幸いです。Access まるで関係ないけど。