Security Oauth隐式授权web api授权服务器

Security Oauth隐式授权web api授权服务器,security,asp.net-web-api,oauth,authorization,owin,Security,Asp.net Web Api,Oauth,Authorization,Owin,我正在看下面的隐式授权示例 我可以看到示例如何将未经验证的用户重定向到同一授权服务器的登录页面。如下所示: Client ---> AuthServer ---> 401 | <--- Login (UI) <------ (On Auth server) Client-->AuthServer-->401 | 如果授权服务器的实现支持“”并允许您的应

我正在看下面的隐式授权示例

我可以看到示例如何将未经验证的用户重定向到同一授权服务器的登录页面。如下所示:

Client ---> AuthServer ---> 401
                             |
       <--- Login (UI) <------
            (On Auth server)           
Client-->AuthServer-->401
|

如果授权服务器的实现支持“”并允许您的应用程序使用它,则可以实现您的场景。但是,授权服务器不太可能这样做

OAuth 2.0的主要目的是允许第三方应用程序(如您的应用程序)访问最终用户(=资源所有者)的受保护资源,而无需将最终用户的凭据(用户名/密码)传递给第三方应用程序。因此,您的场景正是OAuth2.0试图避免的用例


[对补充问题的评论]


如果您是授权服务器的实现者,则可以实现“隐式授权”和“资源所有者密码凭据授权”。这取决于你。另一方面,如果您是访问已由其他人(至少不是您)实现的授权服务器的客户端应用程序的实现者,则您的客户端应用程序是否可以使用“资源所有者密码凭据授予”取决于授权服务器的实现。我的意思是,在一般情况下,授权服务器实现不会给第三方应用程序提供使用“资源所有者密码凭据授予”的机会,因为这是一种最后手段,规范(RFC 6749)说“授权服务器在启用此授权类型时应特别小心,仅在其他流不可行时才允许它”

您好,我理解您在这里所说的是可能的,但从oauth的角度来看它是反模式的。您所说的“然而,授权服务器不太可能这样做”是什么意思。。我已经在身份验证服务器上实现了“隐式授权”和“资源所有者密码凭据授权”。你是说它应该只有一个吗?见我的评论添加到答案中。