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
2.7k
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.6k
Other Decks in Technology
See All in Technology
10分でわかるfreeeのQA
freee
0
260
生成AI・LLM時代における 機械学習エンジニアとしてのキャリア戦略・開発戦略 / my-career-and-development-strategies-for-ml-engineer-2024
yuya4
4
920
Azureコストは水道代/The_47th_Tokyo_Jazug
aeonpeople
3
390
XRミーティング 2024-03-20
1ftseabass
PRO
0
100
Getting started with controlling LEGO using Swift
hcrane
0
140
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
12
3.1k
これまでのキャリアとこれからMLエンジニアとしてどう動くか
masatakashiwagi
1
700
Castor - Symfony Live 2024 - Paris
lyrixx
1
110
LLMの現在
pfn
PRO
3
1.3k
Why do you get AWS certificates
hirosys
0
120
エンジニア候補者向け資料2024.03.28.pdf
macloud
0
2.9k
ビジネスとコード品質の接合点 そしてコード品質がそこに及ぼす影響 / The Intersections of Business and Engineering, and The Impact of Code Quality There
mtx2s
11
1k
Featured
See All Featured
Clear Off the Table
cherdarchuk
82
310k
The Brand Is Dead. Long Live the Brand.
mthomps
48
22k
Optimizing for Happiness
mojombo
369
69k
The Illustrated Children's Guide to Kubernetes
chrisshort
28
46k
Music & Morning Musume
bryan
39
5.5k
Thoughts on Productivity
jonyablonski
57
3.8k
Scaling GitHub
holman
456
140k
Six Lessons from altMBA
skipperchong
19
2.9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
39
4.3k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
19
1.9k
Imperfection Machines: The Place of Print at Facebook
scottboms
257
12k
RailsConf 2023
tenderlove
0
510
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 以上です。