我正在寻找有关如何将这样的环境正确组合在一起的建议。快速入门中包含大量信息和大量材料,但经过 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,因为它为我们提供了“开箱即用”所需的一切。
最终,这两个身份应用程序将成为我们针对这些 API 编写的所有应用程序的 SSO,甚至那些不是的应用程序。此外,我需要在某个时候加入 AD,以允许公司内部用户通过而无需手动进行身份验证。
(我认为)我们需要的是以下内容:
- Identity Server 4 在自己的容器中运行
- 在自己的容器中运行的 Core Identity MVC 应用程序
- 前端使用oidc-client进行认证
到目前为止,我所做的是遵循以下两个教程:
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": "me@gmail.com",
"name": "me@gmail.com"
}
单击注销失败,但这是因为第一个教程中的控制器示例不包含用于注销的 GET,就像 JavaScriptClient 示例中隐藏的示例控制器一样。
感觉就像我到达了某个地方,但与此同时,我现在完全意识到我知道的很少。可以使用建议,甚至只是指向正确快速入门的指针来实现我正在寻找的东西。