将 Azure AD 令牌与身份服务器令牌交换

Exchanging azure AD token with Identity server token

我有一个由移动应用程序(flutter)、api 1 和 api 2 组成的架构。api 2 由身份服务器 4 保护。我的场景是移动的应用程序需要通过 azure 广告目录对用户进行身份验证。在移动应用程序中获得 azure 广告令牌后,我不知道如何将其与当前用于保护我的 api 2 的身份服务器 4 令牌进行交换。我当前的解决方法实施是通过使用 flutter appauth 打开来完成的Identity Server 4 登录屏幕会将用户重定向到 Azure 广告登录。用户登录后,身份服务器 4 将 return 可用于访问 api 2 我的移动应用程序的访问令牌。通常,我的移动应用程序会在请求期间将令牌传递给 api 1,将 api 1 传递给 api 2。只是想知道这个架构有什么问题吗?因为最近我从 link http://docs.identityserver.io/en/latest/topics/extension_grants.html 遇到了身份服务器 4 中的扩展授权。从技术上讲,我应该通过 flutter appauth 获取 azure 广告令牌并将其传递给 api 1 然后 api 1 将其与 api 2 交换以获得扩展授权中显示的访问令牌上面的文档。我可以知道我应该更改我当前现有的解决方法架构吗?

您应该让您的移动应用程序以及 API 和 Web 应用程序都使用 IdentityServer。然后通过IdentityServer登录AzureAD。

像这张图试图展示: