SSOとSAMLの説明、誰にでもわかるように
SSOやSAMLはしばしば曖昧に使われ、異なる解釈が可能です。この記事では、これらの概念を明確にし、それらがどのように関連しているのかを説明し、理解しやすくするための実例を提供します。
SSOやSAMLはしばしば曖昧に使われ、異なる解釈が可能です。この記事では、これらの概念を明確にし、それらがどのように関連しているのかを説明し、理解しやすくするための実例を提供します。
SSOとは何か?
SSO(シングルサインオン)は、ユーザーが一度ログインすると複数のアプリケーションやサービスに個別にログインすることなくアクセスできる認証プロセスです。しかし、この一般的な定義は、SSOが使用されるさまざまなシナリオに適用できます。
SSOが関与するさまざまなシナリオがあります。
ソーシャルSSO
時には、ソーシャルログインをソーシャルSSOと呼ぶことがあります。たとえば、ユーザーが Google サインインを使って新しいアプリにアカウントを作成し、Google に保存されたアイデンティティと情報を直接使用することができます。このシナリオでは、ユーザー自身が自分のアイデンティティを管理します。
ソーシャルSSOは、ユーザーが情報をコントロールしやすくし、アカウント作成とログインの過程での煩雑な手順を減らします。ソーシャルSSOは通常、OAuth 2.0やOIDCのようなオープンスタンダードプロトコルに依存しています。
エンタープライズSSO
まず、アイデンティティプロバイダーとサービスプロバイダーの概念を簡単に説明します。
- アイデンティティプロバイダー (IdP) は、あたかもあなたのアイデンティティの「門番」のようなものです。それはあなたのログイン情報を保持し、あなたが誰であるかを確認するシステムです。「はい、この人は自分が主張している人です」と言う信頼できる権限のように考えてください。例として、Google Workspace、Microsoft Entra、Okta Workforce Identity などがあります。
- サービスプロバイダー (SP) は、あなたのアイデンティティが確認された後にアクセスしたい「アプリケーション」や「サービス」です。アプリやウェブサイトのような、あなたがログインしようとしている場所です。たとえば、Zoom、Slack、または会社の内部ツールはすべてサービスプロバイダーです。
簡単に言えば、アイデンティティプロバイダーはあなたが誰であるかを証明し、サービスプロバイダーはあなたのアイデンティティが確認されたらそのサービスにアクセスできるようにします。
エンタープライズSSOは、よりビジネスに焦点を当てたシナリオで使用され、上記の2つの用語で区分される、典型的なケースが2つあります:IdP発信のSSOとSP発信のSSOです。これらの用語は技術的に思えるかもしれませんが、シナリオは実際には非常に単純です。
IdP発信のSSO
従業員として、会社のアプリケーションやリソースにオンボーディングする時を考えてみてください。通常、HR がアカウントを作成します。次に、そのアカウントを使用して Okta や Google Workspace のようなプラットフォームにログインします。ログインすると、企業ポータルにリダイレクトされ、給与システムやコラボレーションツール、Workday などのすべての企業アプリケーションにアクセスできます。
SP発信のSSO
視点を変えて、別の視点から見てみましょう。時には、特定の製品のログインページから始める必要があります。たとえば、同僚とオンライン会議を行うために Zoom を使用したい場合、「SSOでログインする」オプションが表示されます。このシナリオは、SP発信のSSOとして知られています。
エンタープライズSSOが解決する問題
エンタープライズSSOの最初の利点は、企業が従業員のアイデンティティを簡単に、柔軟に、安全に管理できることです。
たとえば、あなたが会社を経営していて、すべての従業員が購入した製品やサービスにアクセスする必要があるとしましょう。会社が生成したリソースは会社に属するため、企業所有のアイデンティティシステムが必要です。従業員が個人的なアイデンティティを使用して会社のリソースにアクセスすると、セキュリティや管理の課題が生じます。
一方、SP発信のSSOのようなシナリオにおいて、従業員は会社所有の複数のアプリケーションやサービスにアクセスします。従業員がオンボーディングまたはオフボーディングする際、HR は会社のすべての製品やサービスにおいて多くのアカウントを作成および削除する必要があり、それは面倒で時間がかかります。
エンタープライズSSOは、このプロセスをユニバーサルアイデンティティシステムを通じて簡素化し、SCIM(クロスドメインアイデンティティ管理システム)やJust-in-Timeプロビジョニングのようなツールでさらに効率的にします。
IdP発信のSSOは、「エンタープライズ対応」になりたい製品開発者にとって有益です。たとえば、最初は個々の消費者に焦点を当てたスタートアップで、後に大企業があなたの製品を使用したい場合、彼らは従業員が Microsoft Entra を使ってログインすることを要求するかもしれません。この場合、取引を成立させるためにエンタープライズSSOを製品に統合する必要があります。
SAMLとは?
SAML(セキュリティアサーションマークアップ言語)は、認証と認可のためのオープンスタンダードプロトコルです。OAuthやOIDCとともに、SAMLは特に従業員のアイデンティティ管理において、アイデンティティ管理システムで広く使用されています。OktaやMicrosoft Entraのような商業アイデンティティプロバイダーは、標準プロトコルの一つとしてSAMLを一般的にサポートしています。
いくつかの古いシステムやソーシャルサインインプロバイダーもSAMLのサポートを提供しているため、システムにSAMLを組み込むことで、幅広いアイデンティティプロバイダーとの互換性と将来のエコシステムの成長を確保することができます。
SAMLが必要な場合
SAMLはしばしばエンタープライズSSOのシナリオで使用されます。たとえば、このような状況を考えてみてください:
あなたの営業チームが製品開発者に連絡して、「大きなクライアントがSAMLサインインを要求している。この技術をサポートする必要がある」と言います。
SAMLやIAM(アイデンティティとアクセス管理)に詳しくないエンジニアの場合、最初のステップはおそらく「SAML」または「SAMLサインイン」を検索することになるでしょう。
最終的には、エンタープライズSSOを製品に統合し、「エンタープライズ対応」とすることが目的です。SAMLのような技術を使って大規模な顧客の安全な認証ニーズを満たすことになります。
SAMLの動作原理
以下はその二つのタイプの簡単な分解です:
SP発信フロー
- ユーザーがSPのリソースにアクセスしようとします。
- SPはユーザーをSAML認証リクエストでIdPにリダイレクトします。
- ユーザーはIdPでログインし、認証されます。
- IdPはユーザーのアイデンティティとおそらく認可データを含むSAMLアサーションを生成します。
- IdPは通常、SAMLアサーションをユーザーのブラウザ経由でSPに返送します。
- SPはアサーションを処理し、それを検証してユーザーにアクセスを許可/拒否します。
IdP発信フロー
- ユーザーはすでにIdPにログインしており、IdPのポータルからサービス/リソースを選択します。
- IdPは、ユーザーの現在のセッションに基づいてアイデンティティと属性を含むSAMLアサーションを生成します。
- SPの事前リクエストなしに、IdPは直接アサーションをSPに送ります。
- SPはアサーションを処理し、その整合性を検証し、ユーザーのアイデンティティと属性を抽出します。
- SPはアサーションに基づいてアクセスを許可または拒否します。
SAMLが技術的な観点からどのように機能するかを見るには、SAMLの動作原理をチェックしてください。
SAMLとSSOの違い
SAMLとSSOの定義はしばしば混同されますが、単純に以下のように説明できます:
- SSOは、アプリやソフトウェアで使用される認証プロセスで、ユーザーが一度ログインすると複数のサービスにアクセスできるようにします。
- SAMLは、主にエンタープライズアイデンティティ管理で使用される技術プロトコルで、安全に認証データを交換します。
次のことを想像してください:朝、オフィスに入り、各アプリケーションに個別にログインする代わりに、一度ログインすればすべてにアクセスできるようになります。このシームレスな体験がSSO(シングルサインオン)です。それはあなたの職場のツールのドアをすべて開ける普遍的な鍵のようなものです。
しかし、SSOはどのように機能するのでしょうか?
ここでSAML(セキュリティアサーションマークアップ言語)が登場します。SAMLは、あなたのログインシステム(アイデンティティプロバイダー、略してIdP)と使用したいアプリ(サービスプロバイダー、略してSP)の間の信頼できるメッセンジャーのようなものです。SSOを通じてログインするとき、SAMLはIdPからアプリへのあなたのアイデンティティの「証拠」を安全に送信し、あなたが自分自身であることを確認します。
したがって、要約すると:
- SSOはユーザー体験です:1回のログインで複数のアプリにアクセス。
- SAMLは、そのシームレスな体験を可能にする舞台裏のプロトコルで、アイデンティティの確認を安全に処理します。
SSOは利便性を向上させ、SAMLはすべてが安全で接続されたままであることを保証し、再度考える必要なくすべてにアクセスできるようにします。
エンタープライズSSOは他のプロトコルを使用しますか?
はい、SAMLに加えて、OIDCもエンタープライズSSOシナリオで一般的に使用されるプロトコルです。たとえば、Logtoのエンタープライズコネクタでは、Microsoft Entra(OIDC)とMicrosoft Entra(SAML)の両方をサポートしています。
SAML SSOを使用すべきか?
エンタープライズ顧客に販売している場合、できるだけ早くSAMLのサポートを考慮することが重要です。しかし、SAMLプロトコルのサポートに焦点を当てるだけでなく、全体のエンタープライズSSO認証フローを考慮してください。考慮すべき重要なシナリオをいくつか示します:
- クライアントがエンタープライズSSOを自己オンボーディングし、設定できるようにします。
- 従業員がマルチテナントアプリケーションで適切な組織に自動的に参加できるようにします(これは、Just-in-TimeプロビジョニングとSCIMで実行できます)。
- 消費者向けログインプロセスと互換性のあるエンドツーエンドのログインフローを実装します。
LogtoでのSAMLとエンタープライズSSOの実装
LogtoはエンドツーエンドのエンタープライズSSOフローを提供し、複数の有名なSAMLコネクタをサポートしています。多くの一般的なシナリオに統合でき、必要とされるでしょう。Logtoのすべての機能を、Logto CloudからLogto OSSまで、Logtoのウェブサイトで探ってみてください。