使用express-jwt作为中间件来validationAzure AD颁发的令牌
我想知道是否可以使用express-jwt
NPM包作为中间件来validation由Azure AD发布的JWT令牌。
我们有一个以express / node编写的web API,并希望应用中间件模式来保护我们的端点并填充用户原则。
似乎:
server.use(jwt({ audience: '{UUID}', issuer: 'https://sts.windows.net/{UUID}', }).unless({path : ['/']}))
因为它需要一个客户端秘密,但是从AD(就像在隐式stream程中那样),令牌是通过用户交互来检索的,并且没有客户端秘密。
你可以使用“azure-ad-jwt”。 它相当简单,不需要注入中间件。 当然,您可以将其作为您自己的“中间件”function中间步骤注入。
private verifyToken(req: any, res: any) { var audience = "xxxxxxxxx"; var tenantId = "xxxxxxxxx"; var authorization = req.headers['authorization']; return Rx.Observable.create((observer) => { if (authorization) { var bearer = authorization.split(" "); var jwtToken = bearer[1]; if (jwtToken) { aad.verify(jwtToken, { audience: audience, tenantId: tenantId }, function (err, result) { if (result) { observer.next(true); } else { res.status(401).send('That is not a valid token!'); } }) } else { res.status(401).send('No token in header.'); } } else { res.status(401).send('Missing authorization attribute in header.'); } }); }
- Node.js聊天 – 用户authentication
- 尝试在节点中实现JWT身份validation。 在受保护的路线上获得未经授权
- Nodejs,通过httpsauthentication并redirect到http
- node.js connect-auth应用程序? 例子(用户注册/用户/会话pipe理)
- 在redux中处理权限
- MEAN堆栈 – 如何允许API访问权限只有login(电子邮件/密码和Facebooklogin)的用户
- LocalStrategy不是一个构造函数
- OAuth2服务器:无效或缺lessgrant_type参数
- 基于REST / Web的身份validation即服务的可能性?