-
Notifications
You must be signed in to change notification settings - Fork 0
MS_ASPNETIdentitySTSOAuth2Ext
- 戻る(ASP.NET IdentityによるSTS実装)
- ASP.NET IdentityのOAuth2拡張によるSTS実装
- ASP.NET IdentityのOAuth2によるSTS実装
- ASP.NET IdentityのOIDCによるSTS実装
ASP.NET Identityの、
OAuth 2.0 拡張による
セキュアトークンサービス(STS)の Endpoint 追加実装。
移行メモ: 元ページの概要は
「OpenID Connect によるセキュアトークンサービス」と
なっていたが、それは ASP.NET IdentityのOIDCによるSTS実装の内容である。
本ページの主題は OAuth 2.0 拡張であるため、そのように改めた
(元ページ側の書き間違いと判断した)。
-
Open棟梁の汎用認証サイト
では、ASP.NET Identity(Identity 2.0)(net45)を使用している。 -
OAuthAuthorizationServerMiddlewareは
OAuth 2.0 基本 4 フローのみのサポートだった。 -
HTTP モジュールによる書換や拡張エンドポイントなどを使用して、
OAuth 2.0 拡張を一部サポートした。 -
将来的には、
-
ASP.NET Identity(Identity 2.0)(net45)の
既定のエンドポイントを破棄して拡張エンドポイントを実装するか、 -
ASP.NET Core Identity(Identity 3.0)(netcoreapp)+
ASP.NET Identity の Community STSを利用するか、
検討を行う予定。
-
補足(「一部サポートした」拡張の中身): OAuth 2.0 の
「拡張」と呼ばれるものは多岐にわたる。
実装が必要になりやすいのは次のあたりである。
拡張 RFC 内容 PKCE RFC 7636 認可コード横取りの防止。現在は必須 Token Introspection RFC 7662 トークンの有効性を問い合わせる Token Revocation RFC 7009 トークンを失効させる JWT Bearer Grant RFC 7523 JWT をクライアント認証・グラントに使う Device Authorization Grant RFC 8628 入力手段の乏しい機器向け JAR / JARM RFC 9101 ほか 要求・応答を JWS で保護する DPoP RFC 9449 送信者制約トークン(Bearer からの脱却)
OAuthAuthorizationServerMiddlewareは
これらをまったく想定していない(RFC 6749 の基本形のみ)。
そのため「HTTP モジュールによる書換」という
力技(本ページで言う「魔改造」)が必要になった、という背景がある。
補足(HTTP モジュールによる書換の危うさ): パイプラインの外側で
レスポンスを書き換える手法は、次の理由で保守性が低い。
- ミドルウェアの内部実装に依存するため、更新で壊れる
- 署名・暗号化された値には手を出せない
- デバッグが困難(どこで書き換わったか追いにくい)
本ページの「将来的には…検討を行う予定」という判断は妥当であり、
実際に汎用認証サイトはスクラッチ実装の道を選んでいる
(ASP.NET Identity の Community STSを参照)。
Tags: 移行, .NET開発, ASP.NET, ASP.NET MVC, ASP.NET Identity, OAuth, 認証基盤, セキュリティ
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。