EC2に構築したWebサーバーにALBを配置して、認証の設定をOneLoginと行うことで、Webサーバーのログイン認証をOneLoginに統合して管理することが可能です。
前提条件
OneLogin側のアカウントの準備やWebサーバーやALB自体の構築がすでにされていることが前提です
OneLogin側の設定
OneLoginの管理画面に移動し"Applications > Application"を開き"Add App"を開きます。
"Configuration"タブを開き、以下の2つの項目を設定して、"SAVE"を押します。
- Login Url → ALB に設定しているドメイン
- Redirect URI's → ALBに設定してるドメイン + /oauth2/idpresponse
"SSO"タブを開き"Token Endpoint"を"POST"に設定します。
そして、"Client ID"と"Client Secret"を控えて"SAVE"を押します。
※"Show client secret"を押すことで、"Client Secret"は確認できます。
"Well-known Configuration"を新しいタブで開くと、"JSON"が表示されるので、その内容を控えておきます。
"Access"タブから、利用するユーザーのロールを指定して"SAVE"を押します。
ALBの設定
AWSアカウントにログイン後、"EC2 > ロードバランサー"を開き、該当ALBを選択して、新規でリスナーを追加する場合は"リスナーの追加"、既にあるリスナーを変更する場合は"編集"を押します。
※今回の手順では"リスナーの追加"で行います。
アクションの追加から"認証..."を選択します。
認証を"OIDC"に設定し、該当項目にOneLogin設定時に取得した値を入力して、"✓"を押します。
パラメータは下記の表を参考に入力してください。
OneLogin側の表示名 | ALB側の表示名 |
issuer | 発行者 |
authorization_endpoint | 認証エンドポイント |
token_endpoint | トークンエンドポイント |
userinfo_endpoint | ユーザー情報エンドポイント |
ClientID | クライアントID |
Secret | クライアントのシークレット |
次に、認証後に転送する設定を行います。"アクションの追加 > 転送先..."を押します。
該当するターゲットグループを選択して"✓"を押します。
最後に証明書の設定を押して"保存"を押します。
動作確認
ALBのドメインにアクセスすると、以下のようにOneLoginにリダイレクトされ、認証が求められるので、認証を行うことで、該当するWebサイトにアクセスが可能になります。
※OneLogin側で多要素認証の設定をしている場合、多要素認証が求められます。