OAuth2.0 Implicit Flow (OIDC を使用) が非常に単純な SPA/Mobile クライアント (別名 Client) と私の REST Api (別名 Resource Server) でどのように機能し、新しいアカウントを作成するかを理解しようとしています。
クライアントが認証サービス (Auth0/Stormpath/IdentityServer/etc) からトークンを要求する方法を多かれ少なかれ理解しています。次に、このトークンを使用して、制限された API エンドポイントにアクセスします。
しかし、私が読み続けているすべての例は、「アカウント」がこれらの認証サービスで作成されていることです (これは必須であり、理解しています) が、私のサービス (私のリソース サーバー) では何も作成されていません。
保存したいユーザーデータ/設定があるため、DBにアカウントを作成する必要があります(たとえば、注文など)。もちろん、セキュリティ情報を保存したくありません..それが外部認証サービスを使用している理由です。
したがって、暗黙的なフローを使用する方法と..トークンが返されたとき (または、より具体的には、ユーザー情報を取得するために OpenID Connect が使用されたとき) に、ユーザーが存在するかどうかを判断し、新しい場合は作成します。 .
また、認証サービスの観点からユーザーissuer_id + sub
を判別するには、両方のトークンが必要であることも理解しています。unique
最後に、「新しいアカウントのスパム/悪用」をどのように防止していますか? クライアントのある時点で(ヘッダーにトークンを貼り付ける必要があるため、各Rest APIリクエストの前にローカルストレージトークンをチェックしますbearer
)...新しいユーザーを作成することにしたとき.. . 私の REST Api (別名リソース サーバー) には、新しいユーザーを作成するためのエンドポイントがあります.. のようにPOST /account/
.. では、新しいアカウントを作成するスパムの新しいランダム POST からサーバーを保護するにはどうすればよいでしょうか? IP+時間遅延制限?