问题标签 [passport-azure-ad]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
332 浏览

azure-active-directory - Azure-AD OIDC:有可用的日志记录吗?

我在哪里可以找到有关 Azure-AD OpenId Connect 登录失败的日志记录?

我在以下位置创建了一个应用程序:Portal.Azure.com -> Azure AD -> App Registrations

并在同一位置“Keys”下为所述应用程序创建了一个密钥。

我正在尝试使用 passport-azure-ad 对端点进行身份验证并使其大部分工作,但我相信我需要更多额外的服务器端日志记录详细信息来找出我做错了什么。

目前,我的应用程序成功地将我重定向到以下位置,在该位置我可以选择登录: https ://login.microsoftonline.com/common/oauth2/v2.0/authorize

当我成功登录时,我得到:

我假设某处必须有一些日志记录来告诉我更多关于什么是坏的细节。

0 投票
1 回答
1952 浏览

node.js - 在 Passportjs 中使用 passport-azure-ad OIDCStrategy 时遇到问题

我正在尝试使用 passport-azure-ad 来验证用户身份。该应用程序显示通用登录屏幕,但当我点击登录时,浏览器窗口变为空白并显示一个微调器,指示其工作。同时,我的服务器正在接收到我的回调端点的连续 POST 请求流。

在此期间,我的任何护照功能(验证、序列化用户和反序列化用户)都没有被调用过。

这是我的策略定义:

这是我的路线定义:

有几点要提:

  1. 我正在为我的组织开发应用程序,因此它应该只对我们 AD 中的用户进行身份验证。
  2. 我最初尝试使用https://login.microsoft.com/<tenant>...identityMetadata 的版本,但收到有关 API 版本不支持应用程序的错误 - 使用 common 似乎已经解决了该问题。
  3. 正如我上面提到的,console.log()serializeUser、deserializeUser 和验证回调中的代码永远不会被调用。

我的 nodejs 服务器上的控制台窗口简单地显示了这一点:

您可以看到这种情况一直持续到我终止该会话或浏览到站点上的其他页面。还要注意,在生成 POST 回调日志时,在身份验证之后发生的日志永远不会生成。

任何帮助将不胜感激。

0 投票
1 回答
2593 浏览

node.js - 从 passport-azure-ad.OIDCStrategy 获取 access_token 以用作不记名令牌

** 免责声明——我是 oAuth 和 OpenIDConnect 世界的新手——如果我在这里问一个愚蠢的问题,请耐心等待。

我想创建一个从 API 请求数据的 SPA。SPA 和 API 都托管在同一个 nodejs 服务器上。我希望任何访问数据和/或应用程序的人都可以通过我们在 Office365 上的 AzureAD 租户进行身份验证。

目前,我使用 passport-azure-ad.OIDCStrategy 进行身份验证。但是,在我的应用程序中,我还希望能够从服务器端 api 代码中的 Microsoft GRAPH api 访问信息。但是,我已经建立的 OIDC 连接似乎不足以让我访问 GRAPH api。看来我可能需要一个 jwt 不记名令牌。

我的问题是,我是否需要使用 OIDC 响应中的访问令牌来获取不记名令牌?如果是这样,我该怎么做(在服务器端——nodejs)?

我尝试查看 Passport-auth-ad 中针对 BearerStrategy v2 端点列出的示例。令我困惑的是它使用了 OIDCStrategy!这是否也返回不记名令牌?如果是这样,我是否已经在我的第一个 OIDCStrategy 电话中收到了我需要的一切?

感谢您提供的任何帮助!

更新

错误信息:

我确认该令牌与在 Azure 的身份验证回调中作为 id_token 传递的令牌相同。有什么想法吗?

更新 2

还有一些代码片段可帮助诊断我可能出错的地方。

策略配置

路线定义

0 投票
1 回答
257 浏览

passport.js - AppModelV2:如何使用 Azure 自动获取登录用户

我正在尝试使用来自此参考https://docs.microsoft.com/en-us/azure/active-directory/active-directory-v2-devquickstarts-node的 passport-azurea-ad 进行统一应用程序身份验证的新模型-网络

集成是成功的,但是每次我登录时,我都会被重定向到一个页面,我可以在其中从现有的 Microsoft 帐户中进行选择或添加一个新帐户。如果用户已经登录到他的 azure 或 microsoft 帐户,为什么会话或帐户没有自动获取?我的要求是如果他登录到他的 azure 帐户或 micrososft 帐户,应该自动获取用户会话(不是第一次他同意)在此处输入图像描述

