Security Assertion Markup Language(SAML)は、最も長い歴史があり、最も広く採用されているIDプロトコルの1つとして、当事者間のID情報の安全なやり取りを支えています。XML形式をベースとしたSAMLは、シングル サインオン(SSO)に関連して最もよく使用されていて、当事者間で認証・認可データを効率よくやり取りするための安全なメカニズムを提供し、機密ユーザー情報を強固かつ確実に保護します。

SAMLプロバイダ

SAMLプロバイダは、信頼された環境内でサービスやリソースにユーザーが確実にアクセスするためのシステムです。

SAMLプロバイダには2つのタイプがあります。

  • IDプロバイダ(IdP):ユーザーを認証し、認可情報をSPに渡します。
  • サービス プロバイダ(SP):IdPから受け取った認証・認可情報に基づいてユーザーがリソースにアクセスすることを許可します。
SSOとSAMLプロバイダの統合の仕組み

SSOによって、一元的なSAMLプロバイダを介した認証が可能になり、さまざまなサービスへのユーザー アクセスが合理化されます。ユーザーがSAMLプロバイダによって一度認証されると、SAMLプロバイダはその認証ステータスを参加しているサービスに安全に伝え、これによりユーザーはログインを繰り返さずにサービスにアクセスできるようになります。

SAMLのメリット

SAMLには、開発者や管理者が使いやすいライブラリ、ツール、ドキュメントの成熟したエコシステムがあります。

SAMLを採用するメリットをいくつかご紹介します。

  • ユーザー エクスペリエンス:SAMLでは、SSOと連携IDにより複数の資格情報セットをユーザーが覚えておく必要がなく、ログイン資格情報セットを1回入力すれば複数のアプリケーションとサービスにアクセスできます。
  • セキュリティの強化:SAMLでは強力な認証方法と安全な通信プロトコルを使用します。このような強化された対策により、機密データが守られ、個人情報の盗難などのサイバー脅威(中間者攻撃など)のリスクを低減します。
  • 標準化されたプロトコル:SAMLはさまざまなプラットフォーム、サービス、アプリケーションに広く採用されています。この標準化により、異なるシステムの接続時に相互運用性が確保され、統合作業が簡素化されます。
  • コスト削減:SAMLは、粒度の細かいアクセス制御と一元化されたID管理によって認証プロセスを合理化して、管理コストの削減に役立ちます。また、手動によるユーザー管理の必要性も軽減します。
SAMLの代替プロトコル

SAMLは、特に既に成熟したSAMLインフラストラクチャを持つ組織や、レガシー システムがSAMLを基盤として構築されている組織に人気がありますが、その代替プロトコルも存在します。こうした代替プロトコルにLightweight Directory Access Protocol(LDAP)OpenID Connect(OIDC)の2つがあります。

LDAPは、ネットワーク内のディレクトリ サービスを維持し、これにアクセスするために設計された、成熟したプロトコルです。LDAPは主に認証のオンプレミス ハブとして機能します。SAMLは、1つのユーザー資格情報セットを使用する合理化された手法で、クラウドベースのコンピューティング環境に適し、高い拡張性を備えています。

OIDCは、SAMLの代わりに使用できる新しい認証方法です。OIDCは一般的により軽量で高性能なプロトコル、SAMLはより安定した拡張性の高いプロトコルと見なされています。

既にSAMLを使用していて、OIDCを検討する場合は、以下の点に留意してください。

  • 既存のインフラストラクチャ:既に成熟したSAMLインフラストラクチャがある場合、OIDCに切り替えるには大幅な変更と移行作業が必要になる可能性があります。このような場合、そのままSAMLを使用する方が現実的で、コストも抑えることができるかもしれません。
  • レガシー システム:SAMLはOIDCよりも前からあるため、レガシー アプリケーションやシステムでサポートが充実しています。アプリケーションのバージョンが古く、SAMLはサポートしているが、OIDCをサポートしていない場合は、SAMLの方がおそらく統合作業が容易です。
NGINXがお手伝いできること

NGINXは、認証・認可戦略にはいくつかの選択肢があることを理解しています。多くの場合、問題はどの選択肢を選ぶかではなく、いつ使うかです。

SAMLがお客様の認証・認可戦略に合うかどうかを明らかにするには、今すぐお問い合わせください。また、安全なデータ交換のためのNGINXのSAML実装や、SAMLを使用するその他の方法については、以下のリソースをご覧ください。