我有一个角度应用程序,它调用java rest api来获取数据。我们需要通过azure AD保护这些应用程序。
我正在使用ADAL.js库进行角度应用,并尝试查找任何可用于休息api的库,但在互联网上找不到任何库。所有样本都是为使用Microsoft的OWIN框架的webAPi提供的。
目前我的理解是,我们的角度应用程序将调用Azure AD来获取访问令牌,并将其发送到java rest api。 它是由RSA私钥签名的JWT令牌。 我可以从JWKs uri获取公钥,并验证JWT令牌及其签名是否有效。如果它有效,其余的api会将响应发送回角应用程序 - 休息api方面是否足够?我们不需要Rest api和Azure AD之间的任何通信吗?如果有人窃取访问令牌并使用它(在其有效期内?)该怎么办? 我的印象是资源服务器(java rest api)还需要与授权服务器(Azure AD)交谈,但不确定JWT令牌是否真的需要它。
答案 0 :(得分:0)
@ Deb,我发现你的需求与这个场景相匹配---- Web应用程序到Web API。我建议你参考这个文档( https://azure.microsoft.com/en-us/documentation/articles/active-directory-authentication-scenarios/#web-application-to-web-api)。如果您的前端使用Angular App,则可以使用passportjs来传递Azure AD授权。请参考documnet( https://azure.microsoft.com/en-us/documentation/articles/active-directory-devquickstarts-webapi-nodejs/#6-install-passportjs-in-to-your-web-api)。
它是由RSA私钥签名的JWT令牌。我可以获得公钥 来自JWKs uri并验证JWT令牌及其签名是否正确 有效与否。如果它有效,其余的api将发回响应 角度应用程序 - 在休息api方面是否足够?我们不需要任何 Rest api和Azure AD之间的通信?
如果您获得了access_token,则可以在请求中使用此令牌调用REST API。您无需在REST API和AAD之间进行任何通信。但请注意,您需要让您的API应用程序信任另一个应用程序
如果有人窃取访问令牌并使用它(在其中) 到期时间?)我的印象是资源服务器( java rest api)还需要与授权服务器(Azure AD)交谈 但不确定JWT令牌是否真的需要它。
您还可以在应用程序中为令牌设置到期时间。请参阅本文档中的“令牌过期”部分(https://azure.microsoft.com/en-us/documentation/articles/active-directory-authentication-scenarios/#application-types-and-scenarios)