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
260
第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
第168回 雲勉 JITNAの使い方とハマったポイントについて語る回
iret
0
15
第167回 雲勉 エージェント開発を加速する Agent Development Kit 入門
iret
1
25
第166回 雲勉 コードを読んで理解する AWS Amplify Gen2 Backend
iret
0
29
第165回 雲勉 Google Agentspace について
iret
0
25
第164回 雲勉 Agent Development Kit と MCP Toolbox for Databases で MCP 連携してみた
iret
1
45
第163回 雲勉 CircleCIで複数リポジトリ間のパイプラインを連携する
iret
1
35
第162回 雲勉 比較して学ぶ AWS Amplify Gen 2
iret
0
49
第161回 雲勉 Amazon Kinesis Data Streams と Amazon Data Firehose を使ってみよう
iret
0
47
第160回 雲勉 それ、AWS Step Functions で置き換えれん?
iret
0
75
Other Decks in Technology
See All in Technology
モバイル界のMCPを考える
naoto33
0
400
AWS Organizations 新機能!マルチパーティ承認の紹介
yhana
1
240
2025-07-06 QGIS初級ハンズオン「はじめてのQGIS」
kou_kita
0
140
開発生産性を組織全体の「生産性」へ! 部門間連携の壁を越える実践的ステップ
sudo5in5k
1
5k
How Community Opened Global Doors
hiroramos4
PRO
1
140
asken AI勉強会(Android)
tadashi_sato
0
160
AWS認定を取る中で感じたこと
siromi
1
150
Lazy application authentication with Tailscale
bluehatbrit
0
150
KubeCon + CloudNativeCon Japan 2025 Recap
ren510dev
1
350
生成AI活用の組織格差を解消する 〜ビジネス職のCursor導入が開発効率に与えた好循環〜 / Closing the Organizational Gap in AI Adoption
upamune
6
4.9k
改めてAWS WAFを振り返る~業務で使うためのポイント~
masakiokuda
1
220
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
220
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
Unsuck your backbone
ammeep
671
58k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
53k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
5
250
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
810
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
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