4

Kong と OAuth を使用して、Web アプリとその他の API を構築する必要があります。


今私が持っています:

  • コングのサーバー。
  • サーバーには、ID、ユーザー名、パスワードなどのユーザー情報が保存されます。ユーザーデータベースと名付けました。

する必要がある:

  • Web アプリやその他のアプリは、OAuth2.0 で API を使用する予定です。
  • API は Kong のみが提供します。

Kong のドキュメントによると、私は Resource Owner Password Credential を設計しました。これは次のようなものです。

(これらの API は accessToken を取得するためのものであり、認証方法はありません)

  1. ユーザー側からユーザー名とパスワードを Kong に送信
  2. Kong はそれを User-Database にルーティングします。
  3. User-Database はユーザー名とパスワードを確認し、リクエストを Kong に送信します。リクエストには、ユーザー名、パスワード、provision_key、autherticated_userid が含まれます。(*)
  4. Kong は access_token を User-Database に応答し、autherticated_userid、access_token、およびスコープも記憶します。Kong は、アクセス トークンの有効期限が切れる前にそれらを記憶します。
  5. User-Database が Kong からの応答を受信した後、ステップ 1 と 2 にも応答し、最終的に User-End は将来の使用のためにアクセス トークンを取得します。

(アクセストークンを取得)

  1. User-End は、認証が必要な API にリクエストを送信します。

ここに画像の説明を入力


ステップ3でわからないことがありました。

コングに関する文書によると:

$ curl https://your.api.com/oauth2/token \ --header "Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW" \ --data "client_id=XXX" \ --data "client_secret=XXX" \ --data "scope=XXX" \ --data "provision_key=XXX" \ --data "authenticated_userid=XXX" \ --data "username=XXX" \ --data "password=XXX"

The provision_key is the key the plugin has generated when it has been added to the API, while authenticated_userid is the ID of the end user whose username and password belong to.

すべてのユーザー情報を自己管理ユーザー データベースと Kong の両方に保存する必要がありますか?

または、見逃したものや最適化できるものはありますか?

リンク: Kong リソース所有者パスワード認証情報

4

1 に答える 1