16
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS SSO をお試す

Last updated at Posted at 2019-02-21

注意点

  • AWS SSOを作成するAWSアカウントはAWS Organizationの親でないといけない
  • 今の所バージニアリージョンのみ

全体の構成図(イメージ)

AWSのブログからの抜粋ですが、今回はIdP(Identity Provider)をAWS SSO、SP(ServiceProvider)をAWSやWordpressとして試します

スクリーンショット 0031-02-23 16.27.02.png

MSAD(Microsoft AD)作成

事前VPC作成

MSADを起動する任意のVPCとサブネットを作成しておく

MSADをマネコンから作成

AWSにログインし、リージョンをバージニアにし、サービスから"DirectoryService"をクリックし、
以下の画面の左メニューの"ディレクトリ"をクリックし、[ディレクトリのセットアップ]をクリック

スクリーンショット 0031-02-21 12.54.53.png

"AWS Managed Microsoft AD"にチェックを入れ、右下の[次へ]をクリック

スクリーンショット 0031-02-21 12.55.03.png

エディションを"Standard Edition"にチェックを入れ、その他以下の値を入力し、[次へ]をクリック
管理者アカウントは、Administratorユーザではありません。AWSにより権限を絞られたAdminユーザです

  • ディレクトリのDNS名
    ue.example.com

  • Adminのパスワード
    任意

スクリーンショット 0031-02-21 12.56.08.png

VPCを任意のものを選び、[次へ]をクリックし、次の画面で[作成]をクリック
必要であれば事前にVPCを作成しておく
作成には20-30分かかる

スクリーンショット 0031-02-21 12.56.59.png

MSAD管理用のWindowsServer(EC2)作成

EC2作成

AMIは以下
Microsoft Windows Server 2019 Base - ami-0410d3d3bd6d555f4

詳細は割愛

MSADへのユーザー追加手順

以下のqiitaの通り、EC2を作成し、RemoteServerToolsの"AD DS and AD LDS Tools"をインストールし、ADのドメインに参加し、参加後にAdminでログインしなおし、Administrative ToolsでADにユーザー追加する

※ AWS公式のMSADへのユーザー追加手順

AWS SSO 作成

マネコンのサービスから"AWS SSO"をクリックし、"ディレクトリの管理"をクリック

スクリーンショット 0031-02-21 14.18.13.png

[ディレクトリの接続]をクリック

スクリーンショット 0031-02-21 14.18.19.png

"Microsoft AD ディレクトリ"にチェックを入れ、既存ディレクトリをさきほど作ったものを選択し、[次へ]をクリック

スクリーンショット 0031-02-21 14.18.30.png

CONFIRMと入力し[完了]をクリック

スクリーンショット 0031-02-21 14.18.50.png

複数AWSマネコンへSSOする設定

AWS SSOの"ダッシュボード"に戻り"AWSアカウントへのSSOアクセスの管理"をクリック

スクリーンショット 0031-02-21 14.29.55.png

ログイン対象のAWSアカウントを選択。今回は2つ
※AWS Organizationの子アカウントにしておく必要がある

スクリーンショット 0031-02-21 14.31.04.png

ADのユーザーを検索してチェックを入れる。今回はuehara

スクリーンショット 0031-02-21 14.31.40.png

[新しいアクセス権限セットを作成する]をクリック

スクリーンショット 0031-02-21 14.32.07.png

"既存の職務機能ポリシーを使用"にチェックを入れ、"AdministratorAccess"を選択し、[作成]をクリック

スクリーンショット 0031-02-21 14.32.24.png

確認し[完了]をクリック
今回は例として管理者権限のアクセス権限セットを渡す

スクリーンショット 0031-02-21 14.32.35.png

AWSアカウントがセットされたことを確認

スクリーンショット 0031-02-21 14.32.58.png

ユーザーポータルにアクセスしログイン確認

スクリーンショット 0031-02-21 14.25.22.png

ログイン後に対象のAWSアカウントの"Management console"をクリック

スクリーンショット 0031-02-21 14.45.36.png

ログイン完了

スクリーンショット 0031-02-21 14.44.48.png

カスタムSAMLアプリとAWS SSO連携

今回はWordpressとAWS SSOを連携させる

WordpressをEC2にインストール

以下の手順でインストールを実施

Wordpressに管理者ログインし、左側メニューの"プラグイン"->"新規追加"をクリックし、検索窓で"saml"を入力し検索、"OneLogin SAML SSO"の[今すぐインストール]をクリックしOneLogin SAML SSOプラグインをインストールする

スクリーンショット 0031-02-23 15.22.36.png

AWS SSO設定

AWS SSOの画面で、左側メニューの"アプリケーション"をクリックし、[新規アプリケーションの追加]をクリック

スクリーンショット 0031-02-23 15.17.11.png

