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
3k
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
2.9k
Other Decks in Technology
See All in Technology
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
3.2k
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
2
1.7k
SSMRunbook作成の勘所_20241120
koichiotomo
2
130
Application Development WG Intro at AppDeveloperCon
salaboy
0
180
いざ、BSC討伐の旅
nikinusu
2
780
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
170
The Role of Developer Relations in AI Product Success.
giftojabu1
0
120
【令和最新版】AWS Direct Connectと愉快なGWたちのおさらい
minorun365
PRO
5
750
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.6k
[FOSS4G 2024 Japan LT] LLMを使ってGISデータ解析を自動化したい!
nssv
1
210
Making your applications cross-environment - OSCG 2024 NA
salaboy
0
180
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Building Applications with DynamoDB
mza
90
6.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
Building Your Own Lightsaber
phodgson
103
6.1k
The Pragmatic Product Professional
lauravandoore
31
6.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
The Language of Interfaces
destraynor
154
24k
Teambox: Starting and Learning
jrom
133
8.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
The Cost Of JavaScript in 2023
addyosmani
45
6.7k
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 以上です。