Skip to content

MS_SAMLWSFED

nishi_74322014 edited this page Aug 4, 2026 · 1 revision

SAML / WS-FED

概要

SAML/ WS-FED について。

用語

Claims-based identity term definitions

IdP & CP

略号 正式名 相当するもの
IdP Identity Provider ドメイン サービス (AD DS)
CP Claim Provider WS-Federation モデルにおける IdP

STS

Security Token Service(= AD FS または Azure AD

SP & RP

略号 正式名 相当するもの
SP Service Provider ASP.NET WebSite
RP Relying Party WS-Federation モデルにおける SP

補足: 同じ登場人物を、 SAML 系と WS-Federation 系で別の名前で呼んでいるだけである。 ここが最初の混乱ポイントなので、対応表として押さえておくとよい。

役割 SAML WS-Federation OpenID Connect
ID を持つ側 IdP CP(Claims Provider) OP(OpenID Provider)
利用する側 SP RP(Relying Party) RP(Relying Party)
トークン発行 IdP が兼ねる STS OP が兼ねる

Microsoft Platform

Active Directory Federation Services や WIF(Windows Identity Foundation)に関連する用語。

用語 内容
WIF Windows Identity Foundation(ライブラリ)
ADDS Active Directory Domain Services(上記の IdP に該当)
ADFS Active Directory Federation Services(上記の STS に該当)
AZAD Microsoft Azure Active Directory(IdP + STS)

詳細

特徴

  • 認証連携(ID フェデレーション)プロトコル

  • 異なるベンダのアクセス制御製品間の相互運用性を推進し、
    企業間の独立したサービスをグローバルな SSO で連携させることが可能。

  • 各種の STS系ミドルウェア でサポートされている。

プロトコル

クッキー認証チケットを使用しない(アサーション(トークン)を使用する)。

  • クッキーを第三者が不正使用してなりすましを許す可能性がある。
  • クッキーはクッキードメインの中でしか有効ではない。

補足: 正確には「クッキーをまったく使わない」わけではない。 IdP 側ではセッション維持のためにクッキーを使う(これが SSO の実体)。 ここで言っているのは、 SP(RP)をまたいでクッキーを共有しない、 つまり Cookie のドメイン制約を アサーションの受け渡しで越える、という意味である。

SameSite属性の件 で扱ったとおり、 ブラウザのサードパーティ Cookie 制限が強まったことで、 「クッキーに依存しない」この設計の価値はむしろ上がっている。

SAML

  • SAML Core
    • SAML Assertions
    • SAML Protocols
  • SAML Bindings
  • SAML Profiles
    • SAML Assertions
    • SAML Protocols
    • SAML Bindings
  • SAML Metadata

WS-Federation

  • Assertions には、SAML Assertions を使用。
  • 以下のプロファイルがある。
    • パッシブ・リクエスタ・プロファイル(Web アプリ用)
    • アクティブ・リクエスタ・プロファイル(Web サービス用)

詳細は WS-Federation を参照。

ライブラリ

ライブラリ 内容
WIF Windows Identity Foundation
ADAL Azure AD 認証ライブラリ
MSAL Azure AD v2.0 認証ライブラリ

補足(最新化): ADAL は 2022 年 12 月にサポート終了しており、 MSAL への移行が必須である。 WIF(Microsoft.IdentityModel.* の旧世代)も .NET Framework 4.5 で System.IdentityModel に統合された後、 .NET Core 以降には移植されていない。

現在の .NET で SAML / WS-Federation を扱う場合は、 Microsoft.AspNetCore.Authentication.WsFederation や サードパーティのライブラリ(Sustainsys.Saml2 等)を使う。

STS系ミドルウェア

STS系ミドルウェア を参照。

選定

エンタープライズにフォーカスした技術と言える(SOAP/ XMLベース)。

補足: 選定の目安を補っておく。

向く場面
SAML 2.0 企業間 SSO、SaaS への SSO、教育・行政系。Web ブラウザ前提
WS-Federation Microsoft 製品(ADFS、SharePoint)中心の閉じた環境
OpenID Connect 新規開発、モバイル/SPA、WebAPI 連携

新規に選ぶなら OpenID Connect である。 JSON ベースで軽く、ネイティブ アプリや SPA に対応でき、 WebAPIの認証(OAuth 2.0)と地続きであるため。

SAML を選ぶのは、接続先の SaaS が SAML しか対応していない、 あるいは既存の連携基盤が SAML である場合に限られる。 WS-Federation は、SAML と比べても新規採用の理由に乏しい。

参考


Tags: IT国際標準, 認証基盤, クレームベース認証, SAML

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally