1

私は、Webアプリケーションのアプリケーションでフレームワークをaauth 2.0アイデンティティを使用しています。Oauth 2.0トークンベースで認証されたユーザーを署名する方法は?

私のWeb APIでは、トークンベースの認証とリフレッシュトークンを使用して認証を実装しました。 パスワードが変更されたときにユーザにサインする必要があります(ここでは、セキュリティ・スタンプが変更されます)。

私はこのコードを持っている:

app.UseCookieAuthentication(new CookieAuthenticationOptions { 
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 
LoginPath = new PathString("/Account/Login"), 
Provider = new CookieAuthenticationProvider { 
    // Enables the application to validate the security stamp when the user logs in. 
    // This is a security feature which is used when you change a password or add an external login to your account. 
    OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
     validateInterval: TimeSpan.FromMinutes(30), 
     regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)) 
}}); 

をしかし、私はそれがここにクッキーベースの認証 のためだと思うが、トークンの生成を設定するには、私のコードです:

var oAuthServerOptions = new OAuthAuthorizationServerOptions() 
      { 
       AllowInsecureHttp = true, 
       TokenEndpointPath = new PathString("/api/token"), 
       AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(30), 
       Provider = provider, 
       RefreshTokenProvider = new SimpleRefreshTokenProvider() 
      }; 

私は、ユーザーを確認するために私のプロバイダを実装しています資格情報およびリフレッシュトークンプロバイダを使用して、スライドアクセストークンの有効期限を達成します。

私の最初の質問は、securitystamp?をチェックすることによってユーザにサインするためにアクセストークン/リフレッシュトークンを拒否するように実装する方法です。

私のアクセストークンプロバイダおよび/またはリフレッシュトークンプロバイダ内で実行する必要があります(コードスニペットがあれば分かりやすいでしょう)。

答えて

1

トークンベースの認証では、securityStampの変更に基づいてアクセストークンを無効にするためのすぐれたソリューションはありません。 しかし、私はこのページでこの問題のために良い解決策を見つけた:

How to invalidate OAuth token when password is changed?

しかし、上記の溶液を、溶液は以下のようになる簡単にowin.Soを実装していません。

ステップ1 : プロバイダ内のリソース所有者の資格情報(GrantResourceOwnerCredentialsメソッド)を追加すると、たとえば "securityStamp"という名前のクレームを追加し、その値を取得します(Guidは認証されたユーザーのsecurityStamp列を表します) )をデータベースから削除します。

ステップ2: 、新しい取得するためにユーザをログアウトowinmiddlerwareを作成し、それが変わったのならば、その中に(データベース内に格納された値とsecurityStamp請求の値を比較して)securityStampの値をチェックアクセストークン。

+0

こんにちは。私はaccesstokenを無効にする方法を見つけようとしていますが、回答に記載されている リンクを除いて、それに関連するものは見つかりませんでした。あなたの解決策に記載されているコードを入力してください。 –

関連する問題