SlideShare a Scribd company logo
1 of 47
でソーシャルログインを実装する
Dec 18, 2019
Ryusuke Tanaka
Payment Solution Development Group.
Open Commerce Service Development Section.
EC Incubation Development Department.
Rakuten, Inc.
2
自己紹介
田中 竜介
• 所属:楽天株式会社 ECイン
キューベーション開発部
(ECID)
楽天ペイ(オンライン決済)の
開発業務を担当
• 趣味:スキー、自転車
3
担当サービス紹介:楽天ペイ(オンライン決済)
[楽天ペイ(オンライン決済)・2019/12/03・https://checkout.rakuten.co.jp/]
特徴
• 楽天ID でネット決済が可
能
• 楽天ポイントが貯まる、
使える
4
担当サービス紹介:楽天ペイ(オンライン決済)
分類 技術
言語 Java 11
フレームワーク • Spring Boot
• Spring Security
• Spring Session
• MyBatis
• etc..
インフラ • Azure
• Kubernetes(AKS Managed Cluster)
• Docker
採用技術
5
セッションのAgenda に入る前に、
大切なおしらせです
6
[Spring Social End of Life Announcement ・2019/12/03・https://spring.io/blog/2018/07/03/spring-social-end-of-life-announcement]
7
[Spring Social End of Life Announcement ・2019/12/03・https://spring.io/blog/2018/07/03/spring-social-end-of-life-announcement]
!!!
8
まとめ
Spring Social はEOL を迎えてしまったプロジェクトです。
9
しかし、このままEOL のライブラリを紹介するわけには。。。
10
[Spring Social End of Life Announcement ・2019/12/03・https://spring.io/blog/2018/07/03/spring-social-end-of-life-announcement]
11
セッションのテーマ
Spring Security
OAuth2
Spring Social
Spring Social の代わりに、
OAuth 2.0 のClient に対応したSpring Security OAuth2 をご紹介します。
12
気を取り直して
セッションのAgendaです
13
• ソーシャルログインとは
• デモ
• OAuth 2.0 / Open ID Connect とは
• デモソースコード / Spring Security OAuth2 解説
• 最後に
14
ソーシャルログインとは
[ENOTECA online ログイン・2019/12/03・https://www.enoteca.co.jp/auth/login?banner=hd]
[【楽天】ログイン・2019/12/06・https://grp02.id.rakuten.co.jp/rms/nid/login]
メリット
エンドユーザは自身のSNSアカウントでログインすることができる。
-> ユーザ登録の手間を省きコンバージョン率を改善
15
• ソーシャルログインとは
• -> デモ
• OAuth 2.0 / Open ID Connect とは
• デモソースコード / Spring Security OAuth2 解説
• 最後に
16
デモ:概要
ソーシャルログインが出来る掲示板
• エンドユーザは、自身のSNS アカウントでデモアプリケーションにログイン
ができる。SNS アカウントはFacebookとGoogleを選択できる。
• エンドユーザは、ログイン後、記事の投稿と閲覧ができる。
• デモアプリケーションは、SNS アカウントでログインしたエンドユーザの情
報を、選択されたSNS から取得ができる。
17
デモソースコード
https://github.com/jack-berkut/spring-security-oauth-demo
18
• ソーシャルログインとは
• デモ
• -> OAuth 2.0 / Open ID Connect とは
• デモソースコード / Spring Security OAuth2 解説
• 最後に
19
とは
背景
1. 近年、様々なサービスが公開されてきた。
2. 新しいユーザ価値を生み出すため、それらの機能の一部を一つのサービスに
統合させる必要が出てきた。
エンドユーザ
サービスA
サービスB
新しいサービス提供
①
サービスCサービス提供
機能を利用
エンドユーザ
サービスA
サービスB
②
20
とは
問題点
エンドユーザの代わりに、サービスCは別サービスのAPI を実行する必要がある
-> サービスCはエンドユーザからAPIの実行が認可されている
サービスC
API 実行を認可
サービスA(API)
サービスB(API)
API 実行
OAuth 2.0 はこの問題を解決するために生まれた
21
とは
OAuth 2.0 の概要と登場人物
OAuth 2.0 はクライアントが認可されるためのフロー(プロトコル)
クライアント
(サービスC)
認可サーバ
(サービスA)
リソースオーナー
(エンドユーザ) リソースサーバ
(サービスAの API)
認可
認可コードとアクセス
トークンの発行
アクセストークンを
使ってリソースサーバ
のAPI を実行
フローの最終目標
22
登場人物
登場人物 概要
リソースオーナー エンドユーザに該当。
クライアント
-> このセッションの対象
デモアプリケーションに該当。
認可された後にリソースサーバのAPI
を実行する。
認可サーバ SNS に該当。
リソースオーナーに認可を求めたり、
認可コードやアクセストークンを発行
する。
リソースサーバ SNS に該当。
リソースオーナーの情報を操作できる
API を公開する。
23
登場人物
登場人物 概要
クライアントID・シークレット 認可サーバがクライアントを識別する
ための情報
スコープ リソースオーナーがクライアントに認
可する範囲
認可コード リソースオーナーがクライアントを認
可した事を示すトークン
アクセストークン リソースサーバのAPI を実行できる
トークン
24
フローの種類
フロー 概要
認可コードフロー
-> このセッションの対象
認可コードでアクセストークンを取得
する
インプリシットフロー 直接アクセストークンを取得する
クライアントクレデンシャルフロー リソースオーナーのID・パスワードを
クライアントが取り扱う
リフレッシュトークンフロー 有効期限が過ぎたアクセストークンを
更新する
25
フロー(認可コードフロー)
クライアント 認可サーバリソース
オーナー
リソースサーバ
⑦ユーザ情報取得要求
⑤アクセストークン
取得要求
① 認可エンドポ
イントに遷移
⑥アクセストークン
⑧ユーザ情報
②リソースオー
ナーがクライアン
トを認可
③リダイレクトエ
ンドポイントにリ
ダイレクトさせる
④リダイレクト
26
をソーシャルログインで利用するときの問題点
• OAuth 2.0 は(クライアントに対する)認可のための仕様
-> リソースオーナーの認証は保証されていない
クライアント
認可サーバ
リソースオーナー
認証
認可
?
OpenID Connect はこの問題を解決するために生まれた
27
とは
OpenID Connect の概要と登場人物
クライアント
認可サーバ
リソースオーナー
リソースサーバ
認可
認可コードとID トークンの発行
ID トークンを使ってリ
ソースサーバのAPI を
実行
ID トークンを使って認証
?
28
登場人物( と比較)
OAuth 2.0 OpenID Connect 説明
認可サーバ ID プロバイダー 認可コードとID トークンの
発行
アクセストークン ID トークン エンドユーザの一意なキー
や改ざん防止のプロパティ
などが含まれる
29
フロー追加
クライアント ID プロパイダーリソース
オーナー
⑤IDトークン取得要
求
① 認可エンドポ
イントに遷移
③リダイレクトエ
ンドポイントにリ
ダイレクトさせる
④リダイレクト
②リソースオー
ナーがクライアン
トを認可
⑥IDトークン⑦ID トークンを検証
30
• ソーシャルログインとは
• デモ
• OAuth 2.0 / Open ID Connect とは
• -> デモソースコード / Spring Security OAuth2 解説
• 最後に
31
とは
• OAuth 2.0 / OpenID Connect 関連のSpring Project
• OAuth 2.0 / OpenID Connect 登場人物毎の実装をサポートする
• クライアント:対応
-> このセッションの対象
• リソースサーバ:対応
• 認可サーバ:未対応
32
とは
Spring Project の各Module の役割
Spring Module 役割
Spring Security OAuth2 Client OAuth 2.0 のクライアント実装を提供
-> 複雑なクライアント実装が不要
Spring Security Core ユーザ認証のフローを提供
-> 具体的な認証方法はOAuth2 Client
に委譲
Spring Boot Auto Configure Auto-configuration によるSpring
Security のBeanを提供
-> Bean の手動設定が不要
33
デモソースコード解説
dependencies {
// Spring Security 関連
implementation 'org.springframework.boot:spring-boot-starter-security'
// OAuth 2.0 クライアント関連
implementation 'org.springframework.security:spring-security-oauth2-client'
// OpenID Connect JWT 関連
implementation 'org.springframework.security:spring-security-oauth2-jose'
}
build.gradle
34
デモソースコード解説
spring:
security:
oauth2:
client:
registration:
facebook:
client-id: Facebook Graph API のクライアントID
client-secret: Facebook Graph API のクライアントシークレット
google:
client-id: Google APIs のクライアントID
client-secret: Google APIs のクライアントシークレット
application.yaml
※このセッションではクライアントID・シークレットの取得方法は割愛
35
デモソースコード解説
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
// ログイン画面はログインしていない状態でもアクセスできる
.antMatchers("/login").permitAll()
// その他の画面はログイン必須
.anyRequest().authenticated()
.and()
// ログインはOAuth 2.0 のフローを利用する
.oauth2Login()
// Spring Security デフォルトのログイン画面ではなく独自のログイン画面を表示する
.loginPage("/login");
}
SecurityConfig.java
36
デモソースコード解説
@Override
public void configure(WebSecurity web) {
// 静的リソース(CSSやJavaScriptなど)はSpring Security の対象外にする
web.ignoring().antMatchers("/css/**", "/js/**", "/fonts/**");
}
SecurityConfig.java
37
デモソースコード解説
<!-- リソースオーナーを認可エンドポイントにリダイレクトさせるエンドポイント -->
<a th:href="@{/oauth2/authorization/facebook}">Facebook でログイン</a>
<a th:href="@{/oauth2/authorization/google}">Google でログイン</a>
login.html
※Spring Security OAuth 2.0デフォルトのログイン画面でも機能に支障は出ない
38
デモソースコード解説
@GetMapping(“/”)
public String showArticles(@AuthenticationPrincipal OAuth2User oauth2User, Model model) {
// Spring Boot Auto-configuration によってOAuth2User は自動でインジェクトされる
List<Article> articles = articleRepository.findAll();
model.addAttribute("userName", oauth2User.getAttribute("name"));
model.addAttribute("articles", articles);
model.addAttribute("articleForm", new ArticleForm());
return "index";
}
BBSController.java
39
デモソースコード解説
@PostMapping("/post")
public String postArticle(@AuthenticationPrincipal OAuth2User oauth2User, @ModelAttribute
ArticleForm articleForm) {
Article article = new Article();
article.setName(oauth2User.getAttribute("name"));
article.setEntry(articleForm.getEntry());
article.setDate(LocalDate.now());
articleRepository.save(article);
return "redirect:/";
}
BBSController.java
40
提供機能
Spring Security OAuth2 Client 提供機能
• リソースオーナーを認可エンドポイントにリダイレクトさせる
• リダイレクトエンドポイント提供
• アクセストークン取得
• ユーザ情報取得
• etc..
41
クラス概要
ClientRegistration クラス
• 認可サーバ(SNS)の情報を保持
• Registration ID(SNSの種類と同等)
• クライアントID
• クライアントシークレット
• スコープ
• etc..
• 認可リクエストや認可コード取得など、認可サーバと通信する際に使用される
• application.yaml からプロパティが読み込まれる
ClientRegistrationRepository インターフェイス
• 複数のClientRegistration を保持
• このインターフェイスから、リソースオーナーが選択した認可サーバの
ClientRegistration を取得できる
42
クラス概要
CommonOAuth2Provider クラス
• Spring Security OAuth2 デフォルト認可サーバ・リソースサーバの情報を保持
• Google
• Facebook
• GitHub
• Okta
43
クラス概要
OAuth2AuthorizationRequestRedirectFilter クラス
• /oauth2/authorization/${registrationId} にマッピングされている
• リソースオーナーを認可エンドポイントへリダイレクトさせる
(302 レスポンスコードをレスポンスする)
OAuth2LoginAuthenticationFilter クラス
• リダイレクトエンドポイントの実装
• /oauth2/code/${registrationId} にマッピングされている
• リクエストに含まれた認可コードでアクセストークンを取得する
• アクセストークンでユーザ情報を取得する
44
クラス概要
OAuth2AuthenticationToken クラス
• OAuth2AuthorizedClientService でアクセストークンやユーザ情報を取得するた
めに必要
OAuth2AuthorizedClientService クラス
• OAuth 2.0 フロー完了後、任意のタイミングでアクセストークンやユーザ情報
を取得できる
• デフォルトでは、OAuth2LoginAuthenticationFilter によってセッションに保存
されている
45
• ソーシャルログインとは
• デモ
• OAuth 2.0 / Open ID Connect とは
• デモソースコード / Spring Security OAuth2 解説
• -> 最後に
46
最後に
• OAuth 2.0 / OpenID Connect でソーシャルログインをはじめとした新しいユー
ザ価値を提供することが可能になった。
• Spring Security OAuth2やSpring Boot Auto-configuration を利用することで、ク
ライアントの実装の手間は極力削減することができる。
• ライブラリのEOL・サポート状況に気をつけましょう。。。。
Spring Social でソーシャルログインを実装する

More Related Content

What's hot

開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)mosa siru
 
SSIとDIDで何を解決したいのか?(β版)
SSIとDIDで何を解決したいのか?(β版)SSIとDIDで何を解決したいのか?(β版)
SSIとDIDで何を解決したいのか?(β版)Naohiro Fujie
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割Recruit Lifestyle Co., Ltd.
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはJun-ichi Sakamoto
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門Hiroyuki Wada
 
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_insideAuthlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_insideTatsuo Kudo
 
これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用Masaru Kurahayashi
 
実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門Naohiro Fujie
 
OpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクルOpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクルMasaru Kurahayashi
 
JIRA / Confluence の 必須プラグインはこれだ
JIRA / Confluence の必須プラグインはこれだJIRA / Confluence の必須プラグインはこれだ
JIRA / Confluence の 必須プラグインはこれだNarichika Kajihara
 
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善Ito Takayuki
 
イマドキ!ユースケース別に見るAWS IoT への接続パターン
イマドキ!ユースケース別に見るAWS IoT への接続パターンイマドキ!ユースケース別に見るAWS IoT への接続パターン
イマドキ!ユースケース別に見るAWS IoT への接続パターンseiichi arai
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装Masatoshi Tada
 
なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景Tatsuo Kudo
 
今さら聞けないDiとspring
今さら聞けないDiとspring今さら聞けないDiとspring
今さら聞けないDiとspring土岐 孝平
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門土岐 孝平
 
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)NTT DATA Technology & Innovation
 
Spring fest2020 spring-security
Spring fest2020 spring-securitySpring fest2020 spring-security
Spring fest2020 spring-security土岐 孝平
 

What's hot (20)

開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
 
SSIとDIDで何を解決したいのか?(β版)
SSIとDIDで何を解決したいのか?(β版)SSIとDIDで何を解決したいのか?(β版)
SSIとDIDで何を解決したいのか?(β版)
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門
 
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_insideAuthlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
 
Keycloak入門
Keycloak入門Keycloak入門
Keycloak入門
 
これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用
 
実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門
 
OpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクルOpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクル
 
JIRA / Confluence の 必須プラグインはこれだ
JIRA / Confluence の必須プラグインはこれだJIRA / Confluence の必須プラグインはこれだ
JIRA / Confluence の 必須プラグインはこれだ
 
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
 
イマドキ!ユースケース別に見るAWS IoT への接続パターン
イマドキ!ユースケース別に見るAWS IoT への接続パターンイマドキ!ユースケース別に見るAWS IoT への接続パターン
イマドキ!ユースケース別に見るAWS IoT への接続パターン
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装
 
なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景
 
今さら聞けないDiとspring
今さら聞けないDiとspring今さら聞けないDiとspring
今さら聞けないDiとspring
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門
 
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
 
Spring fest2020 spring-security
Spring fest2020 spring-securitySpring fest2020 spring-security
Spring fest2020 spring-security
 

Similar to Spring Social でソーシャルログインを実装する

Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
 
Azure ADとIdentity管理
Azure ADとIdentity管理Azure ADとIdentity管理
Azure ADとIdentity管理Naohiro Fujie
 
OpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けて
OpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けてOpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けて
OpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けてTakashi Yahata
 
プロトコルから見るID連携
プロトコルから見るID連携プロトコルから見るID連携
プロトコルから見るID連携Naohiro Fujie
 
Whats new in_a360-19-20_jp
Whats new in_a360-19-20_jpWhats new in_a360-19-20_jp
Whats new in_a360-19-20_jpssuser033561
 
OpenID ConnectとSCIMのエンタープライズ利用ガイドライン
OpenID ConnectとSCIMのエンタープライズ利用ガイドラインOpenID ConnectとSCIMのエンタープライズ利用ガイドライン
OpenID ConnectとSCIMのエンタープライズ利用ガイドラインTakashi Yahata
 
Cloud Identity Summit 2012 TOI
Cloud Identity Summit 2012 TOICloud Identity Summit 2012 TOI
Cloud Identity Summit 2012 TOITatsuo Kudo
 
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可Hitachi, Ltd. OSS Solution Center.
 
Visual Studio App Centerで始めるCI/CD(iOS)
Visual Studio App Centerで始めるCI/CD(iOS)Visual Studio App Centerで始めるCI/CD(iOS)
Visual Studio App Centerで始めるCI/CD(iOS)Shinya Nakajima
 
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1Toshiaki Maki
 
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsOAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsTatsuo Kudo
 
認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向Tatsuo Kudo
 
数々の実績:迅速なFIDO認証の展開をサポート
数々の実績:迅速なFIDO認証の展開をサポート数々の実績:迅速なFIDO認証の展開をサポート
数々の実績:迅速なFIDO認証の展開をサポートFIDO Alliance
 
OpenID Connect のビジネスチャンス
OpenID Connect のビジネスチャンスOpenID Connect のビジネスチャンス
OpenID Connect のビジネスチャンスOpenID Foundation Japan
 
Microsoftの認証システムの歴史と 過渡期におけるWAPの活用 +Next Generation Credentials
Microsoftの認証システムの歴史と過渡期におけるWAPの活用+Next Generation CredentialsMicrosoftの認証システムの歴史と過渡期におけるWAPの活用+Next Generation Credentials
Microsoftの認証システムの歴史と 過渡期におけるWAPの活用 +Next Generation CredentialsNaohiro Fujie
 
Azure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみるAzure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみるNaohiro Fujie
 
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説Takashi Yahata
 

Similar to Spring Social でソーシャルログインを実装する (20)

Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
 
Azure ADとIdentity管理
Azure ADとIdentity管理Azure ADとIdentity管理
Azure ADとIdentity管理
 
OpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けて
OpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けてOpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けて
OpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けて
 
プロトコルから見るID連携
プロトコルから見るID連携プロトコルから見るID連携
プロトコルから見るID連携
 
Whats new in_a360-19-20_jp
Whats new in_a360-19-20_jpWhats new in_a360-19-20_jp
Whats new in_a360-19-20_jp
 
NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話
 
OpenID ConnectとSCIMのエンタープライズ利用ガイドライン
OpenID ConnectとSCIMのエンタープライズ利用ガイドラインOpenID ConnectとSCIMのエンタープライズ利用ガイドライン
OpenID ConnectとSCIMのエンタープライズ利用ガイドライン
 
Cloud Identity Summit 2012 TOI
Cloud Identity Summit 2012 TOICloud Identity Summit 2012 TOI
Cloud Identity Summit 2012 TOI
 
Keycloakの最近のトピック
Keycloakの最近のトピックKeycloakの最近のトピック
Keycloakの最近のトピック
 
Keycloakのステップアップ認証について
Keycloakのステップアップ認証についてKeycloakのステップアップ認証について
Keycloakのステップアップ認証について
 
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
 
Visual Studio App Centerで始めるCI/CD(iOS)
Visual Studio App Centerで始めるCI/CD(iOS)Visual Studio App Centerで始めるCI/CD(iOS)
Visual Studio App Centerで始めるCI/CD(iOS)
 
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
 
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsOAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
 
認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向
 
数々の実績:迅速なFIDO認証の展開をサポート
数々の実績:迅速なFIDO認証の展開をサポート数々の実績:迅速なFIDO認証の展開をサポート
数々の実績:迅速なFIDO認証の展開をサポート
 
OpenID Connect のビジネスチャンス
OpenID Connect のビジネスチャンスOpenID Connect のビジネスチャンス
OpenID Connect のビジネスチャンス
 
Microsoftの認証システムの歴史と 過渡期におけるWAPの活用 +Next Generation Credentials
Microsoftの認証システムの歴史と過渡期におけるWAPの活用+Next Generation CredentialsMicrosoftの認証システムの歴史と過渡期におけるWAPの活用+Next Generation Credentials
Microsoftの認証システムの歴史と 過渡期におけるWAPの活用 +Next Generation Credentials
 
Azure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみるAzure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみる
 
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説
 

More from Rakuten Group, Inc.

コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話Rakuten Group, Inc.
 
楽天における安全な秘匿情報管理への道のり
楽天における安全な秘匿情報管理への道のり楽天における安全な秘匿情報管理への道のり
楽天における安全な秘匿情報管理への道のりRakuten Group, Inc.
 
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...Rakuten Group, Inc.
 
DataSkillCultureを浸透させる楽天の取り組み
DataSkillCultureを浸透させる楽天の取り組みDataSkillCultureを浸透させる楽天の取り組み
DataSkillCultureを浸透させる楽天の取り組みRakuten Group, Inc.
 
大規模なリアルタイム監視の導入と展開
大規模なリアルタイム監視の導入と展開大規模なリアルタイム監視の導入と展開
大規模なリアルタイム監視の導入と展開Rakuten Group, Inc.
 
楽天における大規模データベースの運用
楽天における大規模データベースの運用楽天における大規模データベースの運用
楽天における大規模データベースの運用Rakuten Group, Inc.
 
楽天サービスを支えるネットワークインフラストラクチャー
楽天サービスを支えるネットワークインフラストラクチャー楽天サービスを支えるネットワークインフラストラクチャー
楽天サービスを支えるネットワークインフラストラクチャーRakuten Group, Inc.
 
楽天の規模とクラウドプラットフォーム統括部の役割
楽天の規模とクラウドプラットフォーム統括部の役割楽天の規模とクラウドプラットフォーム統括部の役割
楽天の規模とクラウドプラットフォーム統括部の役割Rakuten Group, Inc.
 
Rakuten Services and Infrastructure Team.pdf
Rakuten Services and Infrastructure Team.pdfRakuten Services and Infrastructure Team.pdf
Rakuten Services and Infrastructure Team.pdfRakuten Group, Inc.
 
The Data Platform Administration Handling the 100 PB.pdf
The Data Platform Administration Handling the 100 PB.pdfThe Data Platform Administration Handling the 100 PB.pdf
The Data Platform Administration Handling the 100 PB.pdfRakuten Group, Inc.
 
Supporting Internal Customers as Technical Account Managers.pdf
Supporting Internal Customers as Technical Account Managers.pdfSupporting Internal Customers as Technical Account Managers.pdf
Supporting Internal Customers as Technical Account Managers.pdfRakuten Group, Inc.
 
Making Cloud Native CI_CD Services.pdf
Making Cloud Native CI_CD Services.pdfMaking Cloud Native CI_CD Services.pdf
Making Cloud Native CI_CD Services.pdfRakuten Group, Inc.
 
How We Defined Our Own Cloud.pdf
How We Defined Our Own Cloud.pdfHow We Defined Our Own Cloud.pdf
How We Defined Our Own Cloud.pdfRakuten Group, Inc.
 
Travel & Leisure Platform Department's tech info
Travel & Leisure Platform Department's tech infoTravel & Leisure Platform Department's tech info
Travel & Leisure Platform Department's tech infoRakuten Group, Inc.
 
Travel & Leisure Platform Department's tech info
Travel & Leisure Platform Department's tech infoTravel & Leisure Platform Department's tech info
Travel & Leisure Platform Department's tech infoRakuten Group, Inc.
 
Introduction of GORA API Group technology
Introduction of GORA API Group technologyIntroduction of GORA API Group technology
Introduction of GORA API Group technologyRakuten Group, Inc.
 
100PBを越えるデータプラットフォームの実情
100PBを越えるデータプラットフォームの実情100PBを越えるデータプラットフォームの実情
100PBを越えるデータプラットフォームの実情Rakuten Group, Inc.
 
社内エンジニアを支えるテクニカルアカウントマネージャー
社内エンジニアを支えるテクニカルアカウントマネージャー社内エンジニアを支えるテクニカルアカウントマネージャー
社内エンジニアを支えるテクニカルアカウントマネージャーRakuten Group, Inc.
 

More from Rakuten Group, Inc. (20)

コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
 
楽天における安全な秘匿情報管理への道のり
楽天における安全な秘匿情報管理への道のり楽天における安全な秘匿情報管理への道のり
楽天における安全な秘匿情報管理への道のり
 
What Makes Software Green?
What Makes Software Green?What Makes Software Green?
What Makes Software Green?
 
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...
 
DataSkillCultureを浸透させる楽天の取り組み
DataSkillCultureを浸透させる楽天の取り組みDataSkillCultureを浸透させる楽天の取り組み
DataSkillCultureを浸透させる楽天の取り組み
 
大規模なリアルタイム監視の導入と展開
大規模なリアルタイム監視の導入と展開大規模なリアルタイム監視の導入と展開
大規模なリアルタイム監視の導入と展開
 
楽天における大規模データベースの運用
楽天における大規模データベースの運用楽天における大規模データベースの運用
楽天における大規模データベースの運用
 
楽天サービスを支えるネットワークインフラストラクチャー
楽天サービスを支えるネットワークインフラストラクチャー楽天サービスを支えるネットワークインフラストラクチャー
楽天サービスを支えるネットワークインフラストラクチャー
 
楽天の規模とクラウドプラットフォーム統括部の役割
楽天の規模とクラウドプラットフォーム統括部の役割楽天の規模とクラウドプラットフォーム統括部の役割
楽天の規模とクラウドプラットフォーム統括部の役割
 
Rakuten Services and Infrastructure Team.pdf
Rakuten Services and Infrastructure Team.pdfRakuten Services and Infrastructure Team.pdf
Rakuten Services and Infrastructure Team.pdf
 
The Data Platform Administration Handling the 100 PB.pdf
The Data Platform Administration Handling the 100 PB.pdfThe Data Platform Administration Handling the 100 PB.pdf
The Data Platform Administration Handling the 100 PB.pdf
 
Supporting Internal Customers as Technical Account Managers.pdf
Supporting Internal Customers as Technical Account Managers.pdfSupporting Internal Customers as Technical Account Managers.pdf
Supporting Internal Customers as Technical Account Managers.pdf
 
Making Cloud Native CI_CD Services.pdf
Making Cloud Native CI_CD Services.pdfMaking Cloud Native CI_CD Services.pdf
Making Cloud Native CI_CD Services.pdf
 
How We Defined Our Own Cloud.pdf
How We Defined Our Own Cloud.pdfHow We Defined Our Own Cloud.pdf
How We Defined Our Own Cloud.pdf
 
Travel & Leisure Platform Department's tech info
Travel & Leisure Platform Department's tech infoTravel & Leisure Platform Department's tech info
Travel & Leisure Platform Department's tech info
 
Travel & Leisure Platform Department's tech info
Travel & Leisure Platform Department's tech infoTravel & Leisure Platform Department's tech info
Travel & Leisure Platform Department's tech info
 
OWASPTop10_Introduction
OWASPTop10_IntroductionOWASPTop10_Introduction
OWASPTop10_Introduction
 
Introduction of GORA API Group technology
Introduction of GORA API Group technologyIntroduction of GORA API Group technology
Introduction of GORA API Group technology
 
100PBを越えるデータプラットフォームの実情
100PBを越えるデータプラットフォームの実情100PBを越えるデータプラットフォームの実情
100PBを越えるデータプラットフォームの実情
 
社内エンジニアを支えるテクニカルアカウントマネージャー
社内エンジニアを支えるテクニカルアカウントマネージャー社内エンジニアを支えるテクニカルアカウントマネージャー
社内エンジニアを支えるテクニカルアカウントマネージャー
 

Spring Social でソーシャルログインを実装する