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
第128回雲勉【オンライン】ADFSによるSAMLを使用したAppStreamへのシングルサ...
Search
iret.kumoben
February 22, 2024
Technology
0
180
第128回雲勉【オンライン】ADFSによるSAMLを使用したAppStreamへのシングルサインオンアクセス 完成
下記、勉強会での資料です。
https://youtu.be/Elir-hPsDDY
iret.kumoben
February 22, 2024
Tweet
Share
More Decks by iret.kumoben
See All by iret.kumoben
第148回 雲勉 Web アプリケーションセキュリティ
iret
0
26
第147回 雲勉 Amazon CloudWatchをウォッチ!
iret
0
47
第146回 雲勉 BLEAを眺めてCDKの書き方について学ぶ
iret
1
50
第145回 雲勉 Amazon ECSでサービス間通信する方法を調べてみよう
iret
0
47
第144回 雲勉 Amazon Aurora Serverless v2の基礎とアーキの裏側を覗いてみる
iret
0
94
第143回 雲勉 [New Relic]インフラストラクチャ監視と気をつけたいポイント
iret
0
44
第142回 雲勉 AWS Backupの復元テストで自動化できること・できないこと
iret
0
100
第141回 雲勉 Amazon Inspectorによる脆弱性管理~ECR コンテナイメージ編~
iret
0
290
第2回 雲勉LT大会 パブリッククラウドのサーバレスサービスの違いを調べてみた
iret
0
26
Other Decks in Technology
See All in Technology
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
180
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
300
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.2k
Fanstaの1年を大解剖! 一人SREはどこまでできるのか!?
syossan27
2
160
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
110
LINEスキマニにおけるフロントエンド開発
lycorptech_jp
PRO
0
330
ずっと昔に Star をつけたはずの思い出せない GitHub リポジトリを見つけたい!
rokuosan
0
150
統計データで2024年の クラウド・インフラ動向を眺める
ysknsid25
2
840
GitHub Copilot のテクニック集/GitHub Copilot Techniques
rayuron
24
11k
kargoの魅力について伝える
magisystem0408
0
200
なぜCodeceptJSを選んだか
goataka
0
160
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
1
110
Featured
See All Featured
Writing Fast Ruby
sferik
628
61k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
96
Music & Morning Musume
bryan
46
6.2k
Become a Pro
speakerdeck
PRO
26
5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Designing Experiences People Love
moore
138
23k
Optimizing for Happiness
mojombo
376
70k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Transcript
第128回 雲勉【オンライン】 ADFSによるSAMLを使⽤したAppStream へのシングルサインオンアクセス
2 • 野崎 ⾼弘(のざき たかひろ) • アイレット株式会社 クラウドインテグレーション事業部 プロジェクト企画推進セクション インフラ技術
• インフラ構築・保守やSOCセキュリティアナリストをやってました • 現在は技術検証やドキュメント作業が主 • 趣味︓資格取得、⽝の散歩、ドラマ鑑賞、巨⼈ファン • 現在、AWS全冠、GCP全冠 3 ⾃⼰紹介
本セッションの内容 3 SAMLを使⽤してAppStream 2.0のIDフェデレーションをADFSで実現し、AppStream 2.0 にシングルサインオンアクセス ADと連携してAppStreamにアクセスして安全にアプリケーションを利⽤したい、という場合には、 AppStreamとADの間にADFS(Active Directory Federation
Service)サーバーを⽴てる必要があります。 そこで本セッションでは、基本構成が構築済みであることを前提に、様々な基本的な改良を加えていきま す。 (参考) Amazon AppStream 2.0 & ADFS Integration (Korean) Amazon AppStream 2.0 の ID フェデレーションを AD FS 3.0 で実現する サードパーティーの SAML 2.0 アイデンティティプロバイダーを使⽤した属性ベースのアプリケーションの 使⽤権限 ADFSによる多要素認証の設定
条件と対象者 4 条件 • AppStreamにアクセスするには、Windows⽤AppStream 2.0クライアントアプリケーション または HTML5対応Webブラウザが必要になります。 • 関連するロールやポリシーには、あらかじめ必要な権限が付与されているものとします。
• クライアント認証で使⽤するため、以下のポートが許可されているものとします。 ADFS側の49443ポート AD側の3268番ポート 対象者 AppStreamの認証にADでのSAML認証を⾏いたい、中級者レベル以上を想定
事前知識︓AppStreamとは 5 Amazon AppStream 2.0とは、ブラウザからデス クトップアプリケーションに即座にアクセスでき るようにするアプリケーションストリーミング サービスです。既存のデスクトップアプリケー ションを追加して、ユーザーがそれらをストリー ミングできるようにすることが可能です。クライ
アントソフトの画⾯をストリーミングしてくれま す。 デスクトップ環境を提供するWorkSpacesに対 し、特定のアプリケーションのみの実⾏に限定さ れているのがAppStreamです。
全体像 6 ※注︓この構成図はあくまで今回の検証⽤の簡易な構成であり、実際の本番想定の構成では、ADFSはパブリックサブネッ トに置くのではなく、例えばNLBを挟んでプライベートサブネットに配置してセキュアにしたり、冗⻑構成などにすること が推奨されます。
認証⼿順 7 1. ユーザーが ADFS Relay State URL を参照すると、サインインページで認証が要求されます。 2.
ADFSは、ADに対する認証を要求します。 3. ADがユーザーを認証して認証結果をADFSに返します。 4. 認証が成功すると、ADFSは認証成功のトークンとしてSAMLアサーションをブラウザに送信します。 5. ブラウザは、SAMLアサーションをAWSサインインSAMLエンドポイント (https://signin.aws.amazon.com/saml) に転送します。 6. AWS サインインは SAML リクエストを受け取り、処理、ユーザーを認証し、認証トークンを AppStream 2.0 サービスに転送します。 7. AppStream 2.0は AWS からの認証トークンを使⽤して、設定に基づいてブラウザにアプリケーションを 表⽰します。
認証⼿順 8
事前作業 9 • AppStreamとADFSの構築⾃体はAmazon AppStream 2.0 & ADFS Integration (Korean)のチュートリ
アルに従えば誰でも簡単にできますので、ここでは割愛し、既にAppStream+ADFS環境が構築されてい るものとします。
デモ⼿順概要 10 No 作業内容 1 正常にAppStreamが閲覧できることを確認 2 改良1︓SAML 2.0 マルチスタック
アプリケーション カタログ 3 改良2︓グループによるアプリの表⽰制御 4 改良3︓AppStreamクライアント経由でAppStreamに直接アクセス 5 改良4︓AppStreamへのアクセスをAppStreamクライアントにリダイレクト 6 改良5︓AppStream fleetをマルチセッションで構成
デモ 11 ここからデモも交えて実際の動きを⾒ながら説明します。 (全部で15〜20分くらいかかります)
1.正常にAppStreamが閲覧できることを確認 12 まず、以下のリレーステートURLにアクセスし、ADFS認証画⾯にログイン後、無事AppStreamにリダイレ クトされることを確認 https://adfs.nozaki2.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=RPID%3Dhttps%253A%252F %252Fsignin.aws.amazon.com%252Fsaml%26RelayState%3Dhttps%253A%252F%252Fappstrea m2.ap-northeast- 1.aws.amazon.com%252Fsaml%253Fstack%253Dnozakilab2stack2%2526accountId%253DAWSア カウントID
2.改良1︓SAML 2.0 マルチスタック アプリケーション カタログ 13 URLにスタック名が⼊っていると、1URL︓1スタック固定になっているので、スタックごとにURLを作成す る必要があります。 そこで、SAML 2.0
Multi-Stack Application Catalog により、単⼀のリレー状態URLから複数のスタックへ のアクセスを有効にするマルチスタックアプリケーションカタログという機能を使います。アプリケーショ ン資格が1つ以上のアプリケーションとユーザーに⼀致したすべてのスタックが表⽰されるようになります。 1. IAMポリシーの変更 “Resource”: “arn:aws:appstream:ap-northeast-1:AWSアカウントID:stack/*" 2. リレーステートURLからスタック名を削除 https://adfs.nozaki2.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=RPID%3Dhttps%253A%252F%252Fsignin .aws.amazon.com%252Fsaml%26RelayState%3Dhttps%253A%252F%252Fappstream2.ap-northeast- 1.aws.amazon.com%252Fsaml%253Fstack%253Dnozakilab2stack2%2526accountId%253DAWSアカウントID 3. 2.のURLにアクセスしてスタック名が表⽰されることを確認
3.改良2︓グループによるアプリの表⽰制御 14 ADのグループ情報から、AppStreamで表⽰させるアプリの制御を⾏えます。 例)admin2グループに属する⼈はFirefoxが表⽰される。userグループに属する⼈はChromeが表⽰される という感じで、ユーザーのグループ毎にアプリの出し分けができます。これにより、ユーザーごとに AppStream内で利⽤可能なアプリを制御することが可能になります。 1. AD側︓admin、test01ユーザーの所属グループの確認 2. AWS側︓AppStream
StackのApplication Entitlementsの設定 3. ADFS-roleの信頼ポリシーで「sts:TagSession」を追加 4. ADFS側︓グループメンバーシップの設定 5. AppStreamにアクセスして検証
4.改良3︓AppStreamクライアント経由でAppStreamに直接アクセス 15 ブラウザ以外に、AppStreamクライアントを利⽤して、専⽤のURLを⼊⼒することで、AppStreamに直接ア クセスすることもできます。これにより、ブラウザを使⽤してAppStreamにアクセスした場合には利⽤でき ない機能やメリットがあります。 (参考)Windows ⽤ AppStream 2.0 クライアントアプリケーションの機能
※ADドメイン参加したスタックからのストリーミングURL作成は⼤変複雑となるため、今回は対象外とします。 1. AWS︓AppStreamスタックから、[Create Streaming URL]でURLを⽣成 2. Windowsマシンで https://clients.amazonappstream.com/ からAppStream Windows Clientをダウ ンロードしてインストール 3. AppStream Windows Clientを起動して、1.のURLを⼊⼒ 4. AppStreamにアクセスできることを確認
5.改良4︓AppStreamへのアクセスをAppStreamクライアントにリダイレクト 16 ストリーミングセッションをウェブブラウザから AppStream 2.0 クライアントにリダイレクトする に従 い、今度はブラウザ⇨AppStreamクライアント経由でAppStreamにアクセスしてみます。これにより、ユー ザーはAppStreamクライアントを意識することなく、ブラウザに⽂字列を⼊れるだけでAppStreamに直接ア クセスできます。
1. スタックからストリーミングURLを作成 2. 1.をbase64エンコードして⽣成された⽂字列を、「amazonappstream:」の後に繋げる 3. 2.をAppStreamクライアントが⼊っているWindowsのブラウザ欄に⼊⼒する 4. 「Amazon AppStream 2.0を開く」を選択し、AppStreamクライアントが起動してAppStreamにアク セスしに⾏く
6.改良5︓AppStream fleetをマルチセッションで構成 17 昨年10⽉に発表されたマルチセッションフリート機能により、1つのAppStreamインスタンスで複数のエン ドユーザーセッションをホストしてインスタンスリソースをより有効に活⽤できるようになりました。 〔条件〕 • フリートタイプがAlways-On または On-Demand
• Windows 2019のみ(2016や2022、Linuxは不可) • 2023年5⽉15⽇以降にリリースされたベースイメージとマネージドイメージの更新 〔ユースケース〕 フリート上限に気にすることなくフリートを節約でき、起動速度(約10分)を短縮したい場合 (参考) https://docs.aws.amazon.com/appstream2/latest/developerguide/set-up-stacks- fleets.html#set-up-stacks-fleets-create
感想・まとめ 18 • リレーステートURLからスタック名を省略すると、マルチスタックアプリケーションカタログが実現でき る • Application Entitlementsを使えば、所属グループによって表⽰させるアプリを制御できる • AppStreamクライアント経由でAppStreamに直接アクセスできる
• マルチセッションフリートを構成することで、複数ユーザーを同時接続できる • ADFS経由でAppStreamに接続するには、要求発⾏ポリシーの設定を慎重に正確に⾏ってください。
None