亀のコツコツクラウドインフラ

2025年1月10日

SAMLとは?AWSやクラウド環境で活用される認証プロトコルの基礎知識

はじめに

SAMLはXMLベースの認証プロトコルです。

以下のような方におすすめの内容になっています。

  • IDプロバイダーで設定するSAMLの意味がわからない
  • 外部サービスとの連携を安全にしたい

この記事では、SAMLの基本から、AWSや他のクラウド環境での事例までをわかりやすく解説します。

SAMLとは?

SAML(Security Assertion Markup Language)は、シングルサインオン(SSO)やパスワードレス認証を行うために使用されるプロトコルです。

例えば、企業内のユーザーが一度ログインするだけで、社内システムの他にクラウドサービスにアクセスできる仕組みを作成するときに使用されるのがSAMLです。

仕組み

SAMLを理解するために、2つの主要な役割をの関係を知っておく必要があります。

  • Identity Provider(IdP)
  • Service Provider(SP)

IdPはユーザー認証をする役割を持ち、SPは認証情報を受け取って、アクセスを許可します。

認証フローは以下のように進みます。

  1. IdPにアクセスをリクエスト
  2. IdPが認証をする
  3. 認証トークンをIdPに送り、他サービスも認証

SAMLが重要な理由

SAMLは利便性とセキュリティの高さから注目されています。

SSOにより、ユーザーは一度のログインで複数のサービスのログインを行うことができます。
パスワードの使い回しや忘れるといったリスクを軽減することができます。

AWS等のクラウド環境では、複数アカウントの管理を求められることが多いので、SAMLを活用することで管理者の負担を大幅に減らすことができます。

外部サービスとの連携も行えるので、クラウド環境と統合する際によく使用されます。

メリットとデメリット

今までの内容からメリットをまとめました。

  • セキュリティの向上
  • SSOによる利便性の向上
  • クラウド環境と統合がしやすい
  • 導入実績が豊富

SAMLの最大のメリットは、セキュリティと利便性の両立です。

ユーザーは一度の認証で複数のリソースにアクセスできるため、システム全体が使いやすくなります。
フィッシングや不正アクセスのリスクを抑えることができます。

逆にデメリットも存在します。

  • 初期設定の複雑さ(メタデータや証明書の管理)
  • OIDC等の新しいプロトコルに比べて少し重い
  • 柔軟性が低く、モバイルや軽量アプリケーションに不向き

設定がやや複雑であることが挙げられます。

メタデータや証明書の管理が必要で、特に証明書の有効期限が切れた場合、サービスが利用できなくなることがあります。

モバイルアプリや軽量な認証が必要な場合には、SAMLよりもOIDC(OpenID Connect)のほうが適している場合があります。

SAMLのユースケース

一部のユースケースをご紹介します。

クラウドサービスへのシングルサインオン(SSO)

企業では、AWSやAzureなど複数のクラウドサービスを使用することが一般的です。

SAMLを活用することで、社員は一度ログインするだけで、すべてのクラウドリソースにアクセスできるようになります。

エンタープライズ環境の統合

SAMLは、オンプレミスの認証基盤(Active Directoryなど)とクラウドサービスをつなぎ機能します。

これにより、企業は既存の認証基盤を活かしながら、クラウド移行をスムーズに行うことができます。

特定サービスとのセキュアな連携

SAMLを使うことで、SaaS製品やクラウドサービスと安全に認証を統合できます。

これにより、外部サービスにアクセスする際のセキュリティを向上させると同時に、運用を簡単にできます。

SAMLとOIDCの比較

SAMLとOIDCを比較して、場合によって使い分けましょう。

 SAML (Security Assertion Markup Language)OIDC (OpenID Connect)
用途エンタープライス環境やSSOモバイルやクラウドネイティブ環境
認証プロトコルXMLベースの認証プロトコルOAuth2.0を拡張したJSONベースの認証プロトコル
対応システムActive Directory、Okta、AWS IAM、Google Workspace等AWSCognito、Google、Facebook、GitHubActions
軽量さ重い(XMLを利用)軽量(JSONを利用)
セキュリティ高度なセキュリティ(証明書や署名による検証)セキュリティは十分だが、SAMLに比べてシンプル
設定難易度エンタープライズ環境、複数クラウドサービスの一括管理クラウドネイティブアプリ、サーバーレス環境
推奨環境AWS IAMのSAML IDプロバイダー、Azure ADのSSOGitHub ActionsとAWSのOIDC連携、AWS Cognitoでの認証管理

まとめ

SAMLは、エンタープライズ環境やクラウドサービスにおける認証基盤としての役割を果たすプロトコルです。

セキュリティ・利便性の向上というメリットがありますが、複雑で少し重いというデメリットがあります。

クラウド環境でも使用されることがあるので、この記事を参考にSAMLの基本を理解しておきましょう。

OIDCを深掘りをして、AWS IAMでのSAML設定手順を実践してみてください。

この記事を書いた人

コツコツ亀

コツコツ亀

Webエンジニアとして活動中
AWSを使用してWebアプリケーションを作ったり、サーバーを構築したりしています。

関連記事

新着記事