hayashier Tech Blogs
  • hayashier Tech Blogs
  • Author's Books
    • 実践Redis入門 (日本語版)
    • 実践Redis入門 (한국어판)
  • Top Contents
    • Dive Deep Redis
    • Dive Deep Memcached
    • Kubernetes 入門
    • TCP 入門
    • TLS 入門
    • GPG 入門
    • サービス障害が発生した場合の対応方法
    • よく使うトラブルシューティング コマンド実行例 まとめ
    • コピペで使えるELBのアクセスログ解析による事象分析 (ShellScript, Athena)
  • Containers
    • Docker 入門
    • Nomad 導入
    • Dockerを利用してさっと検証環境構築
  • Kubernetes
    • Kubernetes 入門
    • Kubernetes 導入 with Amazon Linux 2
    • EKSを利用してKubernetesでSpring MVCをデプロイ (NLB + Auto Scaling)
  • Load Balancer
    • ALB 認証 導入
    • TLS extensions support with ALB
    • ELB(CLB,ALB,NLB)の種類ごとのHTTPレスポンスの違い
    • ELB(CLB) で WebSocket 通信
  • RDBMS
    • PostgreSQL DBA 入門
    • RDBMS Benchmark Get Started
    • RDBMS サンプルデータ生成 Get Started
    • RDS PostgreSQL Extensions Get Started
    • RDBMS Engine Inspection for Troubleshooting
  • Redis
    • Dive Deep Redis ~ 入門から実装の確認まで
    • Dive Deep Redis Internals ~ GETコマンド実行時の動作 ~
    • RedisのString型は今でも本当に512MBが上限か?
    • Redis 公式ドキュメント まとめ
    • Redis / Memcached Source Code Reading - Overview -
  • Memcached
    • Dive Deep Memcached ~ 入門から実装の確認まで ~
    • Dive Deep Memcached ~ SETコマンド実行時の動作 ~
    • Memcached 公式ドキュメント まとめ
    • memtier_benchmark + memcached-tool の導入
    • Redis / Memcached Source Code Reading - Overview -
  • Hadoop
    • Hadoop Get Started
  • Networking
    • TCP 入門
    • TLS 入門
    • ksnctf: HTTPS is secure, Writeup (TLS 通信解読)
    • オンプレ側ルーター(Cisco 1812J, Juniper SRX210, YAMAHA RTX 1210)から Direct Connect へ BGP 設定
  • Software
    • アルゴリズムとデータ構造 入門
    • デザインパターン 入門
    • ソフトウェアテスト 入門
  • System Admin
    • Shell Script 入門
    • サービス障害が発生した場合の対応方法
    • よく使うトラブルシューティング コマンド実行例 まとめ
    • コピペで使えるELBのアクセスログ解析による事象分析 (ShellScript, Athena)
    • GPG 入門
    • Operation Misc
  • Development
    • ローカル環境のプログラミング言語のバージョンを切り替え macOS
    • /usr/local/Cellar/pyenv/1.2.21/libexec/pyenv: No such file or directoryのエラーの対処方法
  • AWS
    • AWS Misc
    • AWS CLI, AWS SDKのリトライ処理の実装について
    • AWS CLI バージョンアップでエラー発生を解消
    • Elastic Beanstalkで稼働しているアプリケーション(Ruby, Sinatra)をAmazon Linux AMIからAmazon Linux2へ移行
    • Elastic Beanstalkでインスタンス入れ替え後にnginxのデフォルトの画面が表示されてしまう問題の対応
    • Amazon Lightsail に SSL 証明書設置 with Let's Encrypt (自動更新)
    • Amazon Lightsailで10分で作るお手軽Markdownで書く独自ドメインのブログサイト構築
    • Lambdaをローカルでテスト(with Docker)
    • ECS + ALB でダウンタイムなしでデプロイ
    • `Repository packages-microsoft-com-prod is listed more than once in the configuration`のメッセージの解消方法
  • Others
    • Pandoc 導入
    • textlint + prh による文章校正
    • 紙書籍をPDFに変換
    • Sphinx 導入
    • さくっとPocketのブックマークをはてなブックマークに移行
    • Macが突然起動しなくなった話
    • Macでターミナルが開かない (zsh編)
    • ホスト型 IDS Tripwire とネットワーク型 IDS Snort の導入 with CentOS 6
    • JMeter 導入
    • Squid 導入 with Amazon Linux AMI
    • Spring MVCを導入 (+ MySQL, Redis)
    • 外資系企業で働いている場合の確定申告方法 (RSU考慮)
Powered by GitBook
On this page
  • ALB 認証
  • OIDC
  • Cognito
  • ユーザープール
  • フェデレーテッドアイデンティティ
  • ALB のリスナールール編集
  • 参考
  1. Load Balancer

