【发布时间】:2019-12-22 14:43:12
【问题描述】:
现在我有一个移动应用程序 (M)、一个 Web api (A) 和一个 Identity 4 服务器 (I)。
我的目标是采用微服务 DDD 方法。
我的身份服务器是否应该在其自己的数据库中拥有用户配置文件(用于注册/登录),或者我的 API 是否应该在其数据库中拥有这些用户配置文件?
让场景 1 是 Identity 拥有它们,场景 2 是 API 拥有它们。
在我看来场景 1 是有道理的,但我对这个问题的假设如下:
场景 1,注册:
我有一个往返身份的旅程。
M -> I -> M
场景 1,登录:
我有一个往返身份的旅程。
M -> I -> M
场景 2,注册:
我有这样的旅行
M -> A -> M
场景 2,登录:
移动应用与 Identity 对话,后者要求 API 检查用户,并在成功时将令牌发送回移动应用。
M -> I -> A -> I -> M
或者移动应用程序与 API 对话,成功后从 Identity 获取令牌,然后将它们发送回移动应用程序。
M -> A -> I -> A -> M
【问题讨论】:
-
通常,您不会将带有用户信息(姓名、电子邮件等)的配置文件复制到 API 的数据库中。而且你的流程更像
M tries to access protected resource -> A returns 401 since user not authorized -> M redirects to identity provider -> I user logs in / signs up and idp issues token -> M uses token to access protected resource -> A returns protected resource -> M receives protected resource。
标签: architecture domain-driven-design microservices identityserver4