現在の案件ではSaml認証でSSO(シングルサインオン)をつかっているのでこちらについての調査を。
Contents
Saml認証とは
認証情報をやりとりする書式のようです。そもそもがSaml=SecurityAssertionMarkupLanguageになります。
XML形式でユーザーの認識情報をやりとりするようで、異なるインターネットドメイン間でユーザーの認証情報を交換することでシングルサインオン(=1回認証を通れば、関連するすべてのサービスが使える)を実現する場合によく使われます。
現場ではMicrosoftアカウントにログインをすると、他のサービスでも自動的にログインができるようになっています。
Oauthとの違い
これだけ聞くと、Oauthと近いのかな?なんておもわれることが多いと思いますが、Oauthとの違いとして、「認証(=本人か否かの特定)」と「認可(=ある行動をとってよいかいなか)」の違いがあるようです。
Oauth=単純なアクセス権の付与、認可。
Saml=ユーザー自体の特定を行う、認証。
仕組み
登場人部としては
ユーザー・・読んで字の如くログインするユーザーです。
Idp(IDプロパイダー)・・ユーザーの認証情報を管理し、ユーザーがサービスにアクセスしようとした際の認証を行います。例 Microsoftアカウント
SP(サービスプロバイダー)・・ユーザーが利用するクラウドサービスやWebアプリケーションになります。例 上記のアカウントを利用したWebサービス
簡単なフローは下記のようになります。実際にログインしていると下記が高速に行われます。
- ユーザーがSPにログインしようとする。
- 未認証であればIdpへリダイレクトし、ログインすればIdpSAMLアサーションを発行。
- ユーザーをSPへリダイレクトし、SAMLアサーションをSP二層インすることでログインが完了する。
Saml認証のメリット
ログイン情報を1つにできる
あるサービスにログインできれば、他の関連したサービスにもログインできるため、パスワードを覚える必要がなく、そういった意味ではセキュリティリスクの低減につながります。
作業効率化が吐かれる
SSOのメリットですが、一度のログインで複数のアプリケーションにアクセスできるため、大変効率的です。(個人的には確かにメリットが大きいなあと思っております。)
Saml認証のデメリット
Idpサービスが停止するとログインが困難に・・
Idpを経由してすべてのサービスにアクセスしているため、SSOに依存しているサービスが停止すると、連携しているサービスの全てへのアクセスが困難になります。
情報漏洩の被害が大きい
SSOで一元管理されているため、Idpサービスの認証を突破されてしまうと情報漏洩被害の影響が広範囲に及びます。
参考リンク
SAML認証とは?仕組みや流れ、メリット・デメリットを徹底解説