SlideShare uma empresa Scribd logo
1 de 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 でソーシャルログインを実装する

Mais conteúdo relacionado

Mais procurados

SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
Nov Matake
 

Mais procurados (20)

金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
 
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化
 
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
 
OpenID Connectとネイティブアプリを取り巻く仕様と動向 Yahoo! JAPANの取り組み #openid #openid_tokyo
OpenID Connectとネイティブアプリを取り巻く仕様と動向 Yahoo! JAPANの取り組み #openid #openid_tokyo OpenID Connectとネイティブアプリを取り巻く仕様と動向 Yahoo! JAPANの取り組み #openid #openid_tokyo
OpenID Connectとネイティブアプリを取り巻く仕様と動向 Yahoo! JAPANの取り組み #openid #openid_tokyo
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門
 
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
 
AWSの課金体系
AWSの課金体系AWSの課金体系
AWSの課金体系
 
OpenIDConnectを活用したgBizID(法人共通認証基盤)の現状と今後の展望 - OpenID Summit 2020
OpenIDConnectを活用したgBizID(法人共通認証基盤)の現状と今後の展望 - OpenID Summit 2020OpenIDConnectを活用したgBizID(法人共通認証基盤)の現状と今後の展望 - OpenID Summit 2020
OpenIDConnectを活用したgBizID(法人共通認証基盤)の現状と今後の展望 - OpenID Summit 2020
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
 
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
 
Keycloakの最近のトピック
Keycloakの最近のトピックKeycloakの最近のトピック
Keycloakの最近のトピック
 
AWS Black Belt Online Seminar - Amazon Lightsail
AWS Black Belt Online Seminar - Amazon Lightsail AWS Black Belt Online Seminar - Amazon Lightsail
AWS Black Belt Online Seminar - Amazon Lightsail
 
Ingressの概要とLoadBalancerとの比較
Ingressの概要とLoadBalancerとの比較Ingressの概要とLoadBalancerとの比較
Ingressの概要とLoadBalancerとの比較
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
 
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
 
NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話
 

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

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

Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
 
Azure ADとIdentity管理
Azure ADとIdentity管理Azure ADとIdentity管理
Azure ADとIdentity管理
 
実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門
 
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
 
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
 
認証の課題とID連携の実装 〜ハンズオン〜
認証の課題とID連携の実装 〜ハンズオン〜認証の課題とID連携の実装 〜ハンズオン〜
認証の課題とID連携の実装 〜ハンズオン〜
 
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 のビジネスチャンス
 
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_insideAuthlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
 
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を色々と繋いでみる
 

Mais de Rakuten Group, Inc.

Mais de 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を越えるデータプラットフォームの実情
 
社内エンジニアを支えるテクニカルアカウントマネージャー
社内エンジニアを支えるテクニカルアカウントマネージャー社内エンジニアを支えるテクニカルアカウントマネージャー
社内エンジニアを支えるテクニカルアカウントマネージャー
 

Último

Último (12)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

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