【问题标题】:OAuth2 Client with Credential prompt带有凭据提示的 OAuth2 客户端
【发布时间】:2021-12-08 07:34:35
【问题描述】:

我了解 OAuth 中的不同流程和流程,但我想弄清楚如何解决其中的一个难题。

所以,我(ASP .Net Core MVC 应用程序)需要做的第一步是向用户显示一个弹出窗口,允许他们输入我打算使用的第三方 API 的用户名和密码。然后,我需要捕获从第三方身份验证服务器发回的响应,其中应该包含我的授权代码,然后我需要在每次后续调用 API 时使用它......

这是我正在努力解决的问题。第三方服务器身份验证对话框的呈现以及包括令牌在内的响应的捕获。

任何指针?

-- 编辑-- 我正在使用 IdentityModel 并且可以在 OidcClient 类中看到我认为我需要的功能,但这些是针对符合 OpenID 的接口(据我所见),并且我尝试使用的 API 不是 OpenID 的……或者是我错过了一些明显的东西?当我尝试使用这个类时,我得到了与“DiscoveryDocument”相关的错误,我认为这是一个 OpenID 的东西......

【问题讨论】:

  • 目前还不清楚你在挣扎什么。我建议您阅读更多关于OAuth2 and OIDC 的信息,例如,可以尝试一些quickstarts 使用identityServer4。只是为了更好地了解你真正需要什么
  • 嗨@AndrewSilver。是的,对不起,也许我的帖子不是很有帮助。我需要的非常简单——我需要了解如何打开浏览器窗口访问我的授权 URL(第三方 API 授权 URL)以允许用户登录,然后捕获包含我的令牌的服务器响应。所有这些都发生在我的 MVC 应用程序中,所以我假设它需要在一个弹出式浏览器窗口中打开......
  • 您在问题中描述的是authorization code flow。但是你不需要手动打开那些 URL,你只需要使用一些实现 OAuth2/OIDC 的库,比如提到的IdentityModel,如果我们在谈论客户端库
  • 好的,所以当我使用 Postman 执行此操作时,我指定了授权端点 (api.channeladvisor.com/oauth2/authorize),此时我会看到一个浏览器弹出窗口,询问我的凭据。只有当我输入这些时,邮递员才会获得相关的令牌......这是我试图复制的位。我显然不想在我的应用程序中存储或处理用户凭据,因为这正是 OAuth 应该避免的,不是吗?

标签: c# asp.net-mvc asp.net-core oauth-2.0


【解决方案1】:

通常,当您调用 /authorize 端点时,您会被重定向到登录页面,您可以在其中输入您的凭据。

DiscoveryDocument 听起来像 /.well-known/openid-configuration 端点

我是否理解正确,您正在尝试这个:https://identitymodel.readthedocs.io/en/latest/client/token.html#requesting-a-token-using-the-authorization-code-grant-type

【讨论】:

    猜你喜欢
    • 2023-04-09
    • 2021-12-22
    • 2016-09-28
    • 2012-12-17
    • 1970-01-01
    • 2020-12-25
    • 1970-01-01
    • 2022-08-06
    • 2022-08-19
    相关资源
    最近更新 更多