- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2019-11-19T00:56:10+00:00","default:wikiadmin","wikiadmin")
#author("2019-11-19T05:35:34+00:00","default:wikiadmin","wikiadmin")
-認証系の設定
*ポイント [#k72afd9e]
-SpringSecurityがクラスパスに入っているとエントリポイントに@EnableWebSecurityを付与せずとも、デフォルトでアプリケーションに自動的にSpring Securityが有効になり、
-デフォルトではBASIC認証。すべてのパスにisAuthenticated()の認可がかかります。
-それをFORM認証だったり、OAuth2認証だったりに切り替えることができる
*用語集 [#z5cfe4c9]
|Security Principal|主体のことでセキュリティ文脈においては認証ユーザー|
|Authentication|認証|
|Authorization or Access Control|認可|
|UserDietailService|ユーザーの検索とPW認証を行うクラス|
**Authentication [#zb46f7d6]
ProviderManagerを利用するとfilterのように多彩な認証方式に対応できる。
*filter [#f742b8a8]
**AbstractAuthenticationProcessingFilter オーバーライドメソッド [#o21abe56]
attemptAuthenticationでユーザー情報をRequestやReponseからセットするが、実は認証はAuthenticationManagerに移譲しており、ここでは認証していないという。prepareAuthenticationが正しいメソッド名。
**OAuth2ClientAuthenticationProcessingFilter [#q20f8105]
OAuth2の認証
**UsernamePasswordAuthenticationFilter [#y832c0b7]
一番シンプルにフォームのID/PWで認証する形式。UsernamePasswordAuthenticationTokenにID/PWを格納してAuthenticationManagerに処理は移譲する。
AbstractAuthenticationTokenのサブクラスの一つUsernamePasswordAuthenticationTokenで、このTokenのタイプごとに認証方式を切り替えることができる。
**RememberMeAuthenticationFilter [#taf0bb18]
Cookieにより長期間ログインをさせたい場合に使うfilter
**DigestAuthenticationFilter [#gba3e1a9]
-BASIC認証やDigest認証の参考ページ
http://www.ne.jp/asahi/hishidama/home/tech/java/spring/boot/web/basic-auth.html
*参考サイト [#va7d29ac]
割と古いがシンプル。ただしslake
https://qiita.com/literalice/items/face0a467f1477348e6b
こちらの方が2.0系でgithub
https://qiita.com/yoshikawaa/items/5bc6cabbc2e5815f011c
OAuth2.0で必要な固有接続情報はclient-idとsecretのみ。あとはサイトで一定。
認証のフローとカスタマイズ
https://www.memory-lovers.blog/entry/2018/01/10/013508
**デフォルトBasic認証のUSER/PW [#i43a51ec]
ユーザーはuserでパスワードはコンソール起動時に毎回変わるので実用性はない!
Using generated security password: 54847ad0-58da-4aa8-bb2b-40b4211e81ad
*OAuth2有効化 [#wb8319f6]
+@EnableOAuth2Ssoをエントリーポイントにつける