ALB 認証 導入

導入

ALB 認証

OIDC

Google 認証で Gmail のメールアドレスによるログイン

  1. Google APIsへアクセス https://console.developers.google.com/apis/credentials

    • "認証情報を作成" から "OAuthクライアントID" を選択、承認済みのリダイレクト URI は、https://<domain name>/oauth2/idpresponse

    • 作成されるクライアント ID とクライアントのシークレットはコピーして控えておく。

  2. ALB のリスナールール編集

    • ALB のリスナールール編集で、IF パスが / , THEN 認証を OIDC として、以下の curl コマンドの実行結果に対応させて値を入力。(発行者はissuer,認証エンドポイントはauthorization_endpoint,トークンエンドポイントはtoken_endpoint,ユーザー情報エンドポイントはuserinfo_endpoint)

    • クライアント IDとクライアントのシークレットはGoogle APIsで認証情報作成時に控えておいた値

$ curl https://accounts.google.com/.well-known/openid-configuration
{
 "issuer": "https://accounts.google.com",
 "authorization_endpoint": "https://accounts.google.com/o/oauth2/v2/auth",
 "token_endpoint": "https://www.googleapis.com/oauth2/v4/token",
 "userinfo_endpoint": "https://www.googleapis.com/oauth2/v3/userinfo",
 "revocation_endpoint": "https://oauth2.googleapis.com/revoke",
 :

上記仕組みのフローの詳細は、こちらの URL より参照 https://www.exampleloadbalancer.com/auth_detail.html

Cognito

ユーザープール

  • 名前 プール名を "MyUserPool" のように入力

  • 属性 "エンドユーザーをどのようにサインインさせますか?"で"E メールアドレスおよび電話番号"を選択 "どの標準属性が必要ですか?"で"email"を必須に選択。

  • ポリシー 以下のように入力して、「次のステップ」を選択 "パスワードの強度はどれくらいを要求しますか?"で、最小長を6 "ユーザーに自己サインアップを許可しますか?"を"ユーザーに自己サインアップを許可する" "管理者が作成したユーザーアカウントが使用されない期間がどれくらい続くと、有効期限が切れますか?"を有効期限 (日数)を7

  • MFAそして確認 "多要素認証 (MFA) を有効にしますか?": オフ "E メールまたは電話番号の検証を要求しますか?": Eメール "Amazon Cognito に対して SMS メッセージの送信を許可するロールを提供する必要があります。": "MyUserPool-SMS-Role"で"ロールの作成"

  • アプリクライアント "アプリクライアント名": MyAppClient "トークンの有効期限を更新 (日)": 30 "クライアントシークレットを生成"を選択 "アプリクライアントの作成"を選択。

  • サイドメニューの"アプリクライアントの設定"を選択。 有効な IP プロバイダ: Cognito User Pool コールバック URL: https://<domain name>/oauth2/idpresponse "許可されている OAuth フロー": Authorization code grant "許可されている OAuth スコープ": openid

  • サイドメニューの"ドメイン名"を選択 "ドメインのプレフィックス": https://my-hayashier-domain.auth.us-west-2.amazoncognito.com "変更の保存"

フェデレーテッドアイデンティティ

  • ステップ 1: ID プールを作成する 以下のように入力し、"プールを作成" を選択 ID プール名: My ID Pool 認証プロバイダー: Cognito

  • ユーザープール ID: <region-id>_XXXXXXXXX (ユーザープールで MyUserPool を選択した状態で、サイドメニューから"全般設定"を選択し、プールIDを確認)

  • アプリクライアント ID: xxxxxxxxxxxxxxxxxxxxxxxxxx (ユーザープールで MyUserPool を選択した状態で、サイドメニューから"アプリクライアント"を選択し、アプリクライアントID)

"Your Cognito identities require access to your resources "に対し、"許可"を選択

ALB のリスナールール編集

ALB のリスナールール編集で、IF パスが / , THEN 認証を Amazon Cognito として、Cognito ユーザープール(Cognitoのユーザープールの画面で、サイドメニューの全般設定からプール ID の項目)。アプリクライアント(Cognitoのユーザープールの画面で、サイドメニューのアプリクライアントの画面の ID の項目)の値を入力。

実際のテストは、Congito のユーザープールでユーザーを作成しておいてテスト。

参考

https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/listener-authenticate-users.html https://aws.amazon.com/blogs/aws/built-in-authentication-in-alb/ https://dev.classmethod.jp/cloud/add-google-authenticate-your-webapp-on-alb/ https://dev.classmethod.jp/cloud/alb-cognito-user-pool/

PreviousEKSを利用してKubernetesでSpring MVCをデプロイ (NLB + Auto Scaling)NextTLS extensions support with ALB

Last updated 1 month ago