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

Amazon Quick on DesktopがIAM Identity Centerで動かない理由

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for YukiOgawa YukiOgawa
September 10, 2026

Amazon Quick on DesktopがIAM Identity Centerで動かない理由

Avatar for YukiOgawa

YukiOgawa

September 10, 2026

More Decks by YukiOgawa

Other Decks in Technology

Transcript

  1. A m a zon Q u i c k o

    n D e s k t op が I A M Id e n t it y C e n t e r で 動 か な い 理由 外部IdPなしでEnterprise Sign-Inを通すまで IoT・ライフソリューション新事業推進センター 小川 雄喜 2026/9/10(木) AWS Community Builder Kansai主催 Amazon Quick & Kiro Festival!!
  2. スピーカー紹介 【所属&経歴】 2010~2019 研究所 • クラウドどころかコーディングもしていませんでした・・・ 2019~2020 アメリカでの海外研修 • AWSを初めて触りました

    おがわ ゆうき 小川 雄喜 • AWS Community Builders 2025/2026 • Japan All AWS Certifications Engineers 2025/2026 • Japan AWS Top Engineers 2020~2026 新設組織でプラットフォーム開発 • 初めは仕様書作成だけ、そこからコーディング→クラウドアーキ テクチャ設計と広がっていきました • 新設組織だったため、社内ハッカソンやLT会などの盛り上げイ ベントも担当するようになりました 2026.4~ CCoE/AICoEの専任 2025/2026 • CCoE:主にAWSを中心とした勉強会、各種SaaS製品のチー ム展開など • AICoE:Kiroを中心としたAI講習会を開催 ©Mitsubishi Electric Corporation 2
  3. Amazon Quick(Web)は、IAM Identity CenterをIdPにできる Enterprise Sign-inにより、組織OIDC IdPと連携したSSOログインが可能! 組織で使っている 外部IdPを利用できる! SSOログイン

    Microsoft Entra ID Google Workspace Ping Identity Okta 外部IdPを使わず、AWSサービス内の AWS環境に閉じて ユーザー発行できる! IAM Identity Center(IIC)を使って ログインすることも可能 AWS IAM Identity Center ©Mitsubishi Electric Corporation 4
  4. Quick on Desktopは、IICだけではサインインが通らない! • Quick on Desktopは、OIDC IdPに対して、 Authorization Code

    + PKCEフローで認証を行う • しかし、IICは標準OIDCフローを公開していないため、 IICを直接Quick on DesktopのOIDC IdPに指定 できない • /authorize や /token などは外部未公開 • OAuth 2.0 Device Authorization Grant (RFC 8628のみ実装) • また、AWS公式でも、 IIC利用時のセットアップ手順は 現時点で準備されていない! ©Mitsubishi Electric Corporation 5
  5. じゃあ、Cognito User Pool を OIDC IdP にしたらいける? Cognito は、 offline_access

    スコープ非対応 GET https://idp.example.com/oauth2/authorize ?client_id=<quick-desktop-client-id> • リフレッシュトークンを得るために offline_access スコープをリクエスト &response_type=code • Cognitoは offline_access を含むリクエストを拒否してしまう &scope=openid profile email offline_access • Cognitoは openid/profile/emailなどを標準スコープとして対応 &code_challenge_method=S256 &redirect_uri=<registered-redirect-uri> &code_challenge=<code_challenge> &state=<state> Authorization Code + PKCE 認可フローリクエスト /authorize へのリクエストから、offline_access スコープだけ除去すればよい? • Cognitoは、スコープではなくグラントとしてリフレッシュトークンを返し、Quickはリフレッシュ トークンが応答されることで満足 • リフレッシュトークンはグラントタイプで決まり、Cognito と Quick はAuthorization Code + PKCE で対応(IICは Device Grantのみだった) • リフレッシュトークンの利用は offline_access のユースケースに限定されず、認可サーバーはこ の仕様の範囲外の文脈でリフレッシュトークンを付与してもよい(OpenID Connect Coreより) ©Mitsubishi Electric Corporation 7
  6. 実装アーキテクチャ API GatewayをQuickからのエンドポイントとし、Lambdaでスコープ除去 • デスクトップアプリで、Enterprise Sign-In(Continue with SSO)を実行 • 管理コンソールのExtension

    accessで、認証エンドポイントとトークンエンドポイントにAPI Gatewayの URLを指定。発行者URL、JWKS URI、クライアントIDはCognitoを指している Amazon Quick on Desktop • LambdaをHTTPSで公開。Lambda Function URLでも対応可。 • 必要に応じて、CloudFrontを前段においてWAF適用など、セキュリティ要件追加 Amazon API Gateway • /oauth2/authorize:offline_accessスコープを除去して、Cognitoへ302リダイレクト • /oauth2/token:Cognitoへの中継 • /oauth2/userInfo:AuthorizationヘッダーごとCognitoへ中継 AWS Lambda • /.well-known/*:OIDCメタデータ応答、JWKS中継 • パブリッククライアント(シークレットなし)。サインイン画面の提供。 Amazon Cognito ©Mitsubishi Electric Corporation 8
  7. Cognito と IIC をSAMLで連携すれば、ユーザー管理は楽チン! • CognitoとIICをSAML 2.0で接続し、Cognitoでのユーザー管理は不要 • ユーザー管理はIAM Identity

    Centerだけで完結する Amazon Cognito AWS IAM Identity Center AWSアカウントによっては、IIC のアプリ追加で SAML 選択画面がない? SAML 2.0を選択できるAWSアカウント ©Mitsubishi Electric Corporation 外部OAuth2.0の設定が求められるAWSアカウント 9
  8. IAM Identity Center って2種類あるんやで? • カスタム SAML 2.0 アプリは組織インスタンスでしか作れない •

    次のコマンドで管理アカウントのIDを確認できるため、自分のアカウントIDと比較して判断 aws organizations describe-organization --query Organization.MasterAccountId ©Mitsubishi Electric Corporation 10
  9. 実装上でのハマりポイント 1 Extension access と Extension は別物 Quick Web上の管理コンソールで Extension

    access(OIDC接続情報)を登録し、 Quick Web上の通常画面で Extension(拡張機能)を作成する。 特にExtension作成を忘れると、Quick Desktopのエンタープライズサインインができない。 2 メールアドレスは大文字小文字まで完全一致 QuickとCognitoは別々のサービスで、情報を共有しているわけではない。 Quick上が [email protected] 、Cognito 側が [email protected] だと、認証は成功するが “User not found” となる。 Quickがトークンのemailをもとに、Quickのユーザー一覧から同じEmailを持つユーザーを探すが、見つからないため。 3 ユーザー追加は3か所必要 QuickがIAMフェデレーション方式のため、①IIC → ②Quick → ③Cognito のすべてにユーザー登録が必要。 組織インスタンスのIICでSMAL連携すれば、③Cognitoは不要となる。 アカウントインスタンスで、Quick利用人数が増えるならスクリプト化を推奨。 ©Mitsubishi Electric Corporation 11
  10. 余談: 課金はどこに乗るのか 管理アカウントに SAML アプリを作っても、課金先はメンバーアカウントのまま 項目 課金先 Quick のライセンス Quickサブスクリプションを持つメンバーアカウント

    IAM Identity Center 無料 管理アカウントの SAML アプリ 無料(認証を仲介するだけでQuickリソースは作られない) Cognito / API Gateway / Lambda メンバーアカウント(ほぼ無視できる額) ©Mitsubishi Electric Corporation 12
  11. まとめ Quick on Desktop で IIC ログインができなかった理由 • IAM Identity

    Center は Device Authorization Grant のみ公開 • Cognito は offline_access をサポートしていない 実装内容 • Quickから API Gateway を呼び出し、連携した Lambdaで offline_access を除去 • 組織インスタンスであれば、Cognito と IIC SAML で連携 • メンバーアカウントであれば、Cognito でユーザー管理し、IICとQuickのメールアドレスを一致させる Quick展開について • Quickを社内・部門内で広めるなら、会社利用の外部IdPを利用したほうが良い • KiroやQuickとツールが増えると混乱し、AI利用コストもかかるので、部門ごとに展開範囲を検討すべき ©Mitsubishi Electric Corporation 13