多くの企業では、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) ユーザーの一意識別子 必須
email ユーザーのメールアドレス 推奨
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 --> DIR

SCIMを有効化すると、以下の操作が自動的に同期されます。

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に変更すると、既存のユーザー割り当てがすべて削除されます。本番環境で実施する前に、必ず影響を確認してください。

  1. AWS Management Consoleで「IAM Identity Center」を開く
  2. 左メニューから「設定」を選択
  3. 「アイデンティティソース」タブを選択
  4. 「アクション」から「アイデンティティソースを変更」を選択
  5. 「外部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用のアプリケーションを作成します。

  1. Microsoft Entra管理センター(entra.microsoft.com)にサインイン
  2. 「アプリケーション」>「エンタープライズアプリケーション」を選択
  3. 「新しいアプリケーション」をクリック
  4. ギャラリーで「AWS IAM Identity Center」を検索
  5. アプリケーションを選択して「作成」をクリック

ステップ3: SAML SSOの設定

作成したアプリケーションでSAML設定を行います。

  1. アプリケーションの「シングルサインオン」を選択
  2. 「SAML」を選択
  3. 「基本的なSAML構成」を編集

以下の値を設定します。

設定項目
識別子(エンティティID) IAM Identity Center issuer URL
応答URL(ACS URL) IAM Identity Center ACS URL
サインオンURL (空欄のまま)
  1. 「属性とクレーム」を編集

以下の属性マッピングを設定します。

クレーム名 ソース属性
一意のユーザー識別子(NameID) user.userprincipalname
email user.mail
firstName user.givenname
lastName user.surname
  1. 「SAML署名証明書」セクションから「フェデレーションメタデータXML」をダウンロード

ステップ4: IAM Identity CenterへのメタデータXMLのアップロード

ダウンロードしたメタデータXMLをIAM Identity Centerにアップロードします。

  1. IAM Identity Centerの外部IdP設定画面に戻る
  2. 「IdPメタデータ」セクションで「ファイルを選択」をクリック
  3. ダウンロードしたメタデータXMLファイルを選択
  4. 「次へ」をクリックして設定を確認
  5. 確認画面で「ACCEPT」と入力して「アイデンティティソースを変更」をクリック

ステップ5: SCIMプロビジョニングの設定

ユーザーとグループの自動同期を設定します。

  1. Microsoft Entra管理センターでアプリケーションの「プロビジョニング」を選択
  2. 「プロビジョニングモード」を「自動」に変更
  3. 「管理者資格情報」セクションに以下を入力
設定項目
テナントURL IAM Identity Center SCIM endpoint
シークレットトークン IAM Identity Centerで発行したAccess token
  1. 「テスト接続」をクリックして接続を確認
  2. 「保存」をクリック
  3. 「プロビジョニングの開始」をクリック

ステップ6: ユーザーとグループの割り当て

SAML SSOを使用するユーザーとグループを割り当てます。

  1. アプリケーションの「ユーザーとグループ」を選択
  2. 「ユーザーまたはグループの追加」をクリック
  3. 同期したいユーザーまたはグループを選択
  4. 「割り当て」をクリック

割り当てたユーザーとグループは、SCIMによってIAM Identity Centerに自動的にプロビジョニングされます。

Oktaとの連携

Oktaは、クラウドベースのID管理サービスとして多くの企業で採用されています。Oktaとの連携手順を解説します。

連携の前提条件

要件 説明
Oktaのサブスクリプション Lifecycle Management機能(SCIM用)
IAM Identity Centerの有効化 管理アカウントまたは委任管理者で有効化済み
管理者権限 両サービスの管理者権限が必要

ステップ1: Oktaでのアプリケーション追加

  1. Okta管理コンソールにサインイン
  2. 「Applications」>「Applications」を選択
  3. 「Browse App Catalog」をクリック
  4. 「AWS IAM Identity Center」を検索
  5. アプリケーションを選択して「Add Integration」をクリック
  6. 「Application label」に任意の名前を入力
  7. 「Done」をクリック

ステップ2: SAML SSOの設定

  1. 追加したアプリケーションの「Sign On」タブを選択
  2. 「Edit」をクリック
  3. 以下の値を設定
設定項目
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 Email
  1. 「Save」をクリック
  2. 「Sign On」タブの「SAML Signing Certificates」セクションから「Actions」>「View IdP metadata」を選択
  3. 表示されたXMLをファイルとして保存

ステップ3: 属性マッピングの設定

  1. アプリケーションの「Sign On」タブを選択
  2. 「Attributes」セクションで「Edit」をクリック
  3. 以下の属性を設定
