如何将访问令牌从OpenIDConnect MVC应用传递到另一个MVC应用?

我有两个Web应用程序,第一个是OpenIDConnect应用程序(从此链接下载-https://github.com/Azure-Samples/ms-identity-aspnet-webapp-openidconnect),另一个是基于MVC的组织应用程序。由于两个应用程序在设计上的差异,我无法合并它们。因此,我试图使用Open ID应用程序获取访问令牌并将其传递给我的组织应用程序,以便我可以使用SharePoint Online中的Graph API执行诸如签入/签出之类的操作。由于所有帐户均启用了MFA,因此我只能通过Open ID。

我尝试了多种方法来使Open ID正常工作,但是很遗憾,我们没有成功。我将尝试解释场景,我已经尝试过-

  1. 我首先使用Github上提供的链接创建了一个Web应用程序。它确实在开发机上工作,并且我能够获取令牌并使用Graph API执行签入/签出。它确实按预期工作,并且可以在SharePoint Online的“签出者”下看到“ 当前登录的用户”名称。
  2. 第二步是将其部署在IIS服务器上,然后尝试执行类似的操作,这同样成功。
  3. 在第三步中,我尝试将Open ID Web App与我们现有的MVC Web App合并。这两个应用程序都在技术上使用.NET Framework,这是可行的,但是,当我们运行合并的应用程序时遇到了障碍。由于我的组织Web App使用 Windows身份验证,而Open ID App使用基于Cookie的身份验证(作为参考,下面是 OpenIDConnect 启动中的一行代码) .cs类- app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType)。我们尝试将Open ID应用程序的身份验证类型更改为Windows,但是由于无法引入帐户,因此Open ID解决方案无法正常工作信息。不幸的是,我们目前无法为我们的应用程序更改身份验证方案,因为它将具有巨大的执行力。
  4. 在第四次尝试中,我们将Open ID Web应用程序作为Web应用程序(例如 OpenIdApp )部署到IIS服务器上,该服务器与组织组织Web应用程序(例如 MyApp )。在Azure AD中,我们将Azure App的重定向URI设置为 MyApp 。所以下面是我们正在使用的流程。

Please see image attached for the flow

  1. 当我们重定向到 MyApp 时,我们无法检索令牌。只有将 OpenID 应用程序重定向到同一应用程序(即,重定向到 OpenID )时,我们才会获得令牌。要说明更多,假设我在本地开发人员中运行Open ID App并进行调试在https://localhost:44321/上,我必须在Azure AD中将重定向URI称为https://localhost:44321/,以使令牌可用于进一步的操作,例如调用Graph API。
  2. 我们还使用C#创建了一个WebRequest,WebClient和其他对象,并尝试获取令牌,但这没有用。我们尝试从Leo App调用OpenID App的控制器方法,但由于在https://login.microsoftonline.com
  3. 上设置了CORS策略,该方法被阻止了
  4. 我们尝试使用window.open方法和其他JQuery弹出窗口打开Open ID App,以便我们可以将令牌返回给Leo App。但是,我们没有成功。
  5. 除了Open ID解决方案之外,我们还尝试了PnP AuthManager类来进行签入/签出。它可以在本地计算机上运行,​​但在托管后无法运行。

如果有人能帮助我实现这一目标,我将不胜感激,因为它已经存在很长时间了,并且我无法为此找到可行的解决方案。

谢谢。

lenon366 回答:如何将访问令牌从OpenIDConnect MVC应用传递到另一个MVC应用?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3081351.html

大家都在问