Security Assertion Markup Language
アサーション(assertion, 直訳:表明)は、SAMLにおける最も基礎的な概念の一つで、これはユーザの認証情報、属性、ユーザへの権限の認可といったセキュリティ情報をXML文法で記載したものである。複数のエンティティの間でアサーションをやり取りする事で前述したシングルサインオンやID連携を実現する。
SAMLの標準はアサーションの詳細と、アサーションを伝送するためのプロトコルとに関する文法と意味論を定義している。
アサーションはサブジェクト(subject)に対するステートメント(statements)という形式でセキュリティ情報を記述できる。
ここでサブジェクトは何らかの「セキュリティ領域」(security domain)にいるエンティティで、アサートされる対象である。サブジェクトは人間であっても会社やコンピューターなどでもよい。
ステートメントには以下の三種類がある:
認証ステートメント(Authentication statements): ユーザを認証したエンティティが作るステートメントで、例えば認証時刻や認証が行われた場所などの情報を含む。
属性ステートメント(Attribute statements): サブジェクトの属性に関するステートメント。例えばサブジェクトの名前、年齢、性別、ゴールドカードの保持者である等。
認可決定ステートメント(Authorization decision statements):サブジェクトに何らかの権限を与えた事を表すステートメント。例えば特定のファイルへのアクセス権限や、特定の品物を買う事ができる権限など。
Security Assertion Markup Language (SAML、発音は SAM-el、/ˈsæməl/) は、特にアイデンティティプロバイダーとサービスプロバイダーの間で認証および認可データを交換するための公開標準である。SAML は、セキュリティアサーション (サービスプロバイダーがアクセス制御の決定を行うために使用するステートメント) のための XML ベースのマークアップ言語である。SAML はまた以下のものでもある:
XML ベースのプロトコル・メッセージのセット
プロトコル・メッセージのバインディングのセット
上記すべてを利用するプロファイルのセット
SAML が対応する重要なユースケースの1つは、ウェブブラウザのシングルサインオン (SSO) である。シングルサインオンは、セキュリティドメイン内では比較的簡単に達成できる (たとえば、クッキーを使用する場合など)、しかしセキュリティドメインを越えて SSO を拡張することはより難しく、非互換のプロプライエタリ技術の増加をもたらした。SAML Web ブラウザ SSO プロファイルは、相互運用性を促進するために指定および標準化された。