问题标签 [angular-auth-oidc-client]

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 投票
3 回答
1202 浏览

openid-connect - B2C 身份验证未返回 access_token

我正在尝试使用 PKCE 一个角度项目来实现授权代码流。我正在使用 angular-auth-oidc-client。我们已经有一个现有的基于 IdentityServer4 的内部实现,客户端可以很好地对抗它,但我们现在正尝试将我们的身份验证迁移到 Azure AD B2C,而不是在内部实现。

我已经配置了 Azure AD B2C 和我的客户端应用程序。这是配置: 我的应用配置

这是我在客户端 OIDC 服务上的配置:

问题:在令牌响应中没有访问令牌: 没有 access_token

即使我在客户端配置中检查了 accesss_token 复选框。我在这里想念什么?

0 投票
1 回答
296 浏览

angular - 将自定义标头设置为 angular-auth-oidc-client 令牌/结束会话调用

我知道您可以将自定义参数添加到授权调用中:

如何添加自定义请求标头?我正在使用 response_type: 'code'。这里没有提到这个https://www.npmjs.com/package/angular-auth-oidc-client 任何帮助表示赞赏。谢谢

0 投票
1 回答
2924 浏览

angular - angular-auth-oidc-client 注销不起作用

我正在使用 angular-auth-oidc-client lib 使用 keycloak 作为身份服务器来验证我的应用程序。我能够登录到应用程序,但是注销功能不起作用。我已阅读文档并使用相同的注销调用,但它似乎不起作用。请帮忙。提前致谢。

这是我的配置:

我的注销方法:

0 投票
1 回答
491 浏览

angular - 如何使用 jasmine 对 OidcSecurityService.Auth() 进行单元测试?

我正在使用 Jasmine 进行单元测试。我正在使用 OidcSecurityService。所以我为它做了一个模拟,像这样:

我有这个组件:

这就是规范现在的样子:

但我得到这个错误:

那么我必须改变什么?

谢谢

所以我做了这个改变:

但后来我得到这个错误:

0 投票
3 回答
4774 浏览

oauth-2.0 - 如何在 Angular 项目中使用 msal.js 2.x (msal-browser) 使用 PKCE 实现授权代码流?

我想在 Angular 项目中使用 msal.js 2.x (msal-browser) 来使用 PKCE 实现授权代码流。我使用 Azure Active Directory 作为 IAM。如果我使用正确的库或应该使用不同的库,请指导我?

0 投票
0 回答
354 浏览

angular - Angular angular-auth-oidc-client identity4 SLO SSO 从所有客户端注销不工作

我无法以角度实现所有客户端的单点注销。我使用的代码在下面。注销功能是从角度应用程序调用并从当前应用程序注销,但它不是从所有客户端注销(其他使用相同身份服务器的角度应用程序)

请帮助我实现所有客户的退出。提前致谢

客户端的IdentityServer4配置

角度 OIDC 配置

角度注销代码

0 投票
2 回答
1435 浏览

oauth-2.0 - Open Id/OAuth2.0 注销中的 PostLogoutRedirectUri 有什么意义?

我一直使用 Identity Server 4.0 作为我的 OpenId Connect 提供者。我可以使用 Redirect Uris 和 Post Logout Redirect Uris 在 Identity Server 中设置客户端。我也一直在使用 angular-auth-oidc-client 通过身份服务器登录/注销。

登录时,我的客户端库(angular-auth-oidc-client)在调用授权端点时确实传入了配置中指定的正确 Uri。当我尝试使用不正确的重定向 Uri 登录时,Identity Server 会检查并验证客户端提供的 Uri 是该客户端接受的 Uri 之一,如果不是(如预期的那样)则显示错误。

当谈到注销时,似乎没有内置。我的客户端库在调用注销端点时不发送 PostLogoutRedirectUri。Identity Server 用于注销的示例代码不包括要传入的任何 URI。它的示例代码只是从数据库中获取 Post Logout Redirect Uri 值并在注销页面上创建一个链接。示例代码不仅不允许用户为注销指定重定向 Uri,而且它不做任何检查,甚至不做重定向(授予它唯一的示例代码,我可以更改它)。我希望我的客户端库在成功注销后传递 Uri,并且身份服务器重定向到 Uri,只要它是客户端的“批准”Uri 之一。

我的问题是: PostLogoutRedirectUri 的意义何在?我使用的 Identity Server 和 OIDC 客户端库都没有做任何有用的事情。对于用于将此 Uri 传递给 Identity Server 的查询字符串参数的名称,似乎甚至没有达成一致的约定。然而,Identity Server 和 Angular 客户端库似乎都支持它。那么这件事有什么意义呢?是以后会添加或充实的东西吗?我是否错过了一些描述其用途和使用方法的文档?

0 投票
1 回答
76 浏览

oauth-2.0 - 在 authcode 授权类型实现上是否默认使用 pkce 的授权代码?

我们正在使用 oidc 客户端。客户端设置授权类型为授权码。但是,我发现我的授权代码使用了 PKCE。因为我可以在没有客户端密码的情况下使用它,并且 uri 上有 code_challenge。我正在查看它是如何设置的,但我找不到它。

我只是想知道带有 PKCE 的 AuthCode 现在是否是默认的。如果我错了,请纠正我,当您没有在您的 oidc-client 中设置您将使用 PKCE 时,您应该使用需要客户端密码的普通身份验证代码吗?

这是我的客户:

}

0 投票
1 回答
69 浏览

angular - 在 Solace Event Broker 中验证传入连接

我正在将前端写入从 Solace Message Broker 接收实时数据的应用程序。目前,前端和消息代理都在受保护的开发环境中运行。

在某些时候,我们显然想让应用程序公开可用。我们在应用程序中进行了有效的身份验证,但我们希望消息代理在建立连接之前以及稍后在订阅之前验证从前端发送的令牌。

身份验证使用angular-auth-oidc-client. 但是,关于配置 OAuth 授权的安慰文档指出

Solace PubSub+ 事件代理仅支持 MQTT 客户端的 OAuth 授权。

该应用程序使用solcientjsnpm 包与代理进行通信。我不得不承认我对那里的所有消息协议都不是很坚定,但我认为该包不使用 MQTT 连接。

这使得 Kerberos 不在可用的客户端身份验证类型列表中。然而,查看kerberos 授权文档,它还说

Kerberos 身份验证不适用于 Solace Web 消息传递 API

所以现在我想知道如何验证来自客户端的令牌。以下是我的“理想”流程:

  1. 用户进行身份验证,应用收到不记名令牌
  2. 应用程序调用session.connect()与代理建立连接,发送不记名令牌
  3. preConnect钩子中(如果它存在的话)我可以向发出令牌的 STS 发送请求并等待响应
  4. 如果 STS 确认令牌有效,则消息代理确认连接并允许订阅。否则它拒绝连接。

有没有办法做到这一点?我可能会严重误解某事吗?我在 Solace 方面没有太多经验,只在前端工作,而不是管理代理的部分。

感谢任何提示。

0 投票
1 回答
170 浏览

angular - 错误:./node_modules/angular-auth-oidc-client/fesm2015/angular-auth-oidc-client.js 4790:36-60 "export 'ɵɵngDeclareInjectable'

我的角度版本是 11 ,我使用的是最新版本的"angular-auth-oidc-client": "^12.0.1" 它对我不起作用,给我以下错误

错误:./node_modules/angular-auth-oidc-client/fesm2015/angular-auth-oidc-client.js 4835:24-48“在'@angular/中找不到导出'ɵɵngDeclareInjectable'(导入为'i0')核