0

OAuth2認証システムを使用して、既存のMVCアプリケーションにWebAPIを開発しています。すでにIDを使用しているプロジェクトでクライアントアカウントを管理する

このAPIを使用すると、クライアントは自分のユーザー情報を要求できます。現在、ユーザーはIDテーブル(ASPNetUsers)に格納されています。私のアプリケーションでは、Identityクラスやメソッドの助けを借りて、登録、ログインなどを行っています。

問題はここにあります。APIクライアントアカウントを「識別方法」で管理したいので、アクセストークンを要求するときに認証することができます。しかし、私はクライアントと私のユーザの間に共通ポイントがないので、現在のユーザテーブルを使用することはできません。

完全な解決策は2つのアイデンティティテーブルを用意することです:ユーザとクライアントの2つのアイデンティティテーブルを用意することですが、私の長年の検索の後には不可能だと思ったし、 。

答えて

0

OAuth2登録クライアントアプリケーションを管理する方法としてASP.NET IDを使用しません。一部のクライアントアプリケーション(機密情報)が実際に発行されているにもかかわらず、おそらくクライアント名がユーザー名/パスワードのユーザーIDと共有する唯一のものです。 これはまったく別物なので、別に管理して保存する必要があります。

これは多くの仕事のように思えば、あなたは絶対に正しいです。安全であることを証明し、OAuth2認証サーバを実装することは何度も複雑なカスタムユーザ名/パスワード認証を実装することは自明ではありません。

あなたは本当に/必要性は、その後、いくつかの必須読書をそのルートに行きたい場合は、次の

  • OAuth 2.0 Threat Model and Security Considerations
  • JSON Web Token (JWT)

    場合は(あなたがJWTとしてトークン形式を選択したと仮定した場合)あなたはまだすべてのあなたの選択肢を評価しています。すべての認証/承認作業を第三者に任せる可能性も考えていますird-party、Auth0は気になりますが、私はそこで働くので、私は偏っています。

  • +0

    私のクライアントを認証する無料のソリューションは何でしょうか?残念ながら私は自分のプロジェクトでAuth0を買う余裕はない... – Lawi

    +0

    それは無料ではないが、あなたのシステムにそれらを実装するコストはまだあるだろうが、ASOSやIdentityServerのようなオープンソースのものを評価することができる。 –

    関連する問題