私が持っている質問は、RavenDbとAuthorizationバンドルを使用してサービス間でドキュメントを保護することです。
私はすべてのものを管理する責任がある「アカウント」サービス「ユーザー」を持っています。
私は、壁の投稿、会話など、すべての「メッセージング」を担当する「メッセージング」サービスを持っています。
このサービスで誰が何をしたかを追跡するために、新しいメッセージが投稿されたときに、メッセージと2つのUserProxyオブジェクトを作成します(UserIdプロパティとUserNameプロパティのみを持つUserオブジェクトを切り取ります-これらは子オブジェクトとしてWallPostドキュメントに保存されるため、 tそれ自体で文書化)
ユーザーが別のユーザーの壁に何かを投稿するとき、私は許可したいだけです:
- 元の投稿者、受信者、管理者を削除/編集する
- 元の投稿者、受信者、管理者、および受信者のすべての友達に表示
私はまた、画像/ビデオを担当するメディアサービス、すべての音楽イベントのためのMusicEventサービスを持っています-それらはすべて同様の設定を持っている必要があります。
私の質問はこれです:
*アカウントサービスは、役割と権限を持つマスターユーザーを保存する必要があります-ユーザーを求められたときに、役割と権限を持つdtoを送り返すことができます(分厚い可能性があります)
*メッセージングサービスは、独自の役割と権限のセットを使用して、独自のユーザーのコピーを維持する必要がありますか?
1つ目は一元化されているため、先に進むのが簡単ですが、2つ目はおそらく少し危険に見えますが、AccountServiceがユーザー名を変更すると問題が発生します。イベントをesbに送信し、関連するすべてのサービスに取得してもらうことができます。アップデートの世話をしますが、それは複雑に聞こえます。
FTR-私はオプション2-非集中型の方法に動いています。