はじめに
会社で Azure AD(Azure Active Directory) のユーザーを使って AWS (AWS Single Sign-On) にサインインできるようにしました。
AWS Organizations のマスターアカウントで AWS Single Sign-On (SSO) を設定すると、マスターアカウント+メンバーアカウントに1つのユーザーポータルからサインインできるようになります。なお、IAM ユーザーでのサインインは引き続き利用できます。
さらに Azure AD と AWS SSO を連係させておけば、AWS に自分でユーザーを作成する必要がないので、とても便利になりました。
基本的に公式ドキュメントを読めば設定できるのですが、躓いたポイントがあったので記録しておきます。
ユーザーポータル
ここに Azure AD(ないし Office365)のユーザーでサインインできます。
また、ここからアクセス権限のあるすべての AWS アカウントにサインインできます。
設定手順
まず下記を行います。
- AWS のマスターアカウントで AWS SSO を有効にする。
- Azure AD の エンタープライズアプリケーション で「独自のアプリケーションの作成」を「Non-gallery」で実行する。
マスターアカウントで AWS SSO を有効にする際に、組織内のすべての機能の有効化 を求められました(AWS Organizations によって違うみたいです)。といってもボタンを押すだけです。
これをするとメンバーアカウントのルートアドレスに承認依頼メールが送信されるので、本文中のリンクをクリックして承認します。
あとは後述の記事をさらっと(キャプチャだけ)見ながら設定を進めればほぼほぼ完了です。
サーバーワークスエンジニアブログ さんの記事が一番今回の目的に合っていてわかりやすかったです。
公式ドキュメント(日本語)も載せておきます。
躓いたポイント
事象
エンタープライズアプリケーション(Azure)の設定で、Azure AD ユーザーを AWS SSO ユーザーに同期すること(プロビジョニング)ができるのですが、AWS SSO 側になかなかユーザーが作成されませんでした。
原因
公式ドキュメントによると、ユーザー属性のマッピング設定にて、デフォルトの Azure Active Directory 属性
に下記変更を加える必要があります。
-
facsimileTelephoneNumber
を削除 -
mobile
を削除 -
mailNickname
をobjectId
に変更
変更後のマッピング設定はこのようになります。
私の会社では Azure AD のユーザー作成時に surname
(姓)と givenName
(名)の値を空にしていたのですが、これらが AWS SSO 側で必須になっており、それがエラーの原因でした。
AWS SSO 側での必須項目は、ユーザープロファイルの赤枠部分のようです。
解決策
Azure 側のマッピング設定で surname
と givenName
の null の場合の規定値
を 未設定
としました。