【发布时间】:2017-07-11 03:30:06
【问题描述】:
我将 IdentityServer3 添加到现有网站(具体为 NopCommerce)。它有自己的注册和认证系统,但我们还需要提供 OpenID Connect 以便可以集成后端应用程序。对后端的调用需要有当前用户的 id_token 由后端验证以确认身份。
我找到了有关如何使用现有成员数据库为 IdentityServer3 提供用户数据以检查的信息,但是我对如何为每个用户生成 id_token 有点困惑。我想显而易见的答案是用 IdentityServer 替换网站登录,但这会给项目的其余部分带来更多问题。理想情况下,我希望用户正常登录,然后调用 IdentityServer 中的方法来生成 id_token。
这可能吗?我一直在四处寻找,但到目前为止找不到任何东西。我找到的最好的答案是programmatically sign in to identityserver3。我认为它建议向 IdentityServer 发布 HTTP 帖子,但感觉有点 hacky。
我还找到了Implementing OAuth 2.0 and OpenId Connect provider using IdentityServer3 with existing login server and membership provider,但我不得不承认,这是假设我(还)不具备相当多的知识。
【问题讨论】:
-
我试过programmatically sign in to identityserver3的代码,发现这总是返回一个access_token,不幸的是后端必须有id_token。
-
看到这个类:github.com/IdentityServer/IdentityServer3/blob/master/source/… - 如果你可以实例化它,你可能可以用它生成一个 id_token
-
感谢您找到我认为关键部分在“如果我可以实例化它”的类。到目前为止,我已经按照 JohnC 在他的回答中建议的那样实现了一个简单的 IdentityServer,并且正在探索它是否适合我们的要求。
标签: identityserver3