0

我试图将IdentityServer3实现到我的架构组合中。我喜欢注册客户端,用户和范围的想法。我不喜欢使用IdentityServer3的内置登录和注册表单。如何关闭IdentityServer3的内置UI视图(登录和注册)?

我有4个不同的应用程序需要使用我的IdentityServer3实现(又名TokenServer)。这4个应用程序是AngularJs应用程序。我有各种C#.Net WebAPI服务为这4个应用程序提供数据。目前,这4款应用都有自己的认证和注册流程。我需要使用IdentityServer3来整合身份验证。

这4个应用程序中的每一个都有不同的帐户注册/验证需求。有第三方身份验证(Facebook,Google)以及用户注册帐户的传统表单身份验证。

因此,我不能让我的任何AngularJs应用程序使用IdentityServer3附带的默认登录/注册表单。我花了很多时间试图找到一种方法来关闭默认视图,并将每个AngularJs应用程序连接到我的TokenServer。我只是想将登录凭证POST到/ token端点并返回一个令牌,可以在随后调用WebAPI时使用该令牌。我想用IdentityServer3替换每个应用程序的身份验证过程,而无需更改现有的登录/注册UI。

我找不到示例应用程序,甚至不能显示如何执行此操作的文档。是否有可能关闭每一个IdentityServer3的UI视图并使用我的AngularJs客户端的登录和注册表单?

请指点我正确的方向。谢谢你的时间。

回答

1

您似乎想要使用OAuth 2.0资源所有者流 - 这意味着 - 您的应用程序将凭据发布到令牌端点并获取访问令牌。这是完全可能的 - 你会错过一些功能,如联邦和SSO。但是这些是这个流程的已知限制。

如果您想要使用基于重定向的流程(为您提供SSO和Google登录等) - 您需要重定向。您可以用自己的身份替换任何IdentityServer视图。文件和样品有大量的信息如何做到这一点。

https://identityserver.github.io/Documentation/docsv2/advanced/customizingViews.html

https://github.com/IdentityServer/IdentityServer3.Samples/tree/master/source/CustomViewService

+0

感谢您的答复。我一定会研究这些资源。你知道自定义视图是通过弹出框还是iframe提供的吗?我希望我可以在不使用iframe或弹出窗口的情况下简单地将它们加载到我的HTML流程中。 –

+0

我正在查看您的CustomeViewService。看起来这些视图是在服务器上生成的。我的范例是服务器的东西应该是REST。登录,注销,注册都是UI活动,并且应该在您的前端代码中处理(在我的情况下为AngularJs)。在我看来,有一个后端服务器服务UI内容会让水混浊。无论如何要实现SSO,Google和Facebook登录等,而不依赖IdentityServer来提供UI位? –

+0

编号同样适用于Google及其用户。 – leastprivilege