http://leastprivilege.com/2012/11/01/oauth2-in-thinktecture-identityserver-v2-resource-owner-password-flow/にある OAuth2 リソース所有者パスワード フローの Thinktecture Identity Server の例に従っています。
次のプロセスを介して、正常に動作し、JWT トークンを返す例があります。
- Thinktecture OAuth2Client を使用してアクセス トークンを取得します
- クライアント マシンの「Trusted People」ストアから署名証明書を取得します。
- 証明書を使用して新しい
JwtSecurityTokenHandler
andを作成し、ClaimsPrincipal を取得するためのTokenValidationParameters
呼び出しtokenHandler.ValidateToken
ここから承認されますが、今後のリクエストのためにトークンを保持する最善の方法がわかりません。使ってみた
var sessionToken = new SessionSecurityToken(principal, TimeSpan.FromHour(8));
FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(sessionToken);
しかし、私は登録していませんSessionAuthenticationModule
。Identity and Access ウィザードを使用してこれを実装しようとしましたが、構成に多くの変更が加えられ、パッシブ認証の設定が試行されます。
従来の FormsAuthentication Cookie (.aspnetAuth) を使用することもできましたが、.FedAuth Cookie の利点は、サイズが大きくなりすぎた場合に自然に複数の Cookie に分割されるという議論を覚えています。
私は自分の絵を完成させる記事を見つけるのに苦労しています. スタックのさらに下にあるさまざまな API にアクセスするには、ベアラー トークンが必要です。ほとんどの作業はあなたのために行われるため、SSO/パッシブ認証についてはこれの実例があります。リソース所有者のパスワード フローを使用する場合に使用する最適なパターンがわかりません。
そう
- Thinktecture Identity Model と Server でこれを達成するためのより簡単な方法を見逃していませんか?
- WIF 用に既にセットアップされているさまざまな Messagehandler/filter コンポーネントを再利用できるように、FedAuth Cookie を作成する必要がありますか?
- それ以外の場合 - FormsAuthentication Cookie の UserData セクションにアクセス トークンを単純に配置するだけで特に問題はありますか?