2

私は現在、SOA ソリューションを開発しています。このアーキテクチャでは、アーキテクチャ内の各サービスが安全で認証されたハイパーメディア リソースです (実際のハイパーメディアのように、きれいな URL を持つ RPC ではありません)。

顧客向け、社内向け、および顧客が構築したアプリケーションは、このアーキテクチャの上に構築されます (ここでは何も珍しいことではありません)。ユーザー識別と資格情報管理の要件が大きく異なる可能性があるため、アプリケーション間で共通の認証パターンが存在するとは想定できません。

したがって、アーキテクチャ内のサービスは別の認証スキームを使用する必要があります。理想的には、これはサービス (HMAC など) 間で完全に一貫しており、可能な限り多くのクライアント/サーバー モジュールを再利用できます。

私の質問は次のとおりです。分離されたサービス全体で一貫した認証と資格情報管理を提供するための共通パターンはありますか? もしそうなら、それは何ですか?

私はいくつかのアイデアを思いつきましたが、より経験豊富なエンジニアからの意見をいただければ幸いです。

1)各サービスは、個別ではあるが機械的に同一の認証インターフェイスを公開し、独自の資格情報管理を担当します。

2) 1)と同様ですが、資格情報管理を共有します。1)のように、アーキテクチャ内のサービスごとに個別の認証インターフェイスが引き続き公開されますが、基礎となるデータ メディアは共有されます。

3)単一の共有認証サービスがあり、それ自体と他のすべてのサービスの認証と資格情報管理を担当します。

アイデア2)が最も魅力的だと思いますが、もう少し改良が必要です。ここで完全に間違った方向に進んでいない限り。

適切と思われる限り、批判/提案してください。もちろん、これは設計に関するものであり、実装に関するものではないことに注意してください。現時点では、フレームワーク/ミドルウェア/プロトコル XYZ には興味がありません。

散文の謝罪、そして読んでくれてありがとう。

4

1 に答える 1

1

LDAP は --> 資格情報を一元化するために離れています。

Amazonの AWS 認証スキームは、あちらこちらで稼働しています。各アプリはそれを実装し、LDAP を参照して資格情報を得ることができます。

キット全体を一元化したい場合は、OAuth がここにあります。

明確にするために、これは思考実験であってはなりません。それは終わった、やり直す理由はない。標準を探して実装します。LDAP と通信するものは多数あります。AWS はその場しのぎの標準ですが、仕事をこなし、ほとんどの人の質問に答えます。また、吟味され、欠陥があることが判明し、修正されており、私たちが話しているように多くの人によって実際に使用されています。OAuth は、中央認証の問題を解決するのに役立ちます。

于 2011-09-08T23:57:12.127 に答える