问题标签 [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.
angular - IdentityServer 外部身份验证提供程序 - 身份验证回调 - 重定向 - 400 错误请求
我正在关注 https://www.scottbrady91.com/Angular/SPA-Authentiction-using-OpenID-Connect-Angular-CLI-and-oidc-client和https://www.scottbrady91.com/Angular/Migrating-oidc -client-js-to-use-the-OpenID-Connect-Authorization-Code-Flow-and- PKCE 在 SPA(Angular)中实现 OIDC
我正在使用 aspboilerplate 集成 IdentityServer
我已经按照上述文章设置了所有内容,并且能够导航到外部身份验证提供程序,并且还能够输入所需的凭据。
在重定向到 Angular 时,我收到 400 - 错误请求。这是详细信息
回调网址:
Cookies : 请求发送 9095 字节的 Cookie 数据:
身份服务器配置:
角度配置:
请让我知道可能出了什么问题
编辑:到目前为止我发现的是
- 即使使用另一个 Angular oidc 客户端
angular-auth-oidc-client
,我也陷入了同样的错误 - 使用 JS 客户端(https://github.com/IdentityServer/IdentityServer4/tree/master/samples/Quickstarts/6_JavaScriptClient),它按预期工作。但由于我们有 Angular 作为前端,我通过包含所需的 JS 库在 Angular 中实现了 JS 示例,令我惊讶的是,我面临同样的问题
当我复制 URL 并粘贴到另一个浏览器中时,
call-back
会调用该组件。所以看起来 Header & Cookie 有问题。这是我从 Fiddler 收到的请求的完整数据主机:localhost:4200 连接:keep-alive 升级-不安全请求:1 用户代理:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36 Sec-Fetch-Mode: 导航接受: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng, / ;q=0.8,application/signed-exchange;v=b3 Sec-Fetch-Site: none 接受编码: gzip, deflate, br Accept-Language: en-US,en;q=0.9
Cookie: .AspNetCore.Antiforgery.xkdte50z5pg=CfDJ8FAKJpEizERFtUzdjBClgcvmHhFjLJ4WDhku77bzpIxGI20-YRukepOXg6hGG4AUWzSGKXSWmy0Ie9tQFsXnWx0sUUlh0EAOij8y18d_96_-FVyCrPhtQ0JRtEXvhPXLxqum0sIJmwFD1116QRU-E5A; idsrv.external=chunks-2;idsrv。MKJYCXZt6vpbZtRl9Qp5K2x2N5V3ChOe1Qpwb40FjU4_UhbkBbiqr5N2R_RfGS8JH5hDDn09LEZojC6YHq_YCc0B8QwlFfiThYCE1QvHpAUJ-Yk1HDVJ2tNW_y04CXwMheBCMB90c2SmyLY6w59G8vKOLk-CHrn7dfL6uaECsNcdieFB_pb3N66tjGd38-dS3DCULT7xZMAxhdZoBgrmehUX2F3dvP6t9snKXc8QrUUkeogFzOpVOCdJKUMwsZLgJjXMfq_psFc3gtbQEGi_n7nH-kHkigntSgaieblXuVzqV0UGCJr3pcEsCt5I2kWGZmUiUhEOLLBApK2vvDl8WgOkGmyIQmVEUa-UDp5XoJeZ8n-8ZVlPbFUg4CFuvCBserjD1b-WTOYgam1ufRRImo0OlsAVDNkZBsc-3SJ-jMhwhukhnE4AycHlB3o5inVRUWvjWckrTetL3d5ivj6rwI6sLQEZXnpBIwDZDTbMnCNFuaMaPT3q1l1MxSRncvF4xolSQraCjjAdpLVtfNM1bBC_1c_3a0z97OlhDFOM9sppnCqWIXdwcNKdj1B4dVdMUescRrVgy; idsrv。yC8nnCe_icrNO1W_boKRaJJ9EOVa8iHJIRo1QxSGsbYMHV-Fghng-7klfIZWcsuMgx_YJEmTS7clsFKG4kjVEjxQ9VOcVzjjtx4sfuelkEuqdr7cMwbJneRwoiLsIGVPMxSZphdgHb_mn3Hm6Nbb07EibbRIl-Y96fPZCqDGhq1R6DONprDwXJ305kvEspHeQayWiwXOoGg6XQJNtMf9aBrPc3ocQWvTjoRQj6GmpqyEXODhVYuePHiEmqh8XAVdLuIEFra6INZYmev4h8eWMKX3cle2WivccXEe3e5X175Vg1Yi23uw7lOu5o0_-G68; idsrv.session=5d538478b846f725df5730950f1b193e;.AspNetCore.Identity。
HTTP/1.1 400 错误请求连接:关闭
这是我在浏览器中看到的
angular - 尝试重定向到 Azure AD 进行身份验证时遇到 CORS 策略问题
我收到此错误:
Access to XMLHttpRequest at 'https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/authorize/.well-known/openid-configuration' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
尝试重定向到 azure 进行登录时。
这是服务:
}
我确定我正确注册了我的localhost
网址。然而,我得到了那个错误。到目前为止,我没有看到任何处理该问题的文档。
感谢您的帮助
angular - 在角度 7 中处理过期令牌的静默更新 - oidc 代码流?
如何在使用 oidc 代码流的角度应用程序中处理访问令牌过期?
我在 oidc 客户端设置中将 automaticSilentRenew 设置为 true,这会触发对令牌端点的调用并获取新的访问令牌,然后我会监听 addAccessTokenExpiring 事件并设置新的用户信息。
使用授权代码流时是否有不同的方法来处理过期令牌?不能让它正常工作!
//注意:this.user 对象包含我在请求受保护的 api 时使用的访问令牌
我希望我对受保护 api 发出的 http 请求将使用新的访问令牌,但最终会使用过期的访问令牌并在客户端收到 401 ......
javascript - 如何获取 AccessToken
我在 React 中使用以下插件(@axa-fr/react-oidc-context)来启用 AzureAd 身份验证。现在我需要在认证完成后访问 ApolloClient 中的 access_token。我不确定如何在 ApolloClient 等非反应组件中获取 access_token。
这就是我正在做的事情。
应用程序.js
布局.js
阿波罗.js
我正在尝试在 apollo.js 文件中提取访问令牌,但它会抛出错误,提示我无法访问非 React 组件中的 React Hooks。
angular7 - 将自定义参数从角度 oidc-client 传递给 returnurl
我正在尝试将自定义参数传递给从 angular oidc-client 登录页面 IdentityServer 4 中使用的 returnURL。
根据我从 returnURL 收到的参数,我想绕过登录网站并将它们重定向到 IDP。我打算从角度将参数添加到特定页面,然后我想从那里重定向到登录。
下面的链接讨论了它们,但我无法关注它们。你们能帮忙吗。提前致谢。
将自定义参数传递给登录页面 Identity Server 4 中使用的 returnUrl
https://github.com/IdentityServer/IdentityServer4/issues/909
C# AccountController.cs
角 auth.service.ts
我希望 returnurl 有一个参数,并在 AccountController.cs 的 Login 方法中添加这样的条件。
ios - ASWebAuthenticatioSession SSO 对话同意问题
当使用 SFAuthenticationSession 或 ASWebAuthenticationSession 时,当前每次显示窗口时都会提示用户同意。
在某些时候,用户选择退出并再次显示 UIAlert 询问他们是否同意登录
用户已登录,正在尝试退出并被提示同意登录 - 因此他们可能会退出
另外,当尝试使用 ASWebAuthenticationSession 打开需要相同应用程序身份验证的网页时,会显示对话框,而当使用其他浏览器(如 SFSafariViewController)时,用户未经过身份验证。
identityserver4 - 使用 Identity4 和 OidcClient 的授权代码流
对于 Winforms 桌面应用程序,我将使用 PKCE 的授权代码流。作为身份提供者,我使用IdentityServer和客户端库 OicdClient。下一步我必须决定使用哪个浏览器进行用户登录:
对于 SystemBrowser 来说,流程的简单/清晰的实现。对于 Extended WebBrowser 来说,有些用户可能没有 SystemBrowser。但是 WebBrowser 是一个旧的 IE 版本?是否允许用于安全身份验证?
尽管如此,我还是尝试了“Extended WebBrowser”示例,并偶然将它集成到我的原型环境中,并使用自己的 IS4 服务器。因此,我需要对代码流和重定向有所了解。我已经用纯 .Net 类实现了这个授权代码流,但是使用 OicdClient 让我有点困惑(一开始就像一个黑盒子)。
我的问题是重定向如何与这个库一起工作,谁负责重定向,谁负责接收带有代码的重定向(以交换访问令牌)?
代码流包含以下步骤(没有详细信息,如 clientID、PKCE ...):
- 向 IS4 发送代码请求
- 带有登录页面的 IS4 响应(显示在浏览器中)
- 成功登录后 IS4 发送到重定向 URL 的代码
- HttpListener 使用代码接收此重定向,并且
- 使用代码向 IS4 发送请求以接收访问令牌
使用 OidcClient 并使用自动模式:
这对我来说太神奇了。只有调用 LoginAsync() 才能使其工作......
重要的一点似乎是带有 IBrowser 接口的选项的 Browser 属性及其对该方法的实现:
如果我尝试映射到流程步骤:
- 登录页面:OpenBrowser(options.StartUrl);
- 重定向将由 IS4 完成?示例中的 SystemBrowser 不执行此操作。
- 接收代码:await listener.WaitForCallbackAsync();
1 和 5 可能是由 OicdClient 完成的。这个例子很清楚,需要确认重定向是由IS4完成的。
另一个示例扩展 WebBrowser中的实现
- 完成:browser.Navigate(options.StartUrl);
- 由 IS4 重定向
- 接收事件句柄中的代码:NavigateError ???
这里有什么问题吗?在 IS4 上调用 AccountController.Login 来调用 /connect/authorize/callback? 使用redirect_uri。但这并没有出现在 BeforeNavigate2 中。相反,NavigateError 事件出现在结果设置为:
identityserver4 - 使用 Identity4 和 OidcClient 的授权代码流的 netstandard 示例
是否有任何用于使用 Identity4 和 OidcClient 的授权代码流的 netstandard 2.0 示例?像仅在 .net 核心中的SystemBrowser