このブログはこちらの英語ブログの機械翻訳です。
SAMLはSecurity Assertion Markup Languageの略で、アイデンティティプロバイダー(IdP)からサービスプロバイダー(SP)に認証情報を渡すオープンスタンダードです。簡単に言うと、アプリケーション間の安全な通信を可能にし、ユーザーは単一の認証情報セットでアクセスできるようになります。
SAMLが何に使用されるか、SAMLの仕組み、および企業がSAMLからどのようなメリットを得られるかについて深く掘り下げる前に、このプロセスを可能にするSAMLプロバイダーの種類を理解する必要があります。では、そこから始めましょう。
SAMLプロバイダーの種類
SAMLが機能するためには、アイデンティティプロバイダーとサービスプロバイダーが必要です。
- IDプロバイダーはユーザーを認証します: これらのシステムは、ユーザーが本人であることを確認し、そのデータ(およびユーザーのアクセス権)をサービスプロバイダーに送信する役割を担います。Okta、Microsoft Active Directory(AD)、およびMicrosoft Azureはすべて、IdP(Identity Provider)の例です。
- サービスプロバイダーはユーザーを承認します。これらのシステムは、アイデンティティプロバイダーからの認証データを使用して、サービスへのアクセスを許可します。例としては、Salesforce、Box、およびその他の最高クラスのテクノロジーがあります。
したがって、SAMLは、ユーザーのアイデンティティの認証と、サービスを使用するための認可の間のリンクです。これは、IdPとSPが通信するのに役立つ言語です。雇用主(IdP)とSaaS企業(SP)が両方ともSAMLを実装している場合、認定されたユーザーをシームレスに認証できます。
SAML は何に使用されますか?
SAML は、ユーザーがサービスまたは Web サイトにサインインする方法を完全に変更し、アイデンティティプロバイダー、サービスプロバイダー、およびエンドユーザーのすべての関係者にとって、フェデレーション認証および承認プロセスを簡素化することを目的としています。
SAMLは、ログインを試みるたびにユーザー名やパスワードなどの認証情報を要求する代わりに、ユーザーが本人であるかどうかを確認し、アクセスを許可または拒否するためのアクセス許可レベルを確認するのに役立ちます。さらに、SAMLを使用すると、IDプロバイダーとサービスプロバイダーを個別に存在させることができ、組織はユーザー管理を一元化し、さまざまなソフトウェアソリューションへのアクセスを提供できます。
SAMLは、シングルサインオン(SSO)を有効にするためによく使用されます。これにより、IDプロバイダーとサービスプロバイダー間で認定されたユーザーが認証されます。たとえば、SAML構成のアプリケーションを展開する組織は、従業員が1つの認証情報セットのみを使用して、すべての生産性およびコミュニケーションツールに直接アクセスできる単一のダッシュボードにログインできるようにすることができます。
how saml works
SAMLは、Extensible Markup Language(XML)を使用して、アイデンティティプロバイダーとサービスプロバイダーの間で通信します。これはSAMLアサーションの形式をとります。SAMLアサーションは、アイデンティティプロバイダーがユーザーを認証するためにサービスプロバイダーに送信するXMLドキュメントの一種です。
SAML アサーションには 3 種類あります。
- 認証アサーションは、ユーザーの身元を証明し、ログイン時間と使用した認証プロトコル(Kerberos、多要素認証など)を提供します。
- 属性アサーションは、ユーザーに関する情報を提供するデータであるSAML属性をサービスプロバイダーに渡します。
- 認証アサーションは、ユーザーがサービスを使用する権限があるかどうか、およびどの程度の権限を持っているか、またはIDプロバイダーがパスワードの失敗またはアクセス権の欠如のために要求を拒否したかどうかを確認します。
要約すると、SAMLは、ユーザー、そのログイン、および属性に関する情報をアイデンティティプロバイダーとサービスプロバイダーの間で受け渡すことによって機能します。たとえば、ユーザーがSSOを使用してログインすると、IdPはSAML属性をSPに渡し、ユーザーは1回ログインするだけで済みます。
これが日常生活でどのように展開されるかを見てみましょう。ユーザーが新しい会社で働き始めると、メールアドレスとダッシュボードへのアクセス権を受け取ります。アイデンティティプロバイダー(Oktaなど)を使用してそのダッシュボードにサインインすると、SlackやSalesforceなどの外部サービスプロバイダーのアイコンが表示されます。その後、これらのアイコンのいずれかをクリックすると、資格情報を再入力しなくても、そのサービスに自動的にサインインできます。
そうは言っても、ユーザーがWebサイト、アプリケーション、およびオンラインサービスにアクセスするために通過するSAMLフローには、実際には2つのタイプがあります。
サービスプロバイダーが開始する SAML フロー
これは、ユーザーがSAML対応サービスにそのログインページまたはモバイルアプリからサインインしようとしたときに発生します。サービスは、ユーザーにログインを求めるのではなく、認証を処理するためにユーザーをアイデンティティプロバイダーにリダイレクトします。本人確認が完了すると、サイトまたはアプリへのアクセスが許可されます。
アイデンティティプロバイダーが開始するSAMLフロー
このフローは、ユーザーがアイデンティティプロバイダーにログインし、データベースからサービスアプリケーションを起動するときに発生します。サービスプロバイダーのアカウントを既にお持ちの場合、自動的にアクセスできるようになります。そうでない場合、一部のアイデンティティプロバイダーはSAMLを使用して、そのサービス用の新しい認証済みアカウントを作成できます。
SAMLの利点
SAMLは、ユーザーと企業の両方に多くのメリットをもたらします。特に、複数のWebアプリを使用する際の手間を軽減できます。その他の利点:
改善されたユーザーエクスペリエンス
SAMLを使用すると、アプリケーションやサービスへのログインが容易になるだけでなく、必要なツールにすぐにアクセスできるため、ユーザーの生産性も向上します。
紛失した認証情報の削減
複数のログインを使い分けなければならないと、パスワードを忘れたり、さらに悪いことに、パスワードを書き留めてしまうことが多く、資格情報が盗まれるリスクが高まります。SAMLを使用すると、ユーザーは1つのユーザー名とパスワードの組み合わせを知るだけで済みます。
より高いセキュリティ
SAML は、安全なアイデンティティプロバイダーで単一の認証ポイントを提供し、ユーザーのアイデンティティ情報をサービスプロバイダーに転送します。これにより、認証情報が直接送信される場合にのみ、フィッシングや個人情報の盗難の機会を最小限に抑えることができます。
コストの削減
SAMLを実装すると、チケットの送信やパスワードのリセットの必要がなくなるため、管理時間を大幅に節約できます。また、(独自の認証方法にしばしば関連する)開発コストを最小限に抑えるのにも役立ちます。
簡素化されたユーザー管理
従業員が複数のアプリケーションを使用している場合、役割が変更されたり、従業員が退職したりすると、IT部門がアクセス権を管理することが悪夢になる可能性があります。SAMLは、各ユーザーを単一のディレクトリから管理できるため、これを簡素化します。
SAMLの代替
SAMLはアイデンティティフェデレーションの面で多くの利点を提供しますが、企業やサービスがユーザーアイデンティティを安全に管理および承認するのに役立つ代替標準があります。
OpenID:OpenIDは、ユーザーが追加のサインイン情報を共有せずに複数のWebサイトやアプリにアクセスできるようにするオープンソースのアイデンティティ標準です。Google、YouTube、またはFacebookの認証情報を使用してWebサイトにログインしたことがある場合は、OpenIDを体験したことになります。
OAuth:OAuth(または、フルネームを使用する場合はOpenAuth)は、Webサイト間の合理化されたログインを可能にするためにGoogleとTwitterが共同で開発した標準です。アプリケーション間で情報を共有する方法はSAMLに似ています(FacebookとGoogleは、以前に使用したことがある可能性が高い2つのOAuthプロバイダーです)。ただし、ユーザーの認証にJSONトークンを使用することで異なり、その結果、モバイルに適しています。
Webサービスフェデレーション:Webサービスフェデレーションは、サービスプロバイダーからIDプロバイダーへの認証をフェデレートするために使用されます。開発者が実装するのは簡単であると一般的に見なされており、ADなどの一般的なアイデンティティプロバイダーで十分にサポートされていますが、クラウドプロバイダーではあまりサポートされていません。
SAML を使用した開始
SAMLは、認証情報の使用を制限し、企業がアイデンティティを一元的に監査および管理できるようにするため、サイバーセキュリティ戦略の重要な部分です。さらに、ユーザーは必要なWebアプリに簡単にアクセスできるようになり、セキュリティも強化されます。
適切なアイデンティティプロバイダーを使用すると、SAMLの導入は簡単です。たとえば、OktaはSAML検証ツールと、さまざまなプログラミング言語のさまざまなオープンソースSAMLツールキットを提供しています。
SAMLが組織と従業員にどのように役立つかをより詳しく理解するには、次のリソースを確認してください。
- SAML について (ドキュメント)
- SAML Integrations OpenID Connect and Partner IdP(製品デモ)