gpt4 book ai didi

node.js - 护照天蓝色广告 : which strategy to use

转载 作者:搜寻专家 更新时间:2023-10-31 23:29:59 25 4
gpt4 key购买 nike

我们在 AngularJS 中开发了前端,在 NodeJs 中开发了后端 API。我们使用 Azure AD 进行身份验证。前端 Angular 正在使用 adal-angular用于 Azure 身份验证的 JavaScript 库。因此,当用户访问网站时,他会被重定向到 https://login.microsoftonline.com成功验证后,他将被重定向回我们的网站。到目前为止一切顺利。
我必须使用 passport-azure-ad 来保护后端 api图书馆。只有前端在调用这些 API。使用此库有两种策略可用
1> OAuth2Bearer策略
2> Open ID Connect 的 OIDCStrategy

我的印象是 Azure AD 默认使用 OpenID Connect 进行身份验证。所以我打算使用 OIDCStrategy 来保护 Node web api 作为 discussed here
但是在 fiddler 中,我看到以下请求客户端(即角度前端)在调用 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 token 。


1>我应该在这里使用哪种策略?
2>我们什么时候应该使用一个而不是另一个?

最佳答案

我维护 passport-azure-ad。这里的区别在于“授权”和“认证”。

OAuth2 用于授权(我可以访问它吗?)。

OpenID Connect 用于身份验证(这就是我)。

当您连接到 Web API 时,用户很可能已经拥有身份(他们已经通过身份验证),现在您只想确保用户可以访问 API( 授权)。 OAuth2 用于保护资源并使用来自 IdP 的 token 以确保 token 有效并且用户有权访问该资源。 Bearer 只是我们(和行业)用于 OAuth2 的 token 类型。如果有人根本没有 token 就来找您,您会拒绝他们,然后由调用您的客户知道将他们带到哪里以获得您需要的正确 token 。

OpenID Connect 建立在 OAuth2 之上,纯粹是为了让人们登录并获取您最终将发送到 Web API 的 token (这将反过来使用 OAuth2 和 Bearer token )。所以 OpenID Connect 用于身份验证

在您的场景中,您使用的是为您执行 OpenID Connect 身份验证的 Angular,因此您的 Web API 应该使用 Bearer 策略。

我在这里编写了一个示例来引导您完成所有这些:https://azure.microsoft.com/en-us/documentation/articles/active-directory-devquickstarts-webapi-nodejs/它使用 MEAN 堆栈,并使用我编写的 iOS 示例应用程序作为前端。使用这两个,很容易看出一个如何充当身份验证部分(iOS 应用程序),另一个如何作为授权部分(node.js 应用程序)坐在那里并保护 API

node.js 应用代码:https://github.com/Azure-Samples/active-directory-node-webapi

iOS 应用代码:https://github.com/Azure-Samples/active-directory-ios

要深入了解这些主题,请访问此处:https://azure.microsoft.com/en-us/documentation/articles/active-directory-authentication-scenarios/

如果您有任何其他问题,请告诉我!

关于node.js - 护照天蓝色广告 : which strategy to use,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36653812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com