LOCKED
ブログ一覧に戻る
SSO・IDaaSLOCKED MSO

SAML統合ベストプラクティス【属性マッピングから運用まで】

関連トピック: SAML認証の実装ガイド【仕様から設定まで完全解説】

マルチSaaS環境でシングルサインオン(SSO)を実装する際、SAML 2.0は最も標準的なプロトコルです。本記事では、SAML統合の全体像、属性マッピングのベストプラクティス、証明書管理、メタデータ自動更新、NameID戦略について詳解します。

SAML 2.0 の基本概念

SAML 2.0 とは

SAML(Security Assertion Markup Language)2.0 は、フェデレーション認証の標準プロトコルです。

基本的な流れ

  1. ユーザーが Web アプリケーション(SP:Service Provider)にアクセス
  2. SP はユーザーを IdP(Identity Provider)にリダイレクト
  3. IdP でユーザーが認証(ユーザー名・パスワード)
  4. IdP は SAML アサーション(ユーザー属性を含む XML)を生成
  5. ユーザーは SP にリダイレクトされ、SP は SAML を検証
  6. ユーザーがアプリケーションにログイン

SAML vs OAuth 2.0 vs OpenID Connect

項目SAML 2.0OAuth 2.0OpenID Connect
用途エンタープライズ SSOAPI 認可消費者向け SSO
ユースケース社員の SSO権限委譲Google ログイン等
標準化度高(成熟)高(広く採用)中(OAuth 2.0 の拡張)
複雑さ高(XML)中(JSON)中(JSON)

LOCKED MSO での対応

  • SAML 2.0:完全対応
  • OAuth 2.0:対応
  • OpenID Connect:対応
RFPテンプレート(無料)

IDaaS導入RFPテンプレート

IDaaS導入の社内稟議に使えるRFPテンプレート。SSO、MFA、プロビジョニングなどの要件を網羅したフォーマットです。

無料でダウンロード

SAML 統合の 5 つのステップ

ステップ 1:IdP と SP の識別子設定

Entity ID(エンティティ ID)

IdP と SP は、それぞれ一意の Entity ID を持つ必要があります。

例:

IdP の Entity ID:https://idp.company.com/saml
SP の Entity ID:https://salesforce.com/

ステップ 2:SAML メタデータの交換

IdP と SP は、メタデータファイル(XML)を交換します。

メタデータに含まれる情報

  • Entity ID
  • 署名証明書
  • ログイン URL(IdP)
  • Assertion Consumer Service URL(SP)

メタデータ交換方法

  1. 手動交換:メタデータファイルをダウンロード・アップロード
  2. URL ベース:メタデータ URL を相互に登録(自動更新)

ベストプラクティス: URL ベースの登録により、証明書更新時に自動的に反映されます。

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

IdP(LOCKED MSO)のユーザー属性を、SP(Salesforce 等)が理解できる属性に変換します。

標準的なマッピング例:

LOCKED MSO 属性Salesforce 属性用途
user.emailurn:oid:0.9.2342.19200300.100.1.3ユーザー識別
user.firstnameurn:oid:2.5.4.42名前
user.lastnameurn:oid:2.5.4.4
user.departmentカスタム属性部門情報
user.groupsmemberOfグループ(権限)

ステップ 4:署名と暗号化の設定

SAML アサーションは、改ざん防止のため署名される必要があります。

署名アルゴリズム

  • RSA-SHA256(推奨)
  • RSA-SHA512

暗号化

  • 機密性の高い属性(給与情報等)は暗号化

チェックリスト

  • 署名アルゴリズムが RSA-SHA256 以上
  • 证明書有効期限を確認
  • 秘密鍵を安全に管理

ステップ 5:テストと検証

本番展開前にテスト環境で十分な検証が必須です。

テスト項目

  • ログインが成功する
  • 属性が正しくマップされている
  • グループメンバーシップが反映される
  • ログアウトが正常に動作
  • エラーメッセージが適切

NameID 戦略

NameID とは

NameID は、SAML アサーション内でユーザーを一意に識別するフィールドです。

NameID の形式

形式用途
unspecifieduser123汎用
emailAddressuser@company.comメールベース
persistenthttps://idp.com/user/123変更不可
transient一時的な値セッションスコープ

NameID 戦略のベストプラクティス

推奨:emailAddress または persistent

EmailAddress の場合:
<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">
  user@company.com
</saml:NameID>

メリット

  • 人間にとって理解しやすい
  • メールアドレス変更時の対応を計画しやすい

デメリット

  • メールアドレス変更があると同期が複雑化

推奨:Persistent NameID

<saml:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">
  https://idp.company.com/user/a1b2c3d4
</saml:NameID>

メリット

  • ユーザー属性変更の影響を受けない
  • セキュリティが高い

