如何在不打开身份提供商的登录表单的情况下使用 OAuth 并使用我的



我需要使用OAuth 2.0协议对用户进行身份验证
正如我所读到的,这个过程的主要步骤是为用户打开一个弹出窗口。该窗口包含身份提供商的登录表单,然后重定向到带有访问令牌的页面
我有一个案例,我需要使用我的登录表单,并希望用户在其中输入他的/她的凭据。

我使用Azure AD作为身份提供商,但问题是一般性的。

也许你认为这样我们就错过了OAuth的全部要点,但我想知道这是否可能,因为我也想将它与WPF应用程序和ASP.NET MVC一起使用,所以在WPF中,不适合打开浏览器窗口让用户输入凭据。

感谢

首先,OAuth 2.0不支持用户身份验证,请参阅:http://oauth.net/articles/authentication/.基于OAuth 2.0的用户身份验证只能通过OAuth 2.0的扩展来完成,一些提供商(如Facebook)为此构建了自己的扩展。用于用户身份验证的OAuth 2.0的标准化扩展名为OpenID Connecthttp://openid.net/specs/openid-connect-core-1_0.html.

至于您的问题:在客户端应用程序中输入用户凭据正是OAuth 2.0和OpenID Connect试图阻止的反模式。然而;迁移";OAuth 2.0的流称为Resource Owner Password Credentials流,可以通过这种方式使用,尽管规范强调它仅用于迁移目的,而不是首选,请参阅:https://www.rfc-editor.org/rfc/rfc6749#section-10.7.

您可能能够找到一个支持此流的提供程序,但实际上,任何提供程序都不应该(当遵循规范时)。例如,谷歌不支持资源所有者密码凭据流,因为他们不希望谷歌凭据泄露到第三方网站。

最新更新