我们开发了一个需要与其他第三方Web应用程序集成的Web应用程序。 我们称之为MainApp和ThirdPartyApp。 我们公司与拥有公司的第三方应用程序之间存在信任,这意味着我们彼此了解并相互信任。这两个应用程序将由同一客户端管理。 两个应用程序都有自己的用户数据库和登录机制。 这两个应用程序都托管在不同的服务器上。
我们需要两个应用程序能够互相呼叫(网页和其他API)。 两个应用程序之间的所有通信必须是无缝的,无需用户进行交互。 因此,一旦用户登录到一个应用程序,它就不应该提示另一个登录来访问另一个应用程序。 当向另一个应用程序发出请求时,它应该能够映射到其自己的数据库中的用户。 因此,请求不是代表调用应用程序,而是代表当前登录到调用应用程序的用户。 如果它可以提供帮助,我们同意在两个应用程序中使用相同的UserCode。
我的问题是,在两个应用程序之间实现这种信任的最佳做法是什么? 是否存在适合此方案的OAuth授权流程?
答案 0 :(得分:0)
您可以在线找到单点登录方法的示例;一个这样的例子: https://www.codeproject.com/Articles/1140228/Implementation-of-Single-Sign-On-SSO-in-ASP-NET-MV
在这种方法中,通过在两个应用程序中使用通用配置,您可以实现所需的目标。其中一个要求是在配置中使用相同的机器密钥(示例来自文章):
<machineKey validationKey="E4451576F51E0562D91A1748DF7AB3027FEF3C2CCAC46D756C833E1AF20C7BAEFFACF97C7081ADA4648918E0B56BF27D1699A6EB2D9B6967A562CAD14767F163"
decryptionKey="6159C46C9E288028ED26F5A65CED7317A83CB3485DE8C592"
validation="HMACSHA256" decryption="AES" />
显然,不用说表格认证是必需的。如果用户位于同一个域中,您可以使用Windows / Forms Active Directory吗?