【发布时间】:2017-10-28 03:38:31
【问题描述】:
我是 Identity Server 4 的新手。 我正在部署一个包含三个项目的解决方案:控制台应用程序、Web api 和 Identity Server 4。 我想在我的控制台应用程序中获取一个输入用户名和密码的访问令牌。 我问是否可以不使用资源所有者密码流而仅使用混合流来做到这一点?如何在我的控制台应用程序中执行此操作?
更新问题
我正在部署一个控制台应用程序来模拟作为最终目标的本机应用程序。在阅读了几份文档后,我决定使用我需要的授权代码流。
问题是用户(在本例中是我的控制台应用程序)必须输入用户名和密码才能进行身份验证。但是使用授权码我验证了客户端,而不是用户。对吧?
我这样说是因为我无法将用户名和密码发送到授权端点以获取授权码。
我之前是否使用授权代码流程对客户端进行身份验证,然后使用资源所有者密码流程对用户进行身份验证? 步骤是什么?
【问题讨论】:
-
是否要求 SPA 应用程序有自己的登录屏幕,或者您是否同意登录屏幕位于 IdentityServer 上的典型方法?您通常希望这样做以防止设备上的某些内容获取用户名和密码。
-
@aaronR 理想的情况是使用 App 的登录屏幕,而不是 Identity Server 的登录屏幕。我发现了很多典型方法的示例,其中登录屏幕位于身份服务器上。但我需要使用应用程序的登录屏幕。
-
如果这是像移动应用程序一样安装的东西,您知道这种方法的安全风险吗?
-
有这样的例子吗?使用授权代码流使用自己的登录页面的移动应用程序的身份验证?这种方法有什么风险? @aaronR
-
首先我不确定你是否可以混合使用这两者。其次,安全风险是移动设备上的另一个应用程序或恶意代码可能会监听并窃取用户名和密码。如果您使用 IdentityServer4 或任何其他受 SSL 证书保护的服务器,则窃取用户名和密码要困难得多。