如果他已经登录,则需要避开此页面

0 投票
1 回答
607 浏览

node.js - 护照天蓝色广告,令牌验证

这个问题与 passport-azure-ad 有关,它是否解析和验证令牌?

我试图掌握使用 passport-azure-ad 模块。我使用 OpenID Connect 成功登录了我的用户,拿起 access_token 并直接使用我的 REST API,这些 API 由app.get('myapi',passport.authenticate('oath-bearer', {failureRedirect: '/'}), function(req,res){});

但是,如果我尝试从 OpenID connect 创建的会话中注销,则令牌在到期之前仍然有效(通常为 3600 秒)。

我正在使用 access_token 来保护我的端点没有托管在 Microsoft 的 API 网关后面,所以我猜 access_token 的撤销不是直截了当的。

有什么方法可以检查 access_token 是否使用 passport-azure-ad 被撤销?最好的做法是什么?

0 投票
0 回答
136 浏览

node.js - AppModelV2:无法在 Internet Explorer 上获取某些用户的访问令牌

passport-azure-ad我使用此参考https://docs.microsoft.com/en-us/azure/active-directory/active-directory-v2-devquickstarts-node-web实现了统一应用程序身份验证模型。这是我的代码:

我已经注册了一个函数azureOauthVerifypassport-azure-ad如下所示:

问题是所有使用 Chrome 的用户都能够正确登录,但对于某些使用 Office 电子邮件的 Internet Explorer 用户(不是所有人)来说,无法登录。

我刚刚调试了这个问题,发现没有从 接收到访问令牌AZURE_ENDPOINT,即被/azure/callback调用,但是使用护照注册的函数azureOauthVerify,没有被调用。

我在这里做错了什么?

0 投票
1 回答
952 浏览

node.js - 使用 passport-azure-ad 的 OIDCStrategy 的多个策略

我们可以在同一个应用程序中为 OIDCStrategy 设置多个策略吗?我有一个应用程序需要通过 App1(ClientID1) 或 App2(ClientId2) 进行身份验证。

使用 passport-azure-ad OIDCStrategy 时,我总是只通过其中一个进行身份验证。

以下是路线:

这是配置的策略。

更新:passport-azure-ad 不支持此功能。通过深入验证。当我们添加新策略时,它实际上是向键“azuread-openidconnect”添加策略当我们添加另一个策略时,它会覆盖现有的策略。

话虽如此,它将始终使用最新的。

对于我的应用程序需要通过多个 AAD 应用程序进行身份验证的场景,我们仍然有解决方案吗??

到目前为止的解决方案是:我们应该注册一个多租户 AAD 应用程序并将租户限制为我们想要的。

0 投票
1 回答
905 浏览

node.js - 如何使用passport-azure-ad在nodejs中获取用户组

我正在使用 nodejs passport-azure-ad 进行 OIDCStrategy 的 AD 身份验证。一切正常,但我无法获取正确的组。尽管我也更新responseType: 'code id_token',并获取了组 ID,但组与显示的 azure 门户不同。

0 投票
1 回答
102 浏览

node.js - AD auth 组更改不反映

我正在使用带有 OIDCStrategy 的 node js passport-azure-ad。

当我从一个组中删除一个用户时,它并没有对我的代码进行引用

返回所有组,包括已删除的组。

但是当我尝试重新启动时,我的节点 js 服务器组被删除。

如何在不重新启动节点 js 服务器的情况下强制更新组?这是由于令牌缓存吗?如何在护照天蓝色广告中刷新令牌。

我试图搜索如何在 passport-azure-ad 中刷新令牌,但没有找到与此相关的内容。

0 投票
1 回答
290 浏览

php - Microsoft Azure Active Directory 护照身份验证

波纹管代码运行良好,但是当授权标头带有来自 php 代码的空令牌(例如-'Authorization: Bearer')时,node.js 应用程序崩溃。我正在使用“passport-azure-ad”节点模块。我检查了 Post man,它验证了令牌,但是当请求来自 php curl 请求时,应用程序崩溃了。原因是,http 标头在“passport-azure-ad”节点模块中设置了两次。我无法捕捉到这个错误。

崩溃错误跟踪 - _http_outgoing.js:356 throw new Error('Can\'t set headers after they are sent.'); ^

错误:发送后无法设置标头。在 \node_modules\passport\lib\middleware\authenticate.js:156:13)

PHP代码=>

我该如何从我这边处理这个错误,谢谢。