デメリット

  • ID が不透明で追跡が困難

企業規模別の推奨 NameID 戦略

企業規模推奨形式理由
小規模(100 名以下)emailAddressシンプルさ重視
中規模(100~1,000 名)persistent柔軟性を確保
大規模(1,000 名以上)persistent変更に強い

証明書管理のベストプラクティス

証明書の有効期限管理

推奨:

  • 証明書有効期限:3 年
  • 更新タイミング:有効期限の 3 ヶ月前
  • モニタリング:自動アラート設定

有効期限切れのリスク

  • SAML アサーションが検証不可
  • ユーザーがログインできなくなる

証明書更新の手順

  1. 新しい証明書を IdP で生成
  2. メタデータを更新
  3. SP 側でメタデータを更新(自動 or 手動)
  4. テスト環境で検証
  5. 本番環境で有効化
  6. 旧証明書を無効化(数日後)

LOCKED MSO での実装

LOCKED MSO は、メタデータ自動更新機能により、証明書更新時に自動的に SP 側に反映されます。

属性マッピングのベストプラクティス

マッピング設計の原則

1. 統一性の確保

複数アプリケーションで同じ属性を使用:

全アプリケーション共通:
- email:ユーザー識別
- givenName:名
- sn:姓

2. カスタム属性の最小化

标準属性で対応可能な場合は、カスタム属性を避ける。

3. 空値の処理

属性が存在しない場合のデフォルト値を定義:

IF user.department == null THEN "Unassigned" ELSE user.department

マルチ SaaS 環境での属性マッピング例

シナリオ:100 名企業が Salesforce + Slack + Jira を導入

ユーザー属性SalesforceSlackJira
email[email][email][email]
givenName[First Name][First Name][First Name]
sn[Last Name][Last Name][Last Name]
department[Department][Custom: dept_ja]-
manager[Manager ID]-[Custom: manager]
groups[Role][Channel Mapping][Project Role]

実装コスト

  • HENNGE One:100~150 万円(UI ベース)
  • Okta:150~250 万円(OEL による複雑さ)
  • LOCKED MSO:80~120 万円(シンプルな設定)

メタデータ自動更新の実装

URL ベースのメタデータ交換

IdP がメタデータ公開 URL を提供することで、SP は自動的に最新メタデータを取得できます。

メタデータ公開 URL 例:

https://idp.company.com/saml/metadata.xml

メリット

  • 証明書更新が自動化される
  • 手作業のミスを削減

デメリット

  • URL がインターネット上に公開される
  • セキュリティ対策が必須(IP 制限等)

LOCKED MSO でのメタデータ自動更新設定

  1. LOCKED MSO 管理画面で SAML アプリケーション設定
  2. メタデータ URL を取得:https://app.locked.jp/saml/metadata/{AppID}
  3. Salesforce(等)の SAML 設定でメタデータ URL を入力
  4. 自動更新を有効化

トラブルシューティング

よくあるエラーと対応

エラー原因対応
署名検証失敗証明書不一致メタデータの再取得
NameID マッピングエラーNameID 形式が異なるNameID 形式を確認
属性が反映されないマッピング設定漏れマッピングを再確認
タイムアウトIdP サーバー障害IdP のステータス確認

デバッグのコツ

SAML リクエスト・レスポンスを確認するツール:

  • SAML Tracer(ブラウザ拡張)
  • Okta SAML Assertion Viewer
  • onelogin SAML Test

LOCKED MSO での SAML 統合の優位性

項目OktaHENNGE OneLOCKED MSO
メタデータ自動更新
属性マッピング UI△(複雑)
NameID 柔軟性
サポート△(英語)
実装期間長(3~6 ヶ月)短(1~2 ヶ月)短(1~2 ヶ月)

外部参考リンク

関連記事

LOCKEDの詳細を見る

シングルサインオン・認証管理でお悩みなら、LOCKEDの無料デモをお試しください。

資料請求・デモ依頼はこちら →

商標について:本記事に記載されているOktaHENNGE OneOneLoginAzure ADSalesforceSlackJira等の製品名・サービス名は、各社の商標または登録商標です。

免責事項:本記事の情報は執筆時点のものであり、各製品の最新の機能・料金・仕様については、各社の公式サイトをご確認ください。本記事の内容に基づく判断・行動について、当社は一切の責任を負いかねます。

LOCKED MSO

この課題、LOCKEDで解決できます

「IDaaS導入RFPテンプレート」など、検討に役立つ資料を無料でご用意しています

LOCKEDシリーズの詳細資料を無料でダウンロード

導入事例、機能詳細、他社比較など、検討に必要な情報をまとめた資料をご用意しています

まずは資料で詳細を確認

製品資料で機能・料金・導入事例をまとめてご確認いただけます

資料をダウンロード