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
200
第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
第154回 雲勉 AWS Codeシリーズ盛り上げ隊 ~ Codeシリーズは砕けない ~
iret
0
31
第153回 雲勉 トラシューが秒で終わる新機能 Amazon Q Developer operational investigations
iret
0
48
第150回 雲勉 AWS AppSyncではじめるGraphQL体験
iret
0
41
第151回 雲勉 プロジェクトのドキュメントにおける課題をAmazon Bedrockで解決してみる
iret
0
58
第152回 雲勉 シームレスなマルチリージョンへの移行と検討 ~Amazon EKSとAWS Global Acceleratorを使用した環境〜
iret
0
52
第149回 雲勉 AWS ベストプラクティスの最新と実際 AWS Well-Architected
iret
0
83
第148回 雲勉 Web アプリケーションセキュリティ
iret
0
47
第147回 雲勉 Amazon CloudWatchをウォッチ!
iret
0
62
第146回 雲勉 BLEAを眺めてCDKの書き方について学ぶ
iret
1
70
Other Decks in Technology
See All in Technology
飲食店予約台帳を支えるインタラクティブ UI 設計と実装
siropaca
7
1.7k
現場の種を事業の芽にする - エンジニア主導のイノベーションを事業戦略に装着する方法 -
kzkmaeda
2
2k
個人開発から公式機能へ: PlaywrightとRailsをつなげた3年の軌跡
yusukeiwaki
11
3k
開発組織のための セキュアコーディング研修の始め方
flatt_security
3
2.3k
プロダクトエンジニア構想を立ち上げ、プロダクト志向な組織への成長を続けている話 / grow into a product-oriented organization
hiro_torii
0
110
オブザーバビリティの観点でみるAWS / AWS from observability perspective
ymotongpoo
8
1.5k
Nekko Cloud、 これまでとこれから ~学生サークルが作る、 小さなクラウド
logica0419
2
960
Amazon S3 Tablesと外部分析基盤連携について / Amazon S3 Tables and External Data Analytics Platform
nttcom
0
130
OpenID Connect for Identity Assurance の概要と翻訳版のご紹介 / 20250219-BizDay17-OIDC4IDA-Intro
oidfj
0
270
Data-centric AI入門第6章:Data-centric AIの実践例
x_ttyszk
1
400
あれは良かった、あれは苦労したB2B2C型SaaSの新規開発におけるCloud Spanner
hirohito1108
2
550
表現を育てる
kiyou77
1
210
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
6
240
Navigating Team Friction
lara
183
15k
Building an army of robots
kneath
303
45k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
12
960
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
A Tale of Four Properties
chriscoyier
158
23k
Statistics for Hackers
jakevdp
797
220k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
The Invisible Side of Design
smashingmag
299
50k
Thoughts on Productivity
jonyablonski
69
4.5k
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