"カスタム SAML 2.0 アプリケーションの追加"をクリック
次の画面で、以下を入力し、[変更の保存]をクリック

  • 表示名: Wordpress 1 (任意)
  • アプリケーション開始URL: http://"wordpress ec2 ip"/wp-admin/
  • アプリケーション ACS URL: http://"wordpress ec2 ip"/wp-login.php?saml_acs
  • アプリケーションSAML対象者: php-saml

スクリーンショット 0031-02-23 15.18.34.png

"割り当て済みユーザー"タブをクリックし、[ユーザー割り当て]をクリック

スクリーンショット 0031-02-23 15.34.35.png

"ユーザー"をクリックし、"uehara"を入力し[接続されたディレクトリを検索]をクリックし、"uehara"にチェックを入れ、[ユーザーの割り当て]をクリック

スクリーンショット 0031-02-23 15.36.04.png

Wordpress saml設定

左側メニューの"設定"->"SSO/SAML Settings"をクリック

スクリーンショット 0031-02-23 15.25.11.png

必要箇所を入れ、[保存]をクリック

  • Enable:チェック
  • IdP Entity id:AWS SSOのアプリケーションWordpress1の"AWS SSO発行者URL"のURL
  • Single Sign On Service Url:AWS SSOのアプリケーションWordpress1の"AWS SSOサインインURL"のURL
  • Single Log Out Service Url:AWS SSOのアプリケーションWordpress1の"AWS SSOサインアウトURL"のURL
  • X.509 Certificate:AWS SSOのアプリケーションWordpress1から証明書ダウンロードし中身貼り付け
  • Create user if not exists:チェック
  • Update user data:チェック
  • Keep Local login:チェック

ATTRIBUTE MAPPING

  • Username:username
  • E-mail:email

保存後、画面右上に"Go to the metadata of this SP"のリンクをクリックし、SP(ServiceProvider,今回はWordpress)のXMLのメタデータをダウンロード

スクリーンショット 0031-02-23 15.41.56.png

AWS SSOでの追加設定

SSOの画面で"アプリケーション"->[設定の編集]をクリック

スクリーンショット 0031-02-23 15.44.37.png

"メタデータファイルがある場合は、代わりにそれを今すぐアップロードできます"のリンクをクリックし、先程ダウロードしたXMLファイルを指定し、[変更の保存]をクリック

スクリーンショット 0031-02-23 15.45.50.png

"属性マッピング"タブをクリックし、以下のマッピングを保存する
Subject ${user:subject} unspecified
email ${user:email} unspecified
username ${user:name} unspecified

※サポートされるディレクトリとAWS SSOの属性
https://docs.aws.amazon.com/ja_jp/singlesignon/latest/userguide/attributemappingsconcept.html?icmpid=docs_sso_console

スクリーンショット 0031-02-23 16.17.16.png

WordpressからSSO確認

Wordpressの画面から"SAML Login"をクリック

スクリーンショット 0031-02-23 15.48.35.png

AWS SSOポータルにリダイレクトする。ポータルでログインする

スクリーンショット 0031-02-23 15.49.16.png

ADのユーザー名の"uehara"でログインできてる

スクリーンショット 0031-02-23 16.19.41.png

メアドも入っている

スクリーンショット 0031-02-23 16.19.57.png

ログ確認

CloudTrailにて確認。"イベントの表示"をクリックすれば詳細が確認できます。長期間分を保存が必要ならCloudTrail=>S3へ保存の設定ができます。イベント名がAuthenticateで認証成功、Federateで別のAWSアカウントにログインができたことが確認できるが、現状ログイン失敗などのログが出てこないようで、IdP側でのログも必要と思われる

スクリーンショット 0031-02-22 11.28.17.png

2 Step認証

ポータルからパスワード認証後にユーザーのメアドに認証コードが送られ、そのコードで認証を行う設定

ADのユーザーにメアド追加

スクリーンショット 0031-02-22 13.49.51.png

AWS SSOの画面の"設定"をクリックし、[設定]をクリック

スクリーンショット 0031-02-22 13.50.24.png

"コンテキスト対応"にチェックし、[変更の保存]をクリックし、次のポップアップで[確認]をクリック

スクリーンショット 0031-02-22 13.50.34.png

ポータルにID/Passwordでサインイン

スクリーンショット 0031-02-22 13.57.17.png

メールでVerification Codeが送られてくる

スクリーンショット 0031-02-22 13.51.41.png

Verification Codeを入れサインイン

スクリーンショット 0031-02-22 13.51.55.png

参考資料

AWS SSOの使い方の公式ブログ
https://aws.amazon.com/jp/blogs/news/introducing-aws-single-sign-on/
AWS Summit Tokyo 2018の資料でP47あたりからAWS SSO
https://d1.awsstatic.com/events/jp/2018/summit/tokyo/aws/40.pdf
SSOのログ関連
https://docs.aws.amazon.com/ja_jp/singlesignon/latest/userguide/logging-using-cloudtrail.html

16
16
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
16
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?