我正在寻找有关如何正确整合这样的环境的建议。快速入门中包含大量信息和内容,但是经过3天的反复试验,我仍然感到相当失落。我很熟悉.NET Framework中的Identity Framework,但在此之前从未与Identity Server合作过。
我们有一个基于Node和MySql的微服务设置… Docker容器中的一系列服务,这些服务与MySql集群中自己的db节点通信。我们有一个内置在React&Redux中的管理UI,它将在AWS存储桶中运行。
我的任务是使用Identity Server验证此React前端。我们不会使用它对API进行身份验证。我建议使用Identity Framework在.NET Core中构建身份验证UI,因为它为我们提供了“现成的”所需的一切。
最终,这两个Identity应用程序将成为我们针对这些API编写的所有应用程序的SSO,甚至不是这些API。此外,我将需要在某个时候合并AD,以允许公司内部用户无需手动进行身份验证即可通过。
我需要的是以下内容:
到目前为止,我已经完成了以下两个教程:
http://docs.identityserver.io/zh- CN/release/quickstarts/6_aspnet_identity.html#new-project-for-asp-net- identity
http://docs.identityserver.io/en/dev/quickstarts/7_javascript_client.html
我的结果是,正在运行的Identity Server和Identity Core MVC应用程序在同一个项目(两个不同的端口)中一起运行。在执行JS客户端教程之后,我正在运行其示例代码- 它将我重定向到MVC登录名,从而对Identity进行身份验证服务器,然后返回以下结果:
{ "sid": "8e60eb65960d967834cb3eb4fdcbbd49", "sub": "dfc90bd1-cad4-45d0-84bd-174e8a6ca891", "auth_time": 1516296631, "idp": "local", "amr": [ "pwd" ], "preferred_username": "[email protected]", "name": "[email protected]" }
单击注销失败,但这是因为第一个教程中的控制器示例未包含用于注销的GET,就像JavaScriptClient示例中埋藏的示例控制器一样。
感觉好像要到某个地方,但与此同时,我现在完全意识到自己所知不多。可以使用建议,甚至只是指向正确的快速入门的指针来实现我想要的。
基本设置 根据我的理想阅读情况,您想要将其分解为3个部分
对于身份管理组件,请使用此快速入门作为示例ASPNetIdentity + IS4 EF或不带EF组件的示例。
您的API应该仅对ID4服务器上发生的所有身份验证和注册进行授权(而非身份验证)。
您的前端(MVVM或MVC客户端)应按照教程中的所有步骤向ID4服务器注册:
这将使您拥有一个受保护的API,单个IdentityManagement源(基本上在其上构建为真正的SSO /联合网关),同时又可以分隔应用程序的前端。
希望这可以帮助。
附加信息:
除了答案,还有一些可以用于OIDC客户端的库(或自己构建)以进行响应,您可以将它们放入前端,以帮助您更快地获得一些结果。
仅供参考,我将angular + id4与AspCoreIdentity + AspCore API一起使用。我需要做的就是创建javascript客户端和ID4之间的链接(根据本教程以及ID4和Web API。我们使用了针对oidc- connect的行业库,以角度插入ID4服务器和Web API的设置。
这样做的好处是,一旦您在ID4上进行了基本设置,就不需要在其上构建更多高级功能了。
请记住,这些是独立的组件,因此应将它们完全一样。帮助我解决了困惑和知识不足。
Windows和AD登录(未来状态):
将这些组件分隔开,将使您能够轻松快捷地将AD集成到ID4服务器中,而无需修改API或Frontend应用程序。在此处利用Windows登录的示例。