認証・認可の規格(SSO、SAML)

認証・認可の規格のSSOとSAMLについてまとめます。

シングルサインオン

企業内での複数のシステム間のアカウント管理をバラバラに行わず、一度サインインしたら全システムがサインインした状態になるような仕組みです。
方法としてはウェブサービスでは、各サービスの前段にHTTPプロキシをおき、認証を代行する方法や、各サービスに認証を代行するエージェントを入れ、ログイン時に中央のサーバにアクセスしてログイン済みか確認する方法、認証サービスを使用する方法があります。

SAML(Security Assertion Markup Language)

SAMLはHTTP/SOAPを前提としたシングルサインオンの仕組みです。
octa、OneloginといったSaasで提供されているサービスもあります。SAMLはOASIS(Organization for the Advancement of Structured Information Standards)で策定されている規格です。ドメインをまたいだサービス間でシングルサインオンできるようになっています。SAMLのSaasでは外部のドメインにあるGoogleのG Suiteなどとの連携が可能です。
ユーザーがWebサービス(GoogleなどのService Provider:SP)にアクセスするとSPはリクエストをSAML認証要求とともにOneLoginなどのIdPへとリダイレクトします。IdPはこの認証要求に基づき認証処理を行います。IdPでの認証が成功するとIdPはSPに対して認証情報やユーザの属性などの情報を発行します。これらの認証時に取得した情報をアサーションといい、SPはアサーションを元にアクセス制御を行います。SPとIdPの間ではパスワードのやりとりが行われないためセキュリティが高い認証方法となります。今回はSP-initiated SAMLのながれとなり、もうひとつIdP-initiated SAMLもあります。OAuthとの違いはSAMLは認証、OAuthは認可のための規格となります。
OpenIDとの違いは、事前の公開鍵の交換、設定、連携時のユーザへの同意確認を行わない、など強制力があるため企業、団体などすべてのユーザに利用させたいケースで利用することが多いです。(toC向けの一般ユーザー向けのサービスには向いていません。)



この記事が気に入ったらサポートをしてみませんか?