Skip to content

MS_STSMiddleware

nishi_74322014 edited this page Aug 4, 2026 · 1 revision

STS系ミドルウェア

概要

STS(Security Token Service)機能を提供するミドルウェアをまとめる。

  • 背景
    • ASP.NET Identityは、OAuth 2.0 しかサポートしないので。
    • ただ ADFS は、自作のユーザストアを使用している場合はダメっぽい。
      • 何故なら、ADFS の認証は ADDS が前提になっているため。
      • カスタム属性ストアとしてだけユーザストアを利用可能。

補足: 「自作のユーザストアが使えない」という制約は ADFS の設計思想そのものである。 ADFS は「ADDS の ID を外部に橋渡しする」ための製品であって、 汎用の ID プロバイダではない。 独自のユーザ ストアで認証したいなら、 Keycloak や自前の STS を選ぶことになる。

詳細

ミドルウェア

OpenAM

OSS の統合アクセス管理製品(旧 Sun OpenSSO)。
SAMLWS-Federation、OpenID Connect をサポートする。

補足(最新化): OpenAM は 2016 年に ForgeRock が OSS 版の提供方針を変更し、以降は

  • 商用の ForgeRock Access Management (AM)
  • コミュニティによるフォークの OpenAM(Open Identity Platform)

に分かれている。新規採用の主流は Keycloak に移った。

Keycloak

Keycloak(開発基盤部会 Wiki)

補足(最新化): Keycloak は Red Hat が主導する OSS の IdP/STS で、 現在この分野の事実上の標準である。 2023 年に CNCF の Incubating プロジェクトになった。

  • OpenID Connect / OAuth 2.0 / SAML 2.0 をサポート
  • ユーザ フェデレーション(LDAP / ADDS 連携)
  • Identity Brokering(外部 IdP への委譲)
  • 管理コンソール、ユーザ セルフサービス画面

ASP.NET Core からは Microsoft.AspNetCore.Authentication.OpenIdConnect で接続できる。

Microsoft系

  • The MS、MS ロックインで幸せになれる人はこちら。

  • 昨今、OIDCのサポートも追加されている。

  • ただし、Hybrid-IdP 構成を組む場合は、SAML前提になる。

補足(最新化): Microsoft の方向性は ADFS(オンプレの STS)から Microsoft Entra ID(クラウドの IdP)への移行である。

ADFS が必要だった理由(オンプレ AD の資格情報で SaaS にサインインする)は、 パススルー認証シームレス SSOによって ADFS 無しで実現できるようになっている。 Microsoft も ADFS からの移行を推奨しており、 新規に ADFS を立てる理由は、 特殊な要件(証明書認証の細かい制御、独自の要求規則)に限られる。

某弊プロジェクト

汎用認証サイト(Multi-purpose Authentication Site)

フレームワーク

ASP.NET Identity

ASP.NET Identity

補足(最新化): 「ASP.NET Identity は OAuth 2.0 しかサポートしない」 という前提について補足する。

ASP.NET Identity はユーザ ストアと認証の仕組みであって、 STS ではない。STS 機能は別のライブラリで実装する。

ライブラリ 位置付け
Duende IdentityServer 旧 IdentityServer4 の後継。商用ライセンス(一定規模まで無償)
OpenIddict OSS(Apache 2.0)。ASP.NET Core 向けの OIDC サーバ
ASP.NET Core Identity ユーザ ストア。上記と組み合わせる

IdentityServer4 は 2022 年 11 月にサポート終了しており、 Duende IdentityServer(有償)または OpenIddict への移行が必要である。 この「OSS だった STS が有償化した」という変化は、 自前 STS を選ぶ際の判断に大きく影響する。

Spring Boot & Spring Security

Java 側の選択肢。Spring Authorization Server により
OAuth 2.0 / OpenID Connect の認可サーバを構築できる。

選定の観点

補足: STS を「作る」か「使う」かは、まず次で判断する。

状況 選択
クラウド前提、SaaS 連携が主 Microsoft Entra ID / Auth0 / Okta
オンプレ、OSS でコントロールしたい Keycloak
既存 ADDS を SaaS に橋渡ししたいだけ Entra ID Connect(ADFS は最終手段)
自社サービスの ID 基盤を作り込む OpenIddict / Duende IdentityServer

自前で STS を実装するのは避けるべきである。 OAuth 2.0 / OpenID Connect は仕様が広く、 WebAPIの認証 で触れたような aud 検証漏れなどの実装ミスが直接、認証バイパスにつながる。

参考


Tags: 認証基盤, クレームベース認証

NetDevInfraWiki

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

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally