【发布时间】:2019-11-08 17:12:27
【问题描述】:
我们在 AngularJS 中开发了前端,在 NodeJs 中开发了后端 API。我们使用 Azure AD 进行身份验证。前端 Angular 使用 adal-angular javascript 库进行天蓝色身份验证。因此,当用户访问网站时,他会被重定向到https://login.microsoftonline.com,并且在成功验证后,他会被重定向回我们的网站。到目前为止一切顺利。
我必须使用 passport-azure-ad 库来保护后端 api。只有前端调用这些 API。使用此库有两种可用的策略
1> OAuth2Bearer 策略
2> OIDCStrategy for Open ID Connect
我的印象是 Azure AD 默认使用 OpenID Connect 进行身份验证。所以我打算使用 OIDCStrategy 来保护 Node web api 为discussed here
但是在提琴手中,我看到以下请求客户端(即角度前端)在调用 Web API 时正在发出
GET http://localhost:4030/api/getemployees HTTP/1.1
Host: localhost:4030
Connection: keep-alive
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOi………………………
Referer: http://localhost:4030/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
注意授权标签以 “Bearer” 开头,所以我假设客户端正在向服务器发送 Bearer 令牌。
问
1>我应该在这里使用哪种策略?
2>我们什么时候应该使用一个而不是另一个?
【问题讨论】:
标签: node.js adal azure-active-directory