kaeken(嘉永島健司)Techブログ

主に情報科学/情報技術全般に関する知見をポストします。(最近は、特にData Science、機械学習、深層学習、統計学、Python、数学、ビッグデータ)

SAML2.0(Security Assertion Markup Language 2.0)概要

SAML2.0(Security Assertion Markup Language 2.0)概要

SAML 2.0 - Wikipedia

SAML2.0(Security Assertion Markup Language 2.0)は、異なるセキュリティドメイン間でユーザー認証および認可情報を交換するためのXMLベースのオープン標準規格です。主にシングルサインオン(SSO)を実現するために使用されます。

特徴

  • クロスドメインSSO: 異なるドメイン間でユーザー認証情報を共有し、ユーザーは一度の認証で複数のサービスにアクセスできます。
  • 標準化: OASISによって標準化されており、異なるベンダーの製品間でも相互運用性が確保されます。
  • セキュリティ: デジタル署名と暗号化により、認証情報の機密性と完全性を保護します。
  • 柔軟性: さまざまな認証および認可シナリオに対応できます。

分類

  • 認証(Authentication): ユーザーの身元を確認するプロセス。
  • 認可(Authorization): ユーザーが特定のリソースにアクセスする権限があるかどうかを確認するプロセス。
  • 属性(Attribute): ユーザーに関する追加情報(例:役職、部署)。

上位概念・下位概念

  • 上位概念:
    • IDフェデレーション
    • シングルサインオン(SSO)
    • XML
  • 下位概念:
    • SAMLアサーション
    • SAMLプロトコル
    • SAMLバインディング

メリット

  • ユーザーエクスペリエンスの向上: ユーザーは複数のサービスに対して個別にログインする必要がなくなり、利便性が向上します。
  • セキュリティの向上: 中央集中型の認証により、セキュリティポリシーの適用と管理が容易になります。
  • 管理コストの削減: ユーザーアカウントの管理が簡素化され、IT部門の負担が軽減されます。

デメリット

  • 複雑性: SAML2.0は複雑な規格であり、実装と設定に専門知識が必要です。
  • 依存関係: IDプロバイダ(IdP)とサービスプロバイダ(SP)間の依存関係が発生し、どちらかが停止すると影響が及びます。
  • パフォーマンス: XMLベースであるため、処理に時間がかかる場合があります。

既存との比較

  • OAuth 2.0: OAuth 2.0は認可に特化した規格であり、SAML2.0は認証と認可の両方をカバーします。
  • OpenID Connect: OpenID ConnectはOAuth 2.0をベースとした認証規格であり、SAML2.0と同様にSSOを実現できます。

競合

  • OAuth 2.0
  • OpenID Connect
  • Kerberos

導入ポイント

  • 要件定義: 必要な認証および認可機能、セキュリティ要件、パフォーマンス要件などを明確にします。
  • IdP/SPの選定: 要件に合ったIdPおよびSPを選定します。
  • 設定: IdPとSP間の信頼関係を確立し、SAML設定を行います。
  • テスト: 導入前に十分なテストを行い、問題がないことを確認します。

注意点

  • セキュリティ: SAMLアサーションの機密性と完全性を保護するために、適切な暗号化と署名を使用する必要があります。
  • パフォーマンス: 大規模な環境では、パフォーマンスの問題が発生する可能性があります。適切なチューニングが必要です。
  • 相互運用性: 異なるベンダーの製品を使用する場合、相互運用性を確認する必要があります。

今後

  • モバイル対応: モバイル環境での利用が増加しており、モバイル対応の強化が求められます。
  • クラウド対応: クラウドサービスの利用が拡大しており、クラウド環境での利用を考慮した規格の進化が期待されます。
  • セキュリティ強化: 新たなセキュリティ脅威に対応するため、規格のセキュリティ強化が進められます。

関連キーワード

  • シングルサインオン(SSO)
  • IDフェデレーション
  • IDプロバイダ(IdP)
  • サービスプロバイダ(SP)
  • SAMLアサーション
  • SAMLプロトコル
  • SAMLバインディング
  • OAuth 2.0
  • OpenID Connect