LoginSignup
2
1

More than 5 years have passed since last update.

【仕事メモ】OpenAM(Ver13) AWS管理コンソールへのSSOログイン

Last updated at Posted at 2018-08-14

概要

前回までのOffice365へのSSOログインとは別にOpenAMを利用した、AWS管理コンソールへのSSOログインも実施してみます。

トラストサークル(IdP)の作成

まずはOpenAM側での操作を実施します。
例のごとくトップ画面から「REALMS」-「Realm Overview」を表示します。
そして、画面から「Create SAMLv2 Providers 」を選択します。

image.png

次に「Create Hosted Identity Provider」を選択します。
※ここまでの流れは今までと同じですね。

image.png

表示された画面の「新しいトラストサークルに追加します」にチェックを入れ、「トラストサークル名」に"aws(名称は任意)"と入力し、「設定」をクリックします。

image.png

↓の画面が表示されればOKです。

image.png

AWSへのIdP登録

AWS側に信頼関係を結ぶために必要となるIdPのメタデータをダウンロードしてきます。
これも以前実施したOffice365へのSSO時と同じように以下のURLにアクセスしてコピペするか、もしくはcurlなどを使って作業端末のローカルにダウンロードします。
※重要な注意事項としてアップロードする際のファイル形式はXMLですのでご注意を…

メタデータダウンロードURL
http://【OpenAMサーバホスト名】:8080/openam/saml2/jsp/exportmetadata.jsp

次にAWS管理コンソールのIAMを表示してください。
※表示の仕方などは割愛します。

IAMのメニューから「IDプロバイダー」‐「プロバイダの作成」を選択します。

image.png

すると↓の画面が表示されるので、設定項目はそれぞれ以下の通り、設定を行います。

image.png

・プロバイダーのタイプ:SAML
・プロバイダ名:OpenAM(任意の名称)
・メタデータドキュメント:先ほどダウンロードしたOpenAMのメタデータ
※これは↓のような形でアップロードを実施してください。

1.PNG

プロバイダの検証画面に遷移するので「作成」をクリックします。
検証が完了するとAWS管理コンソール上のプロバイダ一覧に「OpenAM」と表示されます。
※私の場合ですが、画面遷移せず、一回画面を閉じて、もう一度表示したら、プロバイダが表示されるようになりました。

「OpenAM」のプロバイダが表示されるようになればOKです。

image.png

SP登録(OpenAM エンティティプロバイダの登録)

Office365の時と同様なのですが、トップ画面から「REALMS」-「Create SAMLv2 Providers」-「Register Remote Service Provider」を選択します。

image.png

表示された画面にて、各設定項目を以下の通り、設定します。

・メタデータファイルはどこに存在しますか?:「URL」
・メタデータが配置されているURL:「https://signin.aws.amazon.com/static/saml-metadata.xml」
・トラストサークル
 「既存のトラストサークルに追加します」:チェック
 「既存のトラストサークル」:aws

上記で示している通り、メタデータはURLからアクセスして取得できるようになっていますが、Curl等でダウンロードしたファイルをアップロードしても良いです。

AWS管理コンソール用のSAMLメタデータ保存先
https://signin.aws.amazon.com/static/saml-metadata.xml

各項目の設定が終わったら「設定」をクリックします。

image.png

image.png

また、例のごとく、上記のように登録が完了した旨のポップアップが表示されればSPとして登録が完了します。

登録が完了すると↓のような形でトラストサークルに「aws」が表示されるようになります。

image.png

また、エンティティプロバイダにも「aws」のURLが表示されるようになります。

image.png

IAMロールの作成

SAML認証でログインするユーザー専用のIAMロールを作成します。
AWS管理コンソールにログインしてIAMの画面を表示します。

image.png

「ロールの作成」‐「信頼されたエンティティの種類を選択」‐「SAML2.0 フェデレーション」を選択します。
すると設定項目が表示されるので以下の通り、設定を行います。

・SAMLプロバイダー:「OpenAM」
 ※プログラムによるアクセスのみを許可するなどの設定はポリシーに準じて設定をお願いいたします。
・属性:SAML:aud
 ※プロバイダーを選択した時点で自動的に入力されます
・値:https://signin.aws.amazon.com/saml
 ※プロバイダーを選択した時点で自動的に入力されます
・条件:ログイン時の属性値に条件を追加したい場合は値を追加します

image.png

次にIAMポリシーの適用になります。
ここではとりあえず「poweruseraccess」をアタッチします。

image.png

また「アクセス権限の境界の設定」という項目がありますが、これはIAMのロールをもっと詳細に制御する場合に使用する機能になります。
今回は使用しないため、「アクセス権限の境界を設定せずにroleを作成する」にチェックを入れておきます。
設定が終わったら、「次へ」をクリックします。

ロール名、エンティティ、ポリシーがアタッチされていることを確認して「ロールの作成」をクリックします。

image.png

↓のように先ほど作成したロールが表示されていればOKです。

image.png

あとは属性のマッピングを設定します。
今回は社員番号属性(employeeNumber)をマッピングして、AWSのロールを取得する設定とします。

エンティティプロバイダの設定(表示の手順は前述しているため割愛)で「urn:amazon:webservices」を選択し、「新しい値」に以下の値を追加します。
追加したら「保存」をクリックします。

追加対象の属性
https://aws.amazon.com/SAML/Attributes/Role=employeeNumber

↓の画面が表示されればOKです。

image.png

ID連携ユーザーの作成(OpenAM)

OpenAMのローカルデータストアにAWS管理コンソールへSSO認証するためのユーザーアカウントを用意します。

トップ画面から「REALMS」-「Data Stores」を選択します。

image.png

メニューから「対象」を選択します。

image.png

「新規」をクリックして、ユーザーを作成します。

image.png

あとで属性値を変更しますが、とりあえずユーザーを作成します。
この時点では任意の名称、パスワードで問題ないです。

image.png

ユーザーが追加されたことを確認して、属性値を変更します。

image.png

ポイントになるのはここです。
AWSとOpenAMのSAML属性値のマッピングはここで行います。
マッピングする属性値にはルールがあり、以下の形式となっている必要があります。

書式
<AWS IAMロールのARN>,<AWS IDプロバイダーのARN>

例を挙げると下記のような形式になります。

カスタム属性値の例
arn:aws:iam::xxxxxxx:role/saml-federation,arn:aws:iam::xxxxxxx:saml-provider/OpenAM

上記の値はAWS管理コンソールからそれぞれ確認することができます。

「IAM」-「ロール」から確認
001.PNG

「IAM」-「IDプロバイダー」から確認
002.PNG

確認して「,」で結合し、作成した値をOpenAM上のユーザー属性値「社員番号」に設定します。設定できたら「保存」をクリックします。

image.png

先ほど作成したユーザーの「employeeNumber」に値が入力されていることを確認します。

image.png

2
1
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
2
1