将 SAML 与 JWT 用于节点 API
Using SAML with JWT for Node API
我正在通过 passport-wsfed-saml2 策略 https://github.com/auth0/passport-wsfed-saml2 使用 SAML2 构建一个 Angular 2 应用程序。当我从 SAML 收到用户信息时,我生成了一个 JWT 令牌,我用它来验证 API 上的用户,我也在写。
所以我有两个服务器,APP/Auth 服务器 为我的应用程序提供服务并生成我的 JWT 令牌和 API 服务器 有我的 API。两个服务器都有一份 JWT 秘密副本,所以当用户从 APP/Auth Server 发送请求到 API Server 我通过使用密钥验证他们随请求发送的令牌来验证它。
现在回答我的问题,让您的应用程序从用于生成 JWT 令牌的同一台服务器提供服务是否是一种不好的做法?如果是这样,我应该在这里做什么?我应该做更多的事情来验证我 API 端的用户吗?
关于这件事的一些地方感觉很脏....任何帮助将不胜感激。
将应用程序和身份验证系统放在同一个服务中本身并不是一种不当行为。一般来说,解耦服务是推荐的,但这并不意味着部署可以将服务分组,当然取决于上下文
如果您担心在服务器之间共享密钥,您可以使用非对称密钥对(私有和public)。私钥只需要被 Auth Server 知道才能对 JWT 进行签名。 API 服务器可以使用 public 密钥来验证令牌。
我正在通过 passport-wsfed-saml2 策略 https://github.com/auth0/passport-wsfed-saml2 使用 SAML2 构建一个 Angular 2 应用程序。当我从 SAML 收到用户信息时,我生成了一个 JWT 令牌,我用它来验证 API 上的用户,我也在写。
所以我有两个服务器,APP/Auth 服务器 为我的应用程序提供服务并生成我的 JWT 令牌和 API 服务器 有我的 API。两个服务器都有一份 JWT 秘密副本,所以当用户从 APP/Auth Server 发送请求到 API Server 我通过使用密钥验证他们随请求发送的令牌来验证它。
现在回答我的问题,让您的应用程序从用于生成 JWT 令牌的同一台服务器提供服务是否是一种不好的做法?如果是这样,我应该在这里做什么?我应该做更多的事情来验证我 API 端的用户吗?
关于这件事的一些地方感觉很脏....任何帮助将不胜感激。
将应用程序和身份验证系统放在同一个服务中本身并不是一种不当行为。一般来说,解耦服务是推荐的,但这并不意味着部署可以将服务分组,当然取决于上下文
如果您担心在服务器之间共享密钥,您可以使用非对称密钥对(私有和public)。私钥只需要被 Auth Server 知道才能对 JWT 进行签名。 API 服务器可以使用 public 密钥来验证令牌。