2015-07-21 83 views
0

应用程序设置可信应用程序与API之间的身份验证

应用程序A:第三方,Windows桌面应用程序。这是用户需要登录的应用程序。登录进行管理/本地认证

应用B:我们的应用程序,在Windows系统托盘中的应用。这个集成了应用程序A中提取信息,并发送至应用C.

应用C:这是我们的API,它的应用程序B调用中发送数据。

目前用户需要创建使用GUI在应用程序C的帐户,在应用程序B输入用户细节进行。但是用户质疑这个过程,因为他们没有区分应用程序A和B之间的所有权,因为它们紧密耦合。

鉴于我们可以相信,如果用户在应用程序已登录,他们是真正的,我要拿出一个解决方案,你不需要再创建一个登录。这将基于应用程序B和C之间的信任以及检测用户是否登录到应用程序A的能力。

最终结果将是,如果用户登录到应用程序A,则应用程序B检测到并将用户详细信息发送给应用程序C.鉴于B之间存在信任关系,C用户将不需要为B和C之间的身份验证做任何事情。但是C将使用登录到A的用户进行授权。

任何想法,我可以做到这一点?基于令牌或信任的应用程序认证的线条......

回答

0

这完全取决于该应用程序的公开接口。如果应用程序A具有可以查询身份验证状态的API,则可以使用该API来实现您的身份验证模式。

如果应用程序A支持先进的认证机制,如OAuth的,可以绑定到他们以及类似的结果。

如果它没有,你是运气不好。认证状态交换没有这样的通用标准。

+0

应用程序A是一个独立的应用程序,它不使用OAuth类型认证。我更怀疑在应用程序之间建立信任是否是个好主意。应用程序B可以检测到应用程序A已通过验证。虽然应用程序B不能携带验证细节,但它可以信任应用程序A完成了必要的工作。因此B告诉C,A的用户的细节,但是使用一致的静态机制进行认证。想法是,用户不必为B/C创建另一个登录 – user3614386

+0

Wether这是一个有效的想法取决于你有多确信你可以是应用程序A已认证。我的直觉告诉我,你正在创造一些大规模的攻击面,以欺骗应用B来相信应用A的身份验证将比打破实际身份验证机制容易得多。此外,如果您无法检测到任何身份验证详细信息,则无法提取用户ID,从而严重限制了App B和App C可以提供的功能。我的建议是通过联合解决方案将认证与App A的开发人员分开和/或与之联系。 – 0x90

相关问题