DuoでAWSとSumo Logicに2段階認証でシングルサインオンしてみた

2017.08.25

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

まいど、大阪の市田です。
以下の記事でご紹介した「Duo Security」について、今回はAWSと他のサービスに対するシングルサインオンを試してみたいと思います。

DuoでAWSに2段階認証でシングルサインオンしてみた

SSOの確認

今回は「Sumo Logic」を検証の対象として、前回のAWSの場合と同じようにActive Directoryのユーザ情報でアクセスできることを確認してみたいと思います。

概要

  • Sumo Logicのトライアルアカウントの作成
  • Duo Access Gatewayの設定
  • Sumo Logicの設定
  • Duoの設定
  • Duo Access Gatewayへアプリケーション保護の追加
  • SSOの確認

構成

構成は以前のものを引き続き利用するので、前回からの変更点はありません。

やってみた

それでは早速試してみたいと思います。手順としては、下記のドキュメントに沿って行います。

Duo Protection for Sumo Logic: Duo Security

Sumo Logicのアカウント作成

Sumo Logicは有料サービスですが、30日間フリーのトライアルアカウントが提供されていますので、まずはアカウントを作成しましょう。
具体的な作成方法は下記を参考にして下さい。

sumologicを試してみました

Duo Access Gatewayの設定

まずはDuo Access Gateway側で設定を行います。
今回もActive Directoryを利用しますが、Sumo LogicのSSOに必要な属性はMail属性です。この属性は既に設定済みなので、特に作業は不要です。設定されていなければ設定しておきましょう。

次にSumo Logicに登録する為のトークン署名の証明書をダウンロードします。既にAWSとの連携時にダウンロード済みであれば不要です。

Duo Access Gatewayの画面で「Applications」をクリックします。

100-sumo-appli

Applicationsの画面にある「Metadata」の欄から「Download certificate」をクリックしてdag.crtというファイルをダウンロードしてください。

101-duo-cert

その下側にある各URLを手元に控えておきます。この後、Sumo Logic側にこのURLを入力します。

102-dag-metadata

Sumo Logicの設定

作成したアカウントでSumo Logicにサインインして下さい。

103-login-sumologic

セットアップウィザードは左上のボタンをクリックしてスキップします。

104-exit-wizard

画面上部のメニューから「Manage」をクリックします。
下記は従来のUIですが、横の「Try the New UI」をクリックするとデザインが変わります。どちらでも直感的に操作できるので好みに合わせて選んで下さい。

105-manage

「Manage」から「Security」をクリックします。

106-sumo-security

画面の右上にある「SAML」をクリックして下さい。他はとりあえずデフォルトのままで構いません。

107-sumo-saml

次の画面では下記の内容で設定します。

設定項目 設定内容 説明
Configuration Name Duo_Acceess_Gateway 適当な名前をつけて下さい
Issuer 「Entity ID」のURL Duo Access Gatewayで確認した「Entity ID」のURLです。
Authn Request URL 「SSO URL」のURL Duo Access Gatewayで確認した「SSO URL」のURLです。
X.509 Certificate 「dag.crt」の内容 Duo Access Gatewayからダウンロードしたトークン署名の証明書の内容をコピペします。
On Demand Provisioning(Optional) チェックを入れる -
On Demand Provisioning Roles Administrator 要件に応じたRole名を指定して下さい。(下記「Role設定の補足」項目を参照)
Logout Page(Optional) チェックを入れて「Logout URL」のURLを入力 Duo Access Gatewayで確認した「SSO URL」のURLです。

108-config-saml20

保存すると元の画面に戻るので、再度「SAML」をクリックして下さい。

109-saml

次の画面の「Authentication Request」「Assertion Consumer」のURLを控えておきます。終わったら「X」をクリックして閉じて下さい。

110-auth-assert-url

Role設定の補足

先程、Sumo Logic側でSAML2.0の設定を行った時に「On Demand Provisioning Roles」を設定しました。
これは、AWSのIAM Roleに似たもので、「ここで指定したRoleでSumo Logicにログインする」という指定になります。

デフォルトでは「Administrator」と「Analyst」という2つのRoleが用意されています。確認するには下記のように管理画面から「Roles」をクリックすると開くことが出来ます。

205-role-sumologic

206-role-admin

必要に応じてRoleを追加し、SAMLの設定に指定して下さい。今回は検証の為に「Administrator」を指定しました。
また、この設定が無いと、どのRoleでログインするのか指定が無いため下記のようなエラーになります。

200-sumologic-no-role

Duoの設定

次はDuo管理画面上での設定です。(Duo Access Gatewayではないことに注意して下さい。)
管理画面から「Applications」をクリックして、「Protect an Application」をクリックします。

111-duo-admin-protect-app

検索窓で「sumologic」で検索して、Sumo Logicが出たら「Protect this Application」をクリックして下さい。

112-select-sumologic

次の画面で、先程Sumo Logicで控えておいた「Authentication Request」「Assertion Consumer」のURLを入力して保存します。

113-duo-config-sumologic

保存できると、コンフィグファイル(jsonファイル)のリンクが現れるので、ダウンロードしておきましょう。

114-download-config

Duo Access Gatewayへ保護アプリケーション追加

先程ダウンロードしたコンフィグファイルをDuo Access Gatewayにアップロードして、保護対象のサービスを追加します。

115-dag-upload-json

アップロードできると下記のようにSumo Logicが追加されて、SSO用のURLが生成されます。

116-dag-add-sumo-app

設定作業は以上です。

SSOの確認

では、最初にAWSにサインインしてみます。
URLは先程のDuo Access GatewayにあったAWS用の「Login URL」です。初回はADに登録しているユーザ情報を入力します。

125-login

前回同様にDuoのモバイルアプリ宛にプッシュ通知を送ります。

117-duopush

モバイルアプリに来たリクエストをタップします。こちらも前回の記事の通りです。

118-mobile-request

承認してAWSにサインインします。

121-aws-saml-mobile

AWSにサインイン出来ました。

123-aws

同様に、Sumo LogicのSSO用URLにアクセスして、モバイルアプリでリクエストを承認します。今回はADのユーザ情報の入力がありません。

117-duopush

122-saml-aws-mobile-approve

モバイルアプリの認証だけでSumo Logicにもアクセスすることが出来ました。

124-sumologic

最後に

Duoを使うと複数のサービスに対してSSOでアクセスすることが出来ました。
事前準備としてDuo Access GatewayやAD FSなどを用意する必要がありますが、基盤となる環境を作ってしまえば色んなサービスを簡単に追加できるのは便利だなと感じました。