OpenID Connect を使った Spring Boot SSO: Spring Security, Resource Server および Spring Cloud Gateway と Casdoor
· 1分読む
Spring Boot にシングルサインオンを追加するには、各アプリを Casdoor などの OpenID Connect プロバイダーのアプリケーションとして登録し、Spring Security をプロバイダーの Issuer URL に向けます。そして、アプリの種類に応じて適切な Spring モジュールを選択します。サーバー側レンダリングの Web アプリには oauth2Login()、ベアラートークンを受け取る REST API には oauth2ResourceServer().jwt()、ゲートウェイがマイクロサービス群のユーザー認証を一括で行う場合には TokenRelay フィルターを使った Spring Cloud Gateway が適しています。すべてのアプリが同じ Casdoor にユーザーを送るため、Casdoor がセッションを記憶しており、SSO が実現されます。2番目のアプリにリダイレクトされた際、Casdoor はすでにユーザーを知っているため、ログインフォームを表示せずにそのまま戻ってきます。この記事では、これらの3つの構成パターンすべてを1つの Casdoor に対してセットアップし、それぞれ動作する application.yml とカスタマイズした SecurityFilterChain を提供します。