概要
支援士に出てきたんでまとめます。
SSOとは
一度のログインで複数のサービスにログインすることです。
例えば、Google Workspaceは、一度サインインするだけで、GmailとかGoogleMeetとか使えますね。
Gmail使うのにログイン、GoogleMeetするのにログインみたいに、その都度その都度ログインする必要ありません。
SSO仕組み
SSOは、認証方法がいくつかあります。
それぞれ、紹介します
代理認証方式
画像の通りです。特に説明は不要かと。
エージェントが、ログインを検知して自動ログインをするというシンプルなものです
エージェント方式
代理認証方式が自身のPCにエージェントをインストールしていたのに対し、エージェント方式はwebサイトのwebサーバーやアプリケーションサーバー(APサーバー)にエージェントをインストールするもの。
使用するサーバーにインストールする必要があるため、トラフィックに応じて自動でサーバーを増減するクラウドサーバーだと、サーバーを増やしたときに、手作業でインストールするなどしないといけなくて、クラウドとは不向き。
リバースプロキシ方式
リバースプロキシサーバーを経由する方法です。
リバースプロキシサーバーがユーザーの代わりにログインします。
既存のアプリケーションに、変更を加えないでいいため、レガシーなオンプレアプリなどで負担が少なくSSOを実装できます。しかしリバースプロキシサーバーを必ず経由するため、リバースプロキシサーバーに負担が増加した時に# 概要
支援士に出てきたんでまとめます。
SSOとは
一度のログインで複数のサービスにログインすることです。
例えば、Google Workspaceは、一度サインインするだけで、GmailとかGoogleMeetとか使えますね。
Gmail使うのにログイン、GoogleMeetするのにログインみたいに、その都度その都度ログインする必要ありません。
SSO仕組み
SSOは、認証方法がいくつかあります。
それぞれ、紹介します
代理認証方式
画像の通りです。特に説明は不要かと。
PCに常駐しているエージェントが、ログインを検知して自動ログインをするというシンプルなものです
エージェント方式
代理認証方式が自身のPCにエージェントをインストールしていたのに対し、エージェント方式はwebサイトのwebサーバーやAPサーバー(APサーバー)にエージェントをインストールするもの。
使用するサーバーにインストールする必要があるため、トラフィックに応じて自動でサーバーを増減するクラウドサーバーだと、サーバーを増やしたときに、手作業でインストールするなどしないといけなくて、クラウドとは不向き。
リバースプロキシ方式
リバースプロキシサーバーを経由する方法です。
リバースプロキシサーバーがユーザーの代わりにログインします。
既存のアプリケーションに、変更を加えないでいいため、レガシーなオンプレアプリなどで負担が少なくSSOを実装できます。しかしリバースプロキシサーバーを必ず経由するため、リバースプロキシサーバーに負担が増加する可能性があります。
透過型方式
仕様としては、透過型のゲートウェイが通信の間に立ち、ユーザーの代わりにログインするものです。
リバースプロキシ方式と似てるなと思いますが、正確に言えば、リバースプロキシが表立って門番みたいにあるものだとすれば、透過型ゲートウェイは、裏でこっそり見守ってる感じです。裏でユーザーの知らないところで勝手にログインしてるみたいな?感じです。ここ詳しいことわからないんで深くまで言いません。ごめんなさい。
SAML
SAMLは、イラストにするより文字のほうが分かりやすいかな?と思うので文字で説明します。
SAMLはidp(アイデンティティプロバイダー:認証を担当する側)とSP(サービスプロバイダー:サービスを提供する側)によって成り立ちます。
話はそれますが、上の画像などここで使ってる画像はcanvaで作成してます。
canvaにはログイン時にGoogleでログインという方法があります。はい、そうです。これがSAMLです。
ここのGoogleでログインする方法がまさしくSAMLです。
誤解がないように言うと、GoogleでログインすることがSAMLなのではありません。例えば、githubアカウントでログインするのにも、YahooアカウントでログインするのにもSAMLは使われます。SAMLは認証の方法であって、あくまでその実用例でGoogelアカウントでログインというのを例に挙げています。
詳しく説明します。
ユーザーがcanvaのログインページに到達し、Googleでログインを指定します。
この時SPといわれるのがcanvaで、idpは、Googleです
↓
ユーザーはGoogleのログインページにリダイレクトされ、認証情報を入力します。
↓
認証が成功すると、ユーザーには見えないところで、GoogleはSAMLアサーション(トークン)を生成します。これにはユーザーの識別情報が含まれています。
↓
そしてそのアサーションをcanvaに送信します。
↓
canvaはその情報をもとにユーザーをログインさせます。
これがSAMLの仕組みです。
以上です。