多くの企業では、Microsoft Entra ID(旧Azure AD)やOktaなどの外部IDプロバイダー(IdP)でユーザーを一元管理しています。本記事では、既存のID基盤をAWS IAM Identity Centerと連携し、シングルサインオン(SSO)と自動プロビジョニングを実現する方法を解説します。
外部IdP連携の概要
外部IdP連携とは、IAM Identity Centerのユーザー認証とID管理を、組織で既に利用しているIDプロバイダーに委任する構成です。これにより、ユーザーは既存の認証情報でAWS環境にアクセスできます。
外部IdP連携のメリット
外部IdPとの連携により、以下のメリットが得られます。
| メリット | 説明 |
|---|---|
| 認証の一元化 | 既存IdPの認証情報でAWSにアクセス可能 |
| パスワード管理の統一 | 組織のパスワードポリシーをそのまま適用 |
| MFAの統一 | IdP側のMFA設定がAWSアクセスにも適用 |
| 自動プロビジョニング | IdPでのユーザー作成・削除がAWSに自動反映 |
| コンプライアンス対応 | 既存の監査ログとの統合が容易 |
| 運用負荷軽減 | 複数システムでのユーザー管理が不要 |
SAML 2.0とSCIMの役割
外部IdP連携では、SAML 2.0とSCIMという2つのプロトコルを使用します。それぞれの役割を理解することが重要です。
flowchart TB
subgraph "外部IdP(Microsoft Entra ID / Okta)"
IdP[IDプロバイダー]
UM[ユーザー管理]
end
subgraph "AWS IAM Identity Center"
IC[Identity Center]
DIR[ユーザーディレクトリ]
ACC[AWSアカウントアクセス]
end
IdP -->|SAML 2.0<br/>認証・認可| IC
UM -->|SCIM<br/>ユーザー同期| DIR
IC --> ACC| プロトコル | 役割 | 同期タイミング |
|---|---|---|
| SAML 2.0 | 認証とシングルサインオン | ユーザーがログインするたび |
| SCIM | ユーザー・グループの自動プロビジョニング | 変更発生時(リアルタイム) |
SAML 2.0による認証フロー
SAML 2.0は、IdPとサービスプロバイダー(SP)間で認証情報を安全にやり取りするための標準プロトコルです。IAM Identity Centerとの連携では、以下のフローで認証が行われます。
sequenceDiagram
participant User as ユーザー
participant IdP as 外部IdP
participant IdC as IAM Identity Center
participant AWS as AWSアカウント
User->>IdP: 1. IdPにログイン
IdP->>IdP: 2. 認証処理
IdP->>User: 3. SAMLアサーション発行
User->>IdC: 4. SAMLアサーション送信
IdC->>IdC: 5. アサーション検証
IdC->>User: 6. AWSアクセスポータル表示
User->>IdC: 7. アカウント・権限選択
IdC->>AWS: 8. 一時認証情報でアクセスSAMLアサーションの重要な属性
SAMLアサーションには、ユーザーを識別するための属性が含まれます。IAM Identity Centerとの連携で必要な属性を以下に示します。
| 属性名 | 説明 | 必須 |
|---|---|---|
| Subject (NameID) | ユーザーの一意識別子 | 必須 |
| ユーザーのメールアドレス | 推奨 | |
| firstName | ユーザーの名 | 推奨 |
| lastName | ユーザーの姓 | 推奨 |
| displayName | 表示名 | 任意 |
SCIMによる自動プロビジョニング
SCIM(System for Cross-domain Identity Management)は、異なるシステム間でユーザーとグループ情報を自動同期するためのプロトコルです。
flowchart LR
subgraph "外部IdP"
U1[ユーザー作成]
U2[ユーザー更新]
U3[ユーザー削除]
G1[グループ変更]
end
subgraph "SCIM同期"
SCIM[SCIM API]
end
subgraph "IAM Identity Center"
DIR[ディレクトリ]
end
U1 --> SCIM
U2 --> SCIM
U3 --> SCIM
G1 --> SCIM
SCIM --> DIRSCIMを有効化すると、以下の操作が自動的に同期されます。
| IdP側の操作 | IAM Identity Center側の結果 |
|---|---|
| ユーザー作成 | ユーザーが自動作成される |
| ユーザー属性変更 | 属性が自動更新される |
| ユーザー削除/無効化 | ユーザーが無効化される |
| グループへの追加 | グループメンバーシップが同期される |
| グループからの削除 | グループメンバーシップが同期される |
対応する外部IdP
IAM Identity Centerは、SAML 2.0に準拠した多くのIdPとの連携をサポートしています。特に以下のIdPについては、AWSが公式にドキュメントを提供しています。
| IdP | 特徴 | 主なユースケース |
|---|---|---|
| Microsoft Entra ID | Microsoft 365との統合、条件付きアクセス | Microsoft製品利用企業 |
| Okta | 豊富なアプリ連携、高度なワークフロー | SaaS中心の企業 |
| OneLogin | シンプルな導入、コスト効率 | 中小規模組織 |
| Ping Identity | エンタープライズ向け機能 | 大規模組織 |
| CyberArk | 特権アクセス管理との統合 | セキュリティ重視の組織 |
| JumpCloud | クラウドディレクトリ | クラウドネイティブ組織 |
Microsoft Entra IDとの連携
Microsoft Entra ID(旧Azure AD)は、Microsoft 365を利用する多くの企業で標準のIdPとして採用されています。ここでは、Entra IDとIAM Identity Centerの連携手順を解説します。
連携の前提条件
連携を開始する前に、以下の要件を確認してください。
| 要件 | 説明 |
|---|---|
| Microsoft Entra IDのライセンス | Free以上(SCIM利用にはP1以上を推奨) |
| IAM Identity Centerの有効化 | 管理アカウントまたは委任管理者で有効化済み |
| 管理者権限 | 両サービスの管理者権限が必要 |
| IDソース | Identity Centerディレクトリまたは外部IdPに設定 |
ステップ1: IAM Identity CenterでのIDソース変更
IAM Identity Centerのデフォルトのディレクトリから外部IdPに変更します。
重要な注意事項
IDソースを外部IdPに変更すると、既存のユーザー割り当てがすべて削除されます。本番環境で実施する前に、必ず影響を確認してください。
- AWS Management Consoleで「IAM Identity Center」を開く
- 左メニューから「設定」を選択
- 「アイデンティティソース」タブを選択
- 「アクション」から「アイデンティティソースを変更」を選択
- 「外部IDプロバイダー」を選択して「次へ」をクリック
この画面で、以下の情報が表示されます。これらはMicrosoft Entra ID側の設定で使用します。
| 情報 | 説明 | 使用先 |
|---|---|---|
| IAM Identity Center Assertion Consumer Service (ACS) URL | SAMLレスポンスの送信先URL | Entra IDのReply URL |
| IAM Identity Center issuer URL | Identity Centerの識別子 | Entra IDのIdentifier |
| IAM Identity Center SCIM endpoint | SCIMプロビジョニングのエンドポイント | Entra IDのProvisioning |
| Access token | SCIM認証用のトークン | Entra IDのProvisioning |
ステップ2: Microsoft Entra IDでのエンタープライズアプリケーション作成
Microsoft Entra管理センターでAWS IAM Identity Center用のアプリケーションを作成します。
- Microsoft Entra管理センター(entra.microsoft.com)にサインイン
- 「アプリケーション」>「エンタープライズアプリケーション」を選択
- 「新しいアプリケーション」をクリック
- ギャラリーで「AWS IAM Identity Center」を検索
- アプリケーションを選択して「作成」をクリック
ステップ3: SAML SSOの設定
作成したアプリケーションでSAML設定を行います。
- アプリケーションの「シングルサインオン」を選択
- 「SAML」を選択
- 「基本的なSAML構成」を編集
以下の値を設定します。
| 設定項目 | 値 |
|---|---|
| 識別子(エンティティID) | IAM Identity Center issuer URL |
| 応答URL(ACS URL) | IAM Identity Center ACS URL |
| サインオンURL | (空欄のまま) |
- 「属性とクレーム」を編集
以下の属性マッピングを設定します。
| クレーム名 | ソース属性 |
|---|---|
| 一意のユーザー識別子(NameID) | user.userprincipalname |
| user.mail | |
| firstName | user.givenname |
| lastName | user.surname |
- 「SAML署名証明書」セクションから「フェデレーションメタデータXML」をダウンロード
ステップ4: IAM Identity CenterへのメタデータXMLのアップロード
ダウンロードしたメタデータXMLをIAM Identity Centerにアップロードします。
- IAM Identity Centerの外部IdP設定画面に戻る
- 「IdPメタデータ」セクションで「ファイルを選択」をクリック
- ダウンロードしたメタデータXMLファイルを選択
- 「次へ」をクリックして設定を確認
- 確認画面で「ACCEPT」と入力して「アイデンティティソースを変更」をクリック
ステップ5: SCIMプロビジョニングの設定
ユーザーとグループの自動同期を設定します。
- Microsoft Entra管理センターでアプリケーションの「プロビジョニング」を選択
- 「プロビジョニングモード」を「自動」に変更
- 「管理者資格情報」セクションに以下を入力
| 設定項目 | 値 |
|---|---|
| テナントURL | IAM Identity Center SCIM endpoint |
| シークレットトークン | IAM Identity Centerで発行したAccess token |
- 「テスト接続」をクリックして接続を確認
- 「保存」をクリック
- 「プロビジョニングの開始」をクリック
ステップ6: ユーザーとグループの割り当て
SAML SSOを使用するユーザーとグループを割り当てます。
- アプリケーションの「ユーザーとグループ」を選択
- 「ユーザーまたはグループの追加」をクリック
- 同期したいユーザーまたはグループを選択
- 「割り当て」をクリック
割り当てたユーザーとグループは、SCIMによってIAM Identity Centerに自動的にプロビジョニングされます。
Oktaとの連携
Oktaは、クラウドベースのID管理サービスとして多くの企業で採用されています。Oktaとの連携手順を解説します。
連携の前提条件
| 要件 | 説明 |
|---|---|
| Oktaのサブスクリプション | Lifecycle Management機能(SCIM用) |
| IAM Identity Centerの有効化 | 管理アカウントまたは委任管理者で有効化済み |
| 管理者権限 | 両サービスの管理者権限が必要 |
ステップ1: Oktaでのアプリケーション追加
- Okta管理コンソールにサインイン
- 「Applications」>「Applications」を選択
- 「Browse App Catalog」をクリック
- 「AWS IAM Identity Center」を検索
- アプリケーションを選択して「Add Integration」をクリック
- 「Application label」に任意の名前を入力
- 「Done」をクリック
ステップ2: SAML SSOの設定
- 追加したアプリケーションの「Sign On」タブを選択
- 「Edit」をクリック
- 以下の値を設定
| 設定項目 | 値 |
|---|---|
| ACS URL | IAM Identity Center ACS URL |
| Issuer | IAM Identity Center issuer URL |
| Audience Restriction | IAM Identity Center issuer URL |
| Name ID format | EmailAddress |
| Application username |
- 「Save」をクリック
- 「Sign On」タブの「SAML Signing Certificates」セクションから「Actions」>「View IdP metadata」を選択
- 表示されたXMLをファイルとして保存
ステップ3: 属性マッピングの設定
- アプリケーションの「Sign On」タブを選択
- 「Attributes」セクションで「Edit」をクリック
- 以下の属性を設定
| SAML属性名 | Oktaユーザープロファイル |
|---|---|
| user.email | |
| firstName | user.firstName |
| lastName | user.lastName |
- 「Save」をクリック
ステップ4: IAM Identity CenterでのIdP設定
Microsoft Entra IDの場合と同様に、IAM Identity Centerで外部IdPを設定します。
- IAM Identity Centerの設定画面で「アイデンティティソースを変更」を選択
- 「外部IDプロバイダー」を選択
- OktaからダウンロードしたメタデータXMLをアップロード
- 設定を確認して変更を適用
ステップ5: SCIMプロビジョニングの設定
- Oktaのアプリケーション設定で「Provisioning」タブを選択
- 「Configure API Integration」をクリック
- 「Enable API integration」にチェック
- 以下を入力
| 設定項目 | 値 |
|---|---|
| Base URL | IAM Identity Center SCIM endpoint |
| API Token | IAM Identity Centerで発行したAccess token |
- 「Test API Credentials」をクリックして接続確認
- 「Save」をクリック
- 「Provisioning to App」セクションで「Edit」をクリック
- 以下を有効化
| 設定 | 説明 |
|---|---|
| Create Users | ユーザー作成を同期 |
| Update User Attributes | 属性変更を同期 |
| Deactivate Users | 無効化を同期 |
- 「Save」をクリック
ステップ6: ユーザーとグループの割り当て
- 「Assignments」タブを選択
- 「Assign」>「Assign to People」または「Assign to Groups」を選択
- 同期したいユーザーまたはグループを選択して「Assign」
プロビジョニングの確認とテスト
外部IdPとの連携設定が完了したら、正しく動作していることを確認します。
ユーザー同期の確認
IAM Identity Centerでユーザーが正しく同期されていることを確認します。
- IAM Identity Centerの「ユーザー」を選択
- 外部IdPから同期されたユーザーが表示されることを確認
- ユーザーの詳細を開き、属性が正しく同期されていることを確認
同期されたユーザーの特徴は以下の通りです。
| 属性 | 説明 |
|---|---|
| プロビジョニングタイプ | 「外部IdP」と表示される |
| 編集可否 | IAM Identity Center側では編集不可 |
| 削除方法 | IdP側での削除/無効化が必要 |
グループ同期の確認
グループの同期状況を確認します。
- IAM Identity Centerの「グループ」を選択
- 外部IdPから同期されたグループが表示されることを確認
- グループメンバーが正しく同期されていることを確認
SSOログインテスト
実際にSSOでログインできることをテストします。
IdP起点のログイン(IdP-initiated SSO)
- 外部IdPのポータルにログイン
- AWS IAM Identity Centerアプリケーションを選択
- AWSアクセスポータルが表示されることを確認
SP起点のログイン(SP-initiated SSO)
- IAM Identity CenterのポータルURL(
https://<instance-id>.awsapps.com/start)にアクセス - 外部IdPのログイン画面にリダイレクトされることを確認
- IdPで認証後、AWSアクセスポータルが表示されることを確認
トラブルシューティング
外部IdP連携で発生しやすい問題と解決方法を解説します。
SAML認証エラー
SAML認証で問題が発生した場合の対処方法です。
| エラー | 原因 | 解決方法 |
|---|---|---|
| Invalid SAML response | メタデータの不一致 | ACS URL、Issuerの設定を再確認 |
| Signature validation failed | 証明書の問題 | 最新のメタデータXMLを再アップロード |
| NameID not found | 属性マッピングエラー | NameID属性のマッピングを確認 |
| User not found | ユーザーが未同期 | SCIMプロビジョニングのステータスを確認 |
SAMLアサーションの確認方法
ブラウザの開発者ツールやSAMLトレーサー拡張機能を使用して、SAMLアサーションの内容を確認できます。
- ブラウザにSAMLトレーサー拡張機能をインストール
- SSOログインを実行
- キャプチャされたSAMLレスポンスを確認
- アサーション内の属性値が正しいことを確認
SCIMプロビジョニングエラー
プロビジョニングの問題と対処方法です。
| 症状 | 原因 | 解決方法 |
|---|---|---|
| ユーザーが同期されない | 割り当て未設定 | IdP側でユーザー/グループを割り当て |
| 属性が更新されない | 同期間隔の問題 | 手動同期を実行、または待機 |
| 接続テスト失敗 | トークン期限切れ | 新しいアクセストークンを生成 |
| グループが同期されない | 制限の問題 | プッシュグループの設定を確認 |
SCIMログの確認(Microsoft Entra ID)
- Entra管理センターでアプリケーションを開く
- 「プロビジョニング」>「プロビジョニングログ」を選択
- エラーの詳細を確認
SCIMログの確認(Okta)
- Okta管理コンソールでアプリケーションを開く
- 「Provisioning」>「Provisioning to App」を選択
- 「View Logs」でエラーを確認
アクセストークンの再生成
SCIMアクセストークンには有効期限があります。期限切れの場合は再生成が必要です。
- IAM Identity Centerの「設定」を開く
- 「自動プロビジョニング」セクションで「新しいトークンを生成」をクリック
- 新しいトークンをIdP側に設定
重要: アクセストークンは生成時に一度だけ表示されます。必ず安全な場所に保存してください。
セキュリティのベストプラクティス
外部IdP連携のセキュリティを強化するためのベストプラクティスを紹介します。
MFAの強制
外部IdPでMFAを有効化し、AWSへのアクセスにも適用します。
flowchart LR
U[ユーザー] --> MFA[MFA認証]
MFA --> IdP[外部IdP]
IdP --> SAML[SAMLアサーション]
SAML --> AWS[AWS IAM Identity Center]| IdP | MFA設定方法 |
|---|---|
| Microsoft Entra ID | 条件付きアクセスポリシーでMFAを要求 |
| Okta | 認証ポリシーでMFAを要求 |
条件付きアクセスの活用
外部IdPの条件付きアクセス機能を活用して、アクセス制御を強化します。
| 条件 | 説明 |
|---|---|
| IPアドレス制限 | 社内ネットワークからのみアクセス許可 |
| デバイスコンプライアンス | 管理対象デバイスからのみ許可 |
| リスクベース認証 | 異常なログインパターンを検出してブロック |
| 時間制限 | 業務時間内のみアクセス許可 |
監査とモニタリング
外部IdP連携の監査ログを定期的に確認します。
確認すべきログ
| ログソース | 確認項目 |
|---|---|
| 外部IdPの監査ログ | 認証成功/失敗、属性変更 |
| CloudTrail | IAM Identity Centerへのアクセス |
| SCIMプロビジョニングログ | 同期の成功/失敗 |
セッション管理
セッション時間を適切に設定し、セキュリティと利便性のバランスを取ります。
| 設定箇所 | 推奨値 |
|---|---|
| 外部IdPセッション | 組織のセキュリティポリシーに準拠 |
| IAM Identity Centerセッション | 1〜8時間(職務に応じて設定) |
| AWSコンソールセッション | 権限セットで設定(最大12時間) |
運用のベストプラクティス
外部IdP連携を安定的に運用するためのベストプラクティスを紹介します。
証明書の更新
SAML署名証明書には有効期限があります。期限切れ前に更新作業を行う必要があります。
| IdP | 証明書有効期限の確認方法 |
|---|---|
| Microsoft Entra ID | アプリケーション > SAML署名証明書 |
| Okta | アプリケーション > Sign On > SAML Signing Certificates |
証明書更新の手順
- IdP側で新しい証明書を生成
- 新しいメタデータXMLをダウンロード
- IAM Identity CenterでメタデータXMLを更新
- 動作確認後、古い証明書を削除
グループ設計の最適化
外部IdPのグループ設計をIAM Identity Centerの権限セット割り当てに最適化します。
flowchart TB
subgraph "外部IdPのグループ"
G1[AWS-Admins]
G2[AWS-Developers]
G3[AWS-ReadOnly]
end
subgraph "IAM Identity Center"
PS1[AdministratorAccess]
PS2[PowerUserAccess]
PS3[ViewOnlyAccess]
end
G1 --> PS1
G2 --> PS2
G3 --> PS3グループ命名規則の例
| パターン | 例 |
|---|---|
| プラットフォーム-権限レベル | AWS-Admin, AWS-Developer |
| プラットフォーム-環境-権限 | AWS-Prod-Admin, AWS-Dev-Developer |
| 部門-プラットフォーム-権限 | IT-AWS-Admin, Dev-AWS-Developer |
変更管理
外部IdP連携の設定変更は、影響範囲が大きいため慎重に行います。
| 変更種別 | リスク | 推奨アプローチ |
|---|---|---|
| 属性マッピング変更 | 中 | 検証環境でテスト後に本番適用 |
| グループ構造変更 | 高 | 段階的な移行、ロールバック計画の策定 |
| IdP変更 | 最高 | 並行稼働期間を設けた移行 |
| 証明書更新 | 中 | 事前テスト、緊急時の切り戻し手順準備 |
まとめ
外部IdPとIAM Identity Centerの連携により、既存のID基盤を活用した統合的なAWSアクセス管理が実現できます。本記事で解説した内容を振り返ります。
- 外部IdP連携では、SAML 2.0による認証とSCIMによる自動プロビジョニングを組み合わせて使用する
- Microsoft Entra ID、Oktaとの具体的な連携手順を理解し、組織の要件に合わせて設定する
- トラブルシューティングのポイントを押さえ、問題発生時に迅速に対応できるようにする
- MFAの強制、条件付きアクセス、監査ログの活用など、セキュリティのベストプラクティスを適用する
外部IdP連携は、マルチアカウント環境のセキュリティと運用効率を大幅に向上させます。組織のID管理戦略に合わせて、適切なIdPとの連携を検討してください。