Spring BootにAzure Active Directoryで認証機能をつける

はじめに

Azure Active Directoryを使った認証機能をSpring Bootを使ったWebアプリに対して実施してみることにしました。

前提事項

本エントリー執筆時、Spring Bootの最新版安定版は2.4.2なのですが、今回使うazure-spring-boot-starter-active-directoryがSpring Boot 2.4.2に対応してないようでSpring Initializrで選択しようとしてもできませんでした。

f:id:miyohide:20210214114704p:plain

そのためこのエントリーではSpring Bootのバージョンを2.3.8にしました。

実装

Azure SDK for Javaリポジトリにサンプルコードが公開されています。

github.com

ほとんどここに書かれているものをトレースするだけです。

本エントリー執筆時、README.mdにはRedirect URLsの設定をhttp://localhost:8080/login/oauth2/code/にする旨が書かれていますが、この記述では以下の画像のような画面が出てログイン処理に失敗します。

f:id:miyohide:20210214133902j:plain

私の場合はhttp://localhost:8080/login/oauth2/code/azureにすることで動きました。

f:id:miyohide:20210214133937p:plain

ログイン処理が成功すると、ユーザー名のフルネームが表示されます。

この時点でのソースはこちら。

github.com