LoginSignup
11
4

More than 1 year has passed since last update.

ALBの認証機能でお手軽SSOを実現する

Last updated at Posted at 2021-12-23

ALBには認証機能が備わっています。これを利用することで、簡単にシングルサインオン を実現できます。

image.png

選択可能な認証方式は2つです。

  1. Amazon Cognitoとの連携
    • SAML連携などの企業ID連携や、FaceBook、GoogleなどのソーシャルIdPもCognitoのユーザプールを経由すれば可能
  2. OpenID Connect (OIDC) に準拠する ID プロバイダー (IdP) と直接連携

今回は2を利用して、AzureADと連携してみます。

AzureAD

1. アカウント作成

以下の無料アカウントを使ってAzureADを構築します。

2. アプリの登録

AzureADにはテナント単位でアプリを登録でき、これを介してOIDC連携が可能となります。
下記画面でアプリを登録します。

また、設定画面の「リダイレクトURL」は以下とします。

  • https://{ALBのドメイン}/oauth2/idpresponse

image.png
スクリーンショット 2021-12-23 22.05.11.png

3. シークレットの登録

シークレット情報を登録します。ALBのルール作成時に必要となるので値は控えておきます。
image.png

4. エンドポイントの確認

作成したアプリのエンドポイントを確認します。
image.png

ALB

5. リスナー設定

3のエンドポイント情報を元にALBのリスナールール設定をします。
発行者、ユーザ情報エンドポイントは以下を参考にしてください。
https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration

スクリーンショット 2021-12-23 23.31.20.png

6. 確認

ALBのドメインにアクセスしてみましょう。
MSサインイン画面が表示され、AzureADのテナントユーザでログインできるようになります。
image.png

ALBのバックエンドには何が渡されるのか?

HTTPヘッダー x-amzn-oidc*にjwt形式でユーザクレームが渡され、検証および情報利用が可能になります。
以下を参考にしてください。
https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/listener-authenticate-users.html#user-claims-encoding

まとめ

ALBの認証機能を利用すると、お手軽にOIDCを利用したSSOが実現できます。
自前で実装する必要がなくなるので、活用してみてください。

11
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
4