-
Notifications
You must be signed in to change notification settings - Fork 0
MS_ASPNETIdentitySTS
- 戻る(ASP.NET Identity)
- ASP.NET IdentityによるSTS実装
- ASP.NET IdentityのOAuth2によるSTS実装
- ASP.NET IdentityのOAuth2拡張によるSTS実装
- ASP.NET IdentityのOIDCによるSTS実装
ASP.NET Identityの STS 実装のサポート状況。
補足(STS とは): STS(Security Token Service、
セキュアトークンサービス)は、
認証結果をトークンとして発行する側のことである
(STS系ミドルウェアを参照)。ASP.NET Identity は本来
「自分のアプリにログインさせる」ための仕組みだが、
OAuthAuthorizationServerMiddlewareを組み合わせることで
「他のアプリにトークンを配る」側にもなれる、という話である。
OAuth 2.0 の基本 4 フローの
セキュアトークンサービス(STS)機能をサポートしている。
| グラント種別 | 用途 |
|---|---|
| Authorization Code | Web アプリ(サーバ サイド) |
| Implicit | ブラウザ内 JavaScript |
| Resource Owner Password Credentials | 信頼できる自社クライアント |
| Client Credentials | サーバ間(ユーザ不在) |
補足(最新化:4 フローのうち 2 つは使ってはならない):
**OAuth 2.1 および RFC 9700(OAuth 2.0 Security BCP)**により、
上表のうち 2 つは廃止扱いになっている。
グラント種別 現在 Authorization Code 現役(ただし PKCE 必須) Implicit 廃止。トークンが URL フラグメントに載り、漏えいする Resource Owner Password Credentials(ROPC) 廃止。アプリがパスワードを扱う時点で OAuth の意義が無く、MFA も外部 IdP も使えない Client Credentials 現役(ユーザ不在の系のみ) Implicit の代わりは「Authorization Code + PKCE」であり、
SPA でも公開クライアントとして安全に使える。
ROPC の代わりは無い(設計を見直す)。
以下のように、「OAuth 2.0 拡張」や
「OpenID Connect」拡張も可能。
補足(現在の選択肢):
OAuthAuthorizationServerMiddlewareは
メンテナンス・フェーズで終了しており、新規に選ぶものではない。
現在 STS が必要なら次のいずれかになる。
選択 位置づけ Entra ID / Entra External ID 運用ごと任せる。第一候補 OpenIddict .NET 製 OSS。OIDC 認定。自前ホスト向け Duende IdentityServer 旧 IdentityServer4 の後継。商用ライセンス Keycloak Java 製だが実績豊富。Docker で立つ 自作 汎用認証サイトが選んだ道。相応の覚悟が要る 詳細は ASP.NET Identity の Community STS を参照。
Tags: 移行, .NET開発, ASP.NET, ASP.NET MVC, ASP.NET Identity, 認証基盤, セキュリティ
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。