2013-12-09 29 views
0

官方的规格可能没有提到这个或认为它“超出了本规范的范围”。OAuth 2.0实现 - Auth服务器和资源服务器应该有独立的数据库吗?

假设我们已经决定分开auth和资源服务器。

在实践中,我们为什么要在资源和auth服务器访问同一个数据库,否则我们为什么要保留两个单独的数据库 - 每个服务器一个?

我正在写这个问题,因为实体框架。如果我在两个站点之间共享相同的数据库,即使auth服务器仅触及与帐户相关的表并且资源服务器仅触摸了数据(POCO)表,我们之间的迁移也会发生冲突。 (我其实还没有尝试过,但我不想浪费时间进行试验,所以我想听听有人遇到过这个问题。)

但是,如果我分开数据库,我会失去用户和他拥有的数据之间的外键关系 - 但这甚至是必要的?感觉就像那些“我们那样做是因为”实践。

回答

0

为了将它们结合起来,用迁移,你需要有一个对的DbContext迁移,包括通过任何认证或资源服务器所使用的所有类型,并使用该脚手架迁移。对于需要多个上下文并希望使用迁移的用户来说,这似乎是一种常见做法;到目前为止,它对我来说效果很好。

就外键约束而言,他们就是这样 - 约束。它们在数据库级别执行您的业务规则(即Foo.Bar必须包含存在于Baz.Bar中的值)。这是否有必要取决于你的用例。很少有事情是“仅仅因为”完成的,尽管许多事情都是在没有完全理解的情况下完成的 - “因为我在其他地方看到它是这样做的”。其他地方(或从他们复制的地方等)可能有一个完全有效的理由,这可能会或可能不适用于您的用例。

相关问题