SAML属性名 Oktaユーザープロファイル
email user.email
firstName user.firstName
lastName user.lastName
  1. 「Save」をクリック

ステップ4: IAM Identity CenterでのIdP設定

Microsoft Entra IDの場合と同様に、IAM Identity Centerで外部IdPを設定します。

  1. IAM Identity Centerの設定画面で「アイデンティティソースを変更」を選択
  2. 「外部IDプロバイダー」を選択
  3. OktaからダウンロードしたメタデータXMLをアップロード
  4. 設定を確認して変更を適用

ステップ5: SCIMプロビジョニングの設定

  1. Oktaのアプリケーション設定で「Provisioning」タブを選択
  2. 「Configure API Integration」をクリック
  3. 「Enable API integration」にチェック
  4. 以下を入力
設定項目
Base URL IAM Identity Center SCIM endpoint
API Token IAM Identity Centerで発行したAccess token
  1. 「Test API Credentials」をクリックして接続確認
  2. 「Save」をクリック
  3. 「Provisioning to App」セクションで「Edit」をクリック
  4. 以下を有効化
設定 説明
Create Users ユーザー作成を同期
Update User Attributes 属性変更を同期
Deactivate Users 無効化を同期
  1. 「Save」をクリック

ステップ6: ユーザーとグループの割り当て

  1. 「Assignments」タブを選択
  2. 「Assign」>「Assign to People」または「Assign to Groups」を選択
  3. 同期したいユーザーまたはグループを選択して「Assign」

プロビジョニングの確認とテスト

外部IdPとの連携設定が完了したら、正しく動作していることを確認します。

ユーザー同期の確認

IAM Identity Centerでユーザーが正しく同期されていることを確認します。

  1. IAM Identity Centerの「ユーザー」を選択
  2. 外部IdPから同期されたユーザーが表示されることを確認
  3. ユーザーの詳細を開き、属性が正しく同期されていることを確認

同期されたユーザーの特徴は以下の通りです。

属性 説明
プロビジョニングタイプ 「外部IdP」と表示される
編集可否 IAM Identity Center側では編集不可
削除方法 IdP側での削除/無効化が必要

グループ同期の確認

グループの同期状況を確認します。

  1. IAM Identity Centerの「グループ」を選択
  2. 外部IdPから同期されたグループが表示されることを確認
  3. グループメンバーが正しく同期されていることを確認

SSOログインテスト

実際にSSOでログインできることをテストします。

IdP起点のログイン(IdP-initiated SSO)

  1. 外部IdPのポータルにログイン
  2. AWS IAM Identity Centerアプリケーションを選択
  3. AWSアクセスポータルが表示されることを確認

SP起点のログイン(SP-initiated SSO)

  1. IAM Identity CenterのポータルURL(https://<instance-id>.awsapps.com/start)にアクセス
  2. 外部IdPのログイン画面にリダイレクトされることを確認
  3. 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アサーションの内容を確認できます。

  1. ブラウザにSAMLトレーサー拡張機能をインストール
  2. SSOログインを実行
  3. キャプチャされたSAMLレスポンスを確認
  4. アサーション内の属性値が正しいことを確認

SCIMプロビジョニングエラー

プロビジョニングの問題と対処方法です。

症状 原因 解決方法
ユーザーが同期されない 割り当て未設定 IdP側でユーザー/グループを割り当て
属性が更新されない 同期間隔の問題 手動同期を実行、または待機
接続テスト失敗 トークン期限切れ 新しいアクセストークンを生成
グループが同期されない 制限の問題 プッシュグループの設定を確認

SCIMログの確認(Microsoft Entra ID)

  1. Entra管理センターでアプリケーションを開く
  2. 「プロビジョニング」>「プロビジョニングログ」を選択
  3. エラーの詳細を確認

SCIMログの確認(Okta)

  1. Okta管理コンソールでアプリケーションを開く
  2. 「Provisioning」>「Provisioning to App」を選択
  3. 「View Logs」でエラーを確認

アクセストークンの再生成

SCIMアクセストークンには有効期限があります。期限切れの場合は再生成が必要です。

  1. IAM Identity Centerの「設定」を開く
  2. 「自動プロビジョニング」セクションで「新しいトークンを生成」をクリック
  3. 新しいトークンを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

証明書更新の手順

  1. IdP側で新しい証明書を生成
  2. 新しいメタデータXMLをダウンロード
  3. IAM Identity CenterでメタデータXMLを更新
  4. 動作確認後、古い証明書を削除

グループ設計の最適化

外部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との連携を検討してください。

参考リンク