機能

リソース

連携

>

>

SAMLとOAuthの違い

SAMLとOAuthの違い

SAMLとOAuthの違い

HC

橋爪兼続

2023/07/21

シングル・サインオン(以下、SSO)を実現する方法として、SAMLとOAuthとがあります。この2つについて何が異なるのか良く解らないという事が多いと思います。この記事では、この2つの違いについてわかりやすく解説します。

認証と認可

 SAMLとOAuthを理解するためには、認証と認可の違いを理解する必要があります。この2つはよく似ていますが、異なります。

認証(Authentication): 「あなたは誰ですか?」 を確認することです。例えば、次に挙げたものを確認することが認証です。

  • What you are:相手自身の特徴を確認 例)指紋認証や顔認証

  • What you have:相手が持っているものを確認 例)免許証やパスポート

  • What you know:相手が知っていることを確認 例)email と password

認可(Authorization):認可は 「あなたには、リソースにアクセスする権限がありますか?」 を確認することです。例えば次のような事例が認可です。

  • 家の鍵を持っているから、家に入ることができる

  • バスの乗車券を持っているから、バスに乗ることができる

SAMLは「認証」に対応するプロトコルであり、OAuthは「認可」に対応するプロトコルです。

SAMLとOAuthの仕組み

SAMLの仕組み

SAMLでは認証情報を提供する側を「IdP(Identity Provider)」と呼び、認証情報を利用する側(一般的にアプリケーションやサービス側)を「SP(Service Provider)」と呼びます。SAMLによる認証フローがどのようになっているのかを簡単にご紹介します。

*SP Initiatedによるフロー

シングルサインオン(SSO)に必要なSAMLとは? https://www.idearu.info/article/system/single-sign-on-saml より引用