Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20180803_Security JAWS 【第10回】#1「すぐ出来る!デスクトップSSO...
Search
TatsuyaYokobori
August 03, 2018
Technology
2
3.2k
20180803_Security JAWS 【第10回】#1「すぐ出来る!デスクトップSSOはサーバレスで」
20180803_Security JAWS 【第10回】#1「すぐ出来る!デスクトップSSOはサーバレスで」
TatsuyaYokobori
August 03, 2018
Tweet
Share
More Decks by TatsuyaYokobori
See All by TatsuyaYokobori
20180516_Security JAWS 【第9回】LT#3「アセスメント指摘事項への対応をサーバレスでチャチャっとやる話」
hollyrex
0
3.2k
Other Decks in Technology
See All in Technology
freeeのアクセシビリティの現在地 / freee's Current Position on Accessibility
ymrl
2
280
shake-upを科学する
rsakata
7
940
ソフトウェアテストのAI活用_ver1.25
fumisuke
1
570
Lakebaseを使ったAIエージェントを実装してみる
kameitomohiro
0
180
Getting to Know Your Legacy (System) with AI-Driven Software Archeology (WeAreDevelopers World Congress 2025)
feststelltaste
1
180
「クラウドコスト絶対削減」を支える技術—FinOpsを超えた徹底的なクラウドコスト削減の実践論
delta_tech
4
190
推し書籍📚 / Books and a QA Engineer
ak1210
0
120
いつの間にか入れ替わってる!?新しいAWS Security Hubとは?
cmusudakeisuke
0
160
Copilot coding agentにベットしたいCTOが開発組織で取り組んだこと / GitHub Copilot coding agent in Team
tnir
0
150
AWS CDK 入門ガイド これだけは知っておきたいヒント集
anank
5
660
敢えて生成AIを使わないマネジメント業務
kzkmaeda
2
510
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
10
130k
Featured
See All Featured
A better future with KSS
kneath
238
17k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
What's in a price? How to price your products and services
michaelherold
246
12k
A Modern Web Designer's Workflow
chriscoyier
695
190k
Into the Great Unknown - MozCon
thekraken
40
1.9k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
750
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Done Done
chrislema
184
16k
How STYLIGHT went responsive
nonsquared
100
5.6k
How GitHub (no longer) Works
holman
314
140k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Transcript
©2018 T3Realize LLC 1 すぐ出来る! デスクトップSSOはサーバレスで 2018/8/3 T3 Realize 合同会社
横堀 達也
©2018 T3Realize LLC 2 自己紹介 横堀 達也 よこ ぼり たつ
や 1985年7月6日生まれ 大阪府大阪市出身 2009年~2014年 NEC入社 2014年~2017年 CTC入社 2017年~ T3 Realize起業 好き:スーツ、革靴 最近:1年かけて25kgのダイエットに成功! ユーザーが自分で実装する コンサルが実装までやっちゃう *ITコンサルタント*
[email protected]
©2018 T3Realize LLC 3 今日の前提事項 誰だってSSOしたい! 便利になる! ログイン回数を減らせる
複数パスワードの管理が不要 認証部分の開発コスト削減 セキュリティ強化! 複数パスワード管理に伴うリスクの回避 多要素認証の導入が容易 ゴーストアカウントの撤廃 認証ログの集中管理が出来る でも、導入は面倒だと思ってませんか?
©2018 T3Realize LLC 4 伝えたいこと すぐにSSO出来る方法ありマス! 特にお金もかかりません! ※お約束の制限事項アリ
©2018 T3Realize LLC 5 注意事項(言い訳) 本内容は、手っ取り早くSSOするための導入資料です。 概要説明から、導入手順までの紹介となります。 是非ともノウハウを持って帰って下さい。 また、勢い重視のため、雑な展開が多い旨はご容赦願います。 商用環境への適用等には、別途で精緻な検討をお願いします。
©2018 T3Realize LLC 6 1.Single Sign-On について(ザックリ)
©2018 T3Realize LLC 7 • 利用者の視点 識別 認証 認可 システム利用開始
Single Sign-Onとは? • システム側の視点 ログインは 1回だけ! システム利用開始 各 シ ス テ ム 毎 の ア ク セ ス 制 御 の 工 程 識別 認証 認可 識別 認証 認可 1回のログイン で全システムの 制御すんの? 全システムの仕様 なんて知らない! 調整も無理!
©2018 T3Realize LLC 8 識別とは? SSOで考慮が必要なアクセス制御 1/3 • SSOと言えど、ログインされる各システム側のIDは必要です。 識別
認証 認可 システム利用開始 パソコンには 「
[email protected]
」でログインし、 SSO連携先のWebを開いた場合 Instagram側で事前に作成済みのID 「holly_rex」でログインされる。 初回ログイン時にAWS側のIDが 自動作成される。 事前に作成済み 自動作成も出来る
©2018 T3Realize LLC 9 認証とは? SSOで考慮が必要なアクセス制御 2/3 • パっと思い浮かぶ「SSO」のことで、ログイン行為を様々な方式で代替します。 識別
認証 認可 システム利用開始 SSOの仕組み パソコンには 正しいID/パスワードでログインした Instagramの ID/パスワードを 代わりに入力するで 認証情報を XMLで連携するで ※代行入力 ※SAML
©2018 T3Realize LLC 10 認可とは? SSOで考慮が必要なアクセス制御 3/3 • SSOしてきたユーザへの、権限の割り当てを考える必要があります。 識別
認証 認可 システム利用開始 SSOの仕組み SSOからの連携情報が無い場合、 特に権限は割り当てらない。 又は、IDの作成時に指定した権限に従う。 SSOで連携された情報を元に、 AWSのロールを割り当てる。 SSOでは特に権限を 指定しないとき SSOする際に権限も 指定することが出来る。
©2018 T3Realize LLC 11 2.Single Sign-On の仕組みについて
©2018 T3Realize LLC 12 主なSSOの仕組みについて • SSOの仕組みは沢山あり、選択が必要です。 代行入力 リバースプロキシ 統合Windows認証
SAML OpenID Connect ・パソコン上で動作するモジュールが、人の代わりに入力してくれる。 ・近年はブラウザのプラグインとして動作する。 ・認証情報をXMLで連携する。 ・最近の業務システムは対応してることが多い。 新しい 昔からある ・サーバ上で動作するモジュールが代理で認証する。 ・Windowsへの認証情報を連携する。 ・他システムのID情報/権限を使って認証する。 例:InstagramにFacebookのIDでログイン Agent ・パソコンとサーバの間に設置されたプロキシが代理で認証する。 概要
©2018 T3Realize LLC 13 で、どのやり方が良いの? • 代行入力とSAMLです! ※個人の独断と偏見に基づく 代行入力 リバースプロキシ
統合Windows認証 SAML OpenID Connect ・基本的に、全てのシステムに対応できる。 ※FLASHとか苦手・・ ・応用の幅が広い(プラグイン活用やクラウド連携 等) 理由 ・各種SaaSのデファクトスタンダード ・応用の幅が広い(権限割当の分担やID自動作成 等) 新しい 昔からある ・他システムを全面信頼するため、セキュリティ的に懸念になる。 ・FacebookのIDを業務で利用するか否か? Agent イントラネット前提の仕組み
©2018 T3Realize LLC 14 AWS なに使えば、すぐに出来るの? • AzureADです! ※まさかのNot AWS
VS サーバレスSSO基盤 SAMLのみ対応 ユーザ管理にAD必須 IAM Cognito SSO基盤(IdP) としての機能無し サーバレスSSO基盤 SAML、代行入力に対応 単独でユーザ管理できる Office365についてくる なんなら、Freeもある 代行入力はIE、Chromeで可 AzureAD ※大規模に使う場合、要AzureAD P1
©2018 T3Realize LLC 15 3.すぐ出来る! デスクトップSSOはサーバレスで
©2018 T3Realize LLC 16 即席SSO環境の概要図 • AWS マネージドコンソールにSSOする環境を作ろう! ※AzureAD寄りの手順解説となりますが、他の仕組みでも類似手順です。 ①
WinPCへのログインはローカル ユーザでもOK ② AzureADが発行したURLでコン ソールにSSOでログイン XML
©2018 T3Realize LLC 17 実演 前半 AzureAD側の設定 1/8 まずは、AzureADに ユーザーを作成する
©2018 T3Realize LLC 18 実演 前半 AzureAD側の設定 2/8
©2018 T3Realize LLC 19 実演 前半 AzureAD側の設定 3/8 AWSは事前登録済みですが、 ここから独自アプリの登録も
可能デス
©2018 T3Realize LLC 20 実演 前半 AzureAD側の設定 4/8
©2018 T3Realize LLC 21 実演 前半 AzureAD側の設定 5/8
©2018 T3Realize LLC 22 実演 前半 AzureAD側の設定 6/8
©2018 T3Realize LLC 23 実演 前半 AzureAD側の設定 7/8 名前:RoleSessionName 値:user.userprincipalname
名前空間:https://aws.amazon.com/SAML/Attributes 名前:Role 値:user.assignedroles 名前空間:https://aws.amazon.com/SAML/Attributes 名前:SessionDuration 値:43200 名前空間:https://aws.amazon.com/SAML/Attributes 以下の3つの属性を追加で入力します。 SessionDurationは必須では無いですが、 コレを設定しないとDefaultの3600sで セッションが切断されて使い辛いです。 こうなればOK!
©2018 T3Realize LLC 24 実演 前半 AzureAD側の設定 8/8 AWSとAzureで連携するXMLの定義ファイルを 今回はAzure側からダウンロードします。
©2018 T3Realize LLC 25 実演 中半 AWS側の設定 1/11
©2018 T3Realize LLC 26 実演 中半 AWS側の設定 2/11 AzureADからダウンロードした、 Amazon
Web Services (AWS).xml をアップロードします。
©2018 T3Realize LLC 27 実演 中半 AWS側の設定 3/11
©2018 T3Realize LLC 28 実演 中半 AWS側の設定 4/11
©2018 T3Realize LLC 29 実演 中半 AWS側の設定 5/11 ここで作成したロールが、SSOユーザに割り当てられます。 例ではAdministratirAccessを選択していますが、
実際は適したポリシーを割り当ててください。
©2018 T3Realize LLC 30 実演 中半 AWS側の設定 6/11 ここで作成したロールが、SSOユーザに割り当てられます。 例ではAdministratirAccessを選択していますが、
実際は適したポリシーを割り当ててください。
©2018 T3Realize LLC 31 実演 中半 AWS側の設定 7/11
©2018 T3Realize LLC 32 実演 中半 AWS側の設定 8/11 後に作成する、AWSとAzureADの連携用の IAMユーザに割り当てるポリシーを作成します。
必要な権限は、IAMロールのListのみです。
©2018 T3Realize LLC 33 実演 中半 AWS側の設定 9/11
©2018 T3Realize LLC 34 実演 中半 AWS側の設定 10/11 AWSとAzureADの連携用の IAMユーザを作成します。
先ほど作成したポリシーを割り当てます。
©2018 T3Realize LLC 35 実演 中半 AWS側の設定 11/11 AzureAD登録用に、控えてください。 後の手順で使用します。
©2018 T3Realize LLC 36 実演 後半 AzureAD側の設定 1/9 もう一度AzureADに戻り、 AWSのユーザ自動作成を設定します。
©2018 T3Realize LLC 37 実演 後半 AzureAD側の設定 2/9 先ほど控えたアクセスキーと シークレットキーを入力し、
テスト接続を実施する。
©2018 T3Realize LLC 38 実演 後半 AzureAD側の設定 3/9
©2018 T3Realize LLC 39 実演 後半 AzureAD側の設定 4/9
©2018 T3Realize LLC 40 実演 後半 AzureAD側の設定 5/9 AWSが登録されているので、 選択する。
©2018 T3Realize LLC 41 実演 後半 AzureAD側の設定 6/9 SSOしたいAzureADのユーザ を選択する。
©2018 T3Realize LLC 42 実演 後半 AzureAD側の設定 7/9 AzureAD側から、AWSのロール の読み込みに成功している!
©2018 T3Realize LLC 43 実演 後半 AzureAD側の設定 8/9
©2018 T3Realize LLC 44 実演 後半 AzureAD側の設定 9/9 このURLでアクセスすればSSOされる。 ブックマークに登録!
©2018 T3Realize LLC 45 実演 最後! パソコン側の設定 1/3
©2018 T3Realize LLC 46 実演 最後! パソコン側の設定 2/3
©2018 T3Realize LLC 47 実演 最後! パソコン側の設定 3/3 2要素認証のSMSコードを入力
©2018 T3Realize LLC 48 ようやく!SSO!
©2018 T3Realize LLC 49 終わりに • すぐに出来る方法の紹介でした。 サーバレスを活用すれば、デスクトップSSO も容易です! 当内容を手始めに、認証認可の深淵へと
共に踏み出しましょう!
©2018 T3Realize LLC 50 以上です。