使用WebApp< => WebApi身份验证方案,我从WebApp中的Azure AD获取JWT令牌并将其传递给WebApi。在WebApi中,从WebApp的令牌生成Azure GraphAPI的访问令牌,以调用GraphAPI进行授权。
WebApp和WebApi都在Azure租户门户上注册为单个应用程序,因为WebApp和WebApi的用户身份验证都相同。
这是一个Intranet应用程序,对AD中的所有用户开放。有关令牌验证或身份验证的几个问题。
由于JWT令牌经过数字签名和加密。当从WebApp传递令牌时,不在WebApi中进行验证会有什么影响?
请告知。
答案 0 :(得分:1)
我们只对Audience进行验证(如果您的申请不是多租户,您可以使用租户,但对我们来说,因为它是多租户,我们使用“普通”作为租户)。
如果我们不在我们的API中进行受众验证,那么获取图形令牌的任何应用程序都可以调用您的应用程序(唯一的验证是令牌过期或不过期)。
JWT令牌未加密,它是基于64位编码的,您可以使用http://jwt.calebb.net/之类的工具查看令牌中的属性。
答案 1 :(得分:1)
经过很长时间的努力,我想出了这个:
需要检索第一个x5c密钥:https://login.windows.net/common/discovery/keys
然后,安装https://github.com/auth0/node-jsonwebtoken 遗憾的是,该库不支持证书验证。您需要将其转换为密钥(私人或公共)。
然后代码是:
NgComponentOutlet