[英]Dynamically assigning user permissions for a react app with an AWS serverless backend
對於上下文,我構建了一個注釋應用程序以及無服務器堆棧: https://serverless-stack.com
基本上我有一個筆記應用程序,它允許用戶寫筆記,然后在儀表板上查看他們寫的所有筆記作為提要。 該數據庫是一個 DynamoDb 表,它根據 userId 進行查詢以返回將填充提要的所有注釋的列表。
我想弄清楚的是如何動態分配哪些用戶可以查看筆記。 例如,應用程序將有用戶 A、B 和 C。 用戶 A 寫了一個注釋,然后他允許用戶 C 查看但不允許用戶 B 查看。
實現這一目標的最佳方法是什么? 我已經看過一些基於角色的訪問控制選項,但我認為這在我正在嘗試做的事情的上下文中不起作用,因為在那種情況下會有太多假設的“角色”來處理所有可能的訪問組合,尤其是隨着用戶數量的增長。
我的另一個想法是保留一個單獨的 DynamoDb 表,用於存儲筆記與可以看到它們的各種用戶之間的關系。 所以架構會是這樣的:
noteId | userId | visibility
-------|--------|-----------
1 | A | Yes
-------|--------|-----------
1 | B | No
-------|--------|-----------
1 | C | Yes
並且返回可用注釋的查詢必須更新以填充可見性設置為 true 的注釋。
這是管理用戶權限的好方法嗎? 不確定此選項是否可以很好地擴展。
如果想出適合所有用例的完整 model,go 太過分了。 不過,我希望能夠提供一些指點。
對於 Amazon DynamoDB 中的 model 數據,考慮訪問模式是有意義的。 他們可能是以下,也許更多:
鑒於這些模式,有多種方法可以使用 DynamoDB 表和二級索引來 model 數據。 查看以下鏈接以獲取建模指導:
如何在 DynamoDB 中建立 model 一對多關系: https://www.alexdebrie.com/posts/dynamodb-one-to-many/
在 DynamoDB 中建模多對多關系的最佳實踐: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-adjacency-graphs.html
使用 DynamoDB 進行單表設計的內容、原因和時間: https://www.alexdebrie.com/posts/dynamodb-single-table/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.