多数の (ステートレス、HTTP ベースの) (マイクロ) サービスと多数の「デーモン」があり、これらのサービスを実際に使用してあらゆる種類のバックグラウンド処理を行うとします。
ここで、サービスとデーモンが相互に認証および承認できるようにする方法が必要です。たとえば、Orders のフルテキスト インデックス作成を実行するデーモンには、次のものが必要です。
- Orders、Customers (それ自体はCompaniesサービスへの読み取り専用アクセスが必要)、およびInventoryサービスへの読み取り専用アクセス
- フルテキスト インデックスを更新できるようにするための、 OrdersSearchサービスへの読み取りおよび書き込みアクセス。
ユーザーの「代わりに」動作するアプリケーションもあります。たとえば、Inventory Web アプリには Inventory Service への読み取りおよび書き込みアクセスが必要ですが、 Inventory Service自体は、アプリケーションを操作するユーザーのアクセス許可を確認する必要があります。
とはいえ、今説明したことをどのように達成できますか? 巨大なエンタープライズ フレームワークや標準は使用したくありません。私が読んだことから、Two-Legged OAuth2 が必要なものですが、正確にはわかりません。
「こんにちは、私は在庫サービスです。今私を呼んでいるカスタマーサービスは私にどのような権限を持っていますか?」のような質問に答えるために使用される承認サービスを確立することを考えていましたが、それには配布に関する 2 つの主要な弱点があります。共有秘密。