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

AWSで作るセキュアな認証基盤with OAuth mTLS / Secure Authent...

AWSで作るセキュアな認証基盤with OAuth mTLS / Secure Authentication Infrastructure with OAuth mTLS on AWS

2025/04/15
JAWS-UG東京 AWS Community Builders Night
https://jawsug.connpass.com/event/348745/

AWSで作るセキュアな認証基盤with OAuth mTLS

高井 真人
ソフトウェアエンジニア、とか

株式会社カミナシ

April 17, 2025
Tweet

More Decks by 株式会社カミナシ

Other Decks in Technology

Transcript

  1. 自己紹介 高井 真人 X :@manaty0226 GitHub :@manaty226 Zenn :@manaty226 株式会社カミナシでID管理・認証基盤を作っています。

    2025年にセキュリティカテゴリでCBに初選出。 普段はOAuth関連のRFCを読んで実装したりしています。 無線通信(誤り訂正符号)の研究で博士号を取得したので そちら方面の話も好きです。
  2. OpenID ConnectやOAuth 2の仕様概観 OAuth 2.x OpenID Connect JWx関連 RFC 6749

    OAuth 2.0 Authorization Framework OpenID Connect Core 1.0 RFC 7519 Json Web Token (JWT) RFC 7516 Json Web Encryption RFC 7515 Json Web Signiture RFC 7518 Json Web Algorithm ベストプラクティス RFC 6819 Threat Model and Security Considerations RFC 9700 Best Current Practice for OAuth 2.0 Security RFC draft OAuth 2.0 for Browser-Based Apps 管理エンドポイント RFC 7591, 7592 Dynamic Client Registration RFC 7009 Token Revocation RFC 7662 Token Introspection グラントタイプ拡張 RFC 8693 Token Exchange RFC 8725 Json Web Token Best Current Practicies RFC 8628 Device Authorization RFC 7523 JWT profile grants セキュリティ強化 RFC 7636 PKCE RFC 8705 Mutual-TLS bound AT RFC 9101 JAR RFC 9126 PAR RFC 9449 DPoP RFC 9470 Step Up Authentication 他 OIDC RP-Initiated Logout 1.0 RFC draft OAuth 2.1 Authorization Framework RFC 6750 OAuth 2.0 Bearer Token Usage
  3. どんな解決策がありそうか [1] https://tools.ietf.org/html/rfc8705 RFC8705 Mutual TLS Client Authentication and Certificate-Bound

    Access Token [1] ①クライアント証明書とともに相互TLS接続してデ バイス自身が認証しつつトークンリクエスト ②クライアント証明書に基づきクライアント認証してトークン応答 OAuth mTLSはクライアント証明書を利用した相互TLS接続に基づくクライアント認証と、証明書で 送信者制約したアクセストークンの払い出しと利用のOAuth拡張仕様。 これを利用することで、特定の端末が物理的に窃取されなければ安全なアクセスが可能となる。 端末自体のパスコードロックと組み合わせて所有+知識認証の運用も可能。
  4. AWSにおける内製認証基盤 with OAuth mTLSの実現 AWSにおけるネットワークサービスと相互TLS接続機能の対応状況 ※2025/04/15時点の情報です CloudFront API Gateway ALB

    [2] OAuth mTLSを実現するためにAWSでできること、できないこと: https://kaminashi-developer.hatenablog.jp/entry/2024/11/18/oauth-mtls-on-aws
  5. AWSにおける内製認証基盤 with OAuth mTLSの実現 AWSにおけるネットワークサービスと相互TLS接続機能の対応状況 ※2025/04/15時点の情報です CloudFront API Gateway ALB

    [2] OAuth mTLSを実現するためにAWSでできること、できないこと: https://kaminashi-developer.hatenablog.jp/entry/2024/11/18/oauth-mtls-on-aws
  6. AWSにおける内製認証基盤 with OAuth mTLSの実現 AWSにおけるネットワークサービスと相互TLS接続機能の対応状況 ※2025/04/15時点の情報です CloudFront API Gateway ALB

    信頼ストア 認可サーバー 失効検証 [2] OAuth mTLSを実現するためにAWSでできること、できないこと: https://kaminashi-developer.hatenablog.jp/entry/2024/11/18/oauth-mtls-on-aws
  7. AWSにおける内製認証基盤 with OAuth mTLSの実現 AWSにおけるネットワークサービスと相互TLS接続機能の対応状況 ※2025/04/15時点の情報です CloudFront API Gateway ALB

    信頼ストア 認可サーバー 失効検証 トラストストアで検証 パススルー 信頼ストア 認可サーバーで証明書検証 [2] OAuth mTLSを実現するためにAWSでできること、できないこと: https://kaminashi-developer.hatenablog.jp/entry/2024/11/18/oauth-mtls-on-aws
  8. AWSにおける内製認証基盤 with OAuth mTLSの実現 AWSにおけるネットワークサービスと相互TLS接続機能の対応状況 ※2025/04/15時点の情報です CloudFront API Gateway ALB

    信頼ストア 認可サーバー 失効検証 トラストストアで検証 パススルー 信頼ストア 認可サーバーで証明書検証 [2] OAuth mTLSを実現するためにAWSでできること、できないこと: https://kaminashi-developer.hatenablog.jp/entry/2024/11/18/oauth-mtls-on-aws 単一のリソースでクライアント証明書あり/なしの クライアントどちらも収容するのは難しそう...
  9. AWSにおける内製認証基盤 with OAuth mTLSの実現 相互TLS接続用のALBと通常のTLS接続用ALBの2つから認証基盤のECSをターゲットに設定。 実はRFC 8705にもUX観点で相互TLS用のエンドポイントを分離した方がいいよと書いてあった。 Authorization servers supporting

    both clients using mutual TLS and conventional clients MAY chose to isolate the server side mutual-TLS behavior to only clients intending to do mutual TLS, thus avoiding any undesirable effects it might have on conventional clients. 信頼ストア・失効証明書リスト 通常のTLS接続用ALB 相互TLS接続用ALB