SAML2.0(Security Assertion Markup Language 2.0)概要
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