首页 > 解决方案 > 无需登录的身份服务器

问题描述

我试图实现 IdentityServer 授权,我的场景如下:

我们的所有应用程序“www.vision2025.com”都有一个主页,并且我有指向我的 mvc 应用程序“MarketingDashboard”的链接,用户通过主页进行身份验证并使用 Windows 身份验证重定向到我的 mvc 应用程序。现在用户可以在我的仪表板中执行与 Web API 交互的任何操作。

现在我需要实现 IdentityServer 来授权来自我的仪表板的所有 Web API 调用,但不需要登录。

请提出任何想法

提前致谢

标签: asp.net-mvcasp.net-coreauthorizationidentityserver4asp.net-authorization

解决方案


我认为您不想构建IdentityServer,因为您的企业公司已经构建了 ADFS(Active Directory 联合服务)。你只想问谁维护 AD 并要求他为 OAuth2 启用 ADFS。这是一个帮助您捕捉所有场景的页面

因为我不知道您可以为所有应用程序更改多远,但是您可以使用一些 ADFS 解决方案:

  1. 让您的主服务器(充当主页和用户重定向到 ADFS 登录的地方)执行代表流程。在这种情况下,您的主服务器将是一个链接服务器,用于传输access token从 ADFS 检索到的内容。我强烈推荐这种方式,因为您只想添加与即将推出的新 Web 和 API 一样多的内容。缺点是它们要求您确保access token在主服务器中高度保护
  2. 因为OAuth 2.0还不支持链接资源服务器(比如你登录了资源服务器A,然后provided access_token在不同的客户端调用资源服务器B),你需要让你的主服务器存储他的用户名/密码(也称为可信后端server,表示您的企业允许此服务器可以存储客户端凭据)。因此,每次将用户重定向到目标 MVC 应用程序时,您也应该传输加密的用户名/密码。然后您的目标 MVC 应用程序可以 在后端代码中执行授权流隐式流access token本身,然后返回新的客户端 web 以执行调用 Web API。

推荐阅读