さまざまなビジネスアプリを利用する企業は、インフラ全体でデータの秘密保持や、利用者の権限に応じたアクセス管理に苦労しています。SAML(Security Assertion Markup Languageの略)は、この点で大きな助けとなります。
SAMLが何か、どのように動作するか、その利点、SSOとの違いや共通点、またAPIアクセス認証にどのように役立つかを見ていきましょう。
SAMLの主な役割は、IdP(利用者情報提供者)が認証に関する資格情報を関係機関と共有できるようにすることです。これは、データの安全性を損なうことなく、さまざまなアプリへの統一アクセスを可能にするオープンな標準です。
以下はSAMLについて知っておくべき点です:
有力な認証フレームワークの一つであるSSOは、複数のログイン画面を統合します。これにより、各アプリごとに個別のログインをする必要がなく、1組のログイン情報で多くのSaaSアプリを利用できます。
その結果、アプリの利用が迅速かつ簡単になり、監査もしやすくなります。シームレスなアクセス認証と高いセキュリティを求めるIAM戦略において重要な要素です。
SSOを利用すると、以下のメリットがあります:
ここでは、手順をいくつかのステップでご説明します。
簡単に言うと、これは利用者の認可状態を示すXML形式の文書です。この情報はIdPからサービス提供者に提供されます。
アサーションには以下の3種類があります:
Authenticationは、利用者の身元確認、関連技術、セッション期間の管理を行います。
Assignedは、SAMLトークンをSPに正しく渡すことを担い、IdPとSPのディレクトリが同じ属性を用いてリクエスト送信者の信頼性を確認します。
最後に、Authorization-decisionタイプは、利用者のリクエストに基づきアクセスの許可可否を示し、拒否された場合はその詳細な理由も提供されます。
SAMLがどのように動作するか、最も単純な例を以下に示します。
例として、Johnという利用者が業務用のビジネスアプリにアクセスしようとする状況を考えます。
SAMLは利用者の身元確認とSSOの実現に寄与します。SSOは単独でも機能し、1組のログイン情報で複数のアプリ利用を可能にします。専用のプロトコルを持たないため、標準のSAMLプロトコルやOpenIDなどの第三者プロトコルを利用してクロスドメインの身元確認を行うこともできます。SAMLは幅広いプロトコルを提供します。
主要な目的が似ているため、SAML 2.0とOAuth 2.0は同一視されることがあります。共通点は多いものの、いくつかの点で異なります。
共通点
相違点
SAMLは主に利用者の身元確認やSSOの実現に使われますが、APIにおけるリクエストの正当性確認にも有効です。リクエストが正当かどうかの検証はAPIセキュリティにおいて重要であり、次の要素を含むSAMLリクエストを送信することで実現されます。
なお、SAMLリクエストメッセージは、
リクエスト本文には、内容、ID、realmが含まれます。最初の2点は必須で、realmは任意です。
SAMLレスポンスには、access_token(アクセスを許可または拒否するSAMLトークン)、username、expires_in、refresh_token、realmが含まれます。
SAMLとシングルサインオンは密接な関係にあり、どちらも妥協のないデータセキュリティに欠かせません。本記事が、これらについての理解に役立つことを願います。
最新情報を購読