Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20180803_Security JAWS 【第10回】#1「すぐ出来る!デスクトップSSOはサーバレスで」

20180803_Security JAWS 【第10回】#1「すぐ出来る!デスクトップSSOはサーバレスで」

20180803_Security JAWS 【第10回】#1「すぐ出来る!デスクトップSSOはサーバレスで」

TatsuyaYokobori

August 03, 2018
Tweet

More Decks by TatsuyaYokobori

Other Decks in Technology

Transcript

  1. ©2018 T3Realize LLC 2 自己紹介 横堀 達也 よこ ぼり たつ

    や 1985年7月6日生まれ 大阪府大阪市出身 2009年~2014年 NEC入社 2014年~2017年 CTC入社 2017年~ T3 Realize起業 好き:スーツ、革靴 最近:1年かけて25kgのダイエットに成功! ユーザーが自分で実装する コンサルが実装までやっちゃう *ITコンサルタント* [email protected]
  2. ©2018 T3Realize LLC 3 今日の前提事項 誰だってSSOしたい! 便利になる!  ログイン回数を減らせる 

    複数パスワードの管理が不要  認証部分の開発コスト削減 セキュリティ強化!  複数パスワード管理に伴うリスクの回避  多要素認証の導入が容易  ゴーストアカウントの撤廃  認証ログの集中管理が出来る でも、導入は面倒だと思ってませんか?
  3. ©2018 T3Realize LLC 7 • 利用者の視点 識別 認証 認可 システム利用開始

    Single Sign-Onとは? • システム側の視点 ログインは 1回だけ! システム利用開始 各 シ ス テ ム 毎 の ア ク セ ス 制 御 の 工 程 識別 認証 認可 識別 認証 認可 1回のログイン で全システムの 制御すんの? 全システムの仕様 なんて知らない! 調整も無理!
  4. ©2018 T3Realize LLC 8 識別とは? SSOで考慮が必要なアクセス制御 1/3 • SSOと言えど、ログインされる各システム側のIDは必要です。 識別

    認証 認可 システム利用開始 パソコンには 「[email protected]」でログインし、 SSO連携先のWebを開いた場合 Instagram側で事前に作成済みのID 「holly_rex」でログインされる。 初回ログイン時にAWS側のIDが 自動作成される。 事前に作成済み 自動作成も出来る
  5. ©2018 T3Realize LLC 9 認証とは? SSOで考慮が必要なアクセス制御 2/3 • パっと思い浮かぶ「SSO」のことで、ログイン行為を様々な方式で代替します。 識別

    認証 認可 システム利用開始 SSOの仕組み パソコンには 正しいID/パスワードでログインした Instagramの ID/パスワードを 代わりに入力するで 認証情報を XMLで連携するで ※代行入力 ※SAML
  6. ©2018 T3Realize LLC 10 認可とは? SSOで考慮が必要なアクセス制御 3/3 • SSOしてきたユーザへの、権限の割り当てを考える必要があります。 識別

    認証 認可 システム利用開始 SSOの仕組み SSOからの連携情報が無い場合、 特に権限は割り当てらない。 又は、IDの作成時に指定した権限に従う。 SSOで連携された情報を元に、 AWSのロールを割り当てる。 SSOでは特に権限を 指定しないとき SSOする際に権限も 指定することが出来る。
  7. ©2018 T3Realize LLC 12 主なSSOの仕組みについて • SSOの仕組みは沢山あり、選択が必要です。 代行入力 リバースプロキシ 統合Windows認証

    SAML OpenID Connect ・パソコン上で動作するモジュールが、人の代わりに入力してくれる。 ・近年はブラウザのプラグインとして動作する。 ・認証情報をXMLで連携する。 ・最近の業務システムは対応してることが多い。 新しい 昔からある ・サーバ上で動作するモジュールが代理で認証する。 ・Windowsへの認証情報を連携する。 ・他システムのID情報/権限を使って認証する。 例:InstagramにFacebookのIDでログイン Agent ・パソコンとサーバの間に設置されたプロキシが代理で認証する。 概要
  8. ©2018 T3Realize LLC 13 で、どのやり方が良いの? • 代行入力とSAMLです! ※個人の独断と偏見に基づく 代行入力 リバースプロキシ

    統合Windows認証 SAML OpenID Connect ・基本的に、全てのシステムに対応できる。 ※FLASHとか苦手・・ ・応用の幅が広い(プラグイン活用やクラウド連携 等) 理由 ・各種SaaSのデファクトスタンダード ・応用の幅が広い(権限割当の分担やID自動作成 等) 新しい 昔からある ・他システムを全面信頼するため、セキュリティ的に懸念になる。 ・FacebookのIDを業務で利用するか否か? Agent イントラネット前提の仕組み
  9. ©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
  10. ©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!