14

私は基本的なサービス指向アーキテクチャを調査していますが、サービス全体でユーザー認証を最適に処理する方法を考えています。

非常に単純な例として、他の 2 つのサービスを呼び出すブログ アプリがあるとします。

  1. ユーザー データを保存し、アクセス トークンの資格情報を交換するためのユーザー/認証サービス
  2. 投稿データを管理する投稿サービス

アプリケーションのユーザーが特定の投稿を削除しようとしていて、「管理者」ロールを持つユーザーのみが削除を許可されているとします。

次の要求を行う必要があります。

  • アプリ -> 認証

    現在のユーザーを認証します (ある種のトークンを介して)。トークンの有効期限が切れている場合、アプリはユーザーをログイン フォームなどにリダイレクトする可能性があります。

  • アプリ -> 投稿

    投稿を削除します。

  • 投稿 -> 認証

    投稿を削除する前に、投稿サービスは、要求しているユーザーに削除の権限があることを確認する必要があります。(トークンを使用して) 現在のユーザーを認証し、「管理者」ロールがあることを確認します。

これは非常に単純な例ですが、人々がサービス全体で認証をどのように扱っているか興味があります。リクエストを承認するために、各サービスが認証サービスを個別に呼び出す必要があるようです。これは事実ですか?この種の SOA で認証を処理するより良い方法はありますか?

ありがとう!

4

1 に答える 1