用身份服务器令牌交换天蓝色 AD 令牌

问题描述 投票:0回答:2

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

flutter authentication azure-active-directory identityserver4
2个回答
1
投票

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

就像这张图片试图展示的那样:

enter image description here


0
投票

我使用的是Duende Server 6,以前的版本可能有类似的概念。

实现了 IExtensionGrantValidator 用于交换令牌,传递 Azure AD 访问令牌,验证并返回我们的令牌。

添加了来自 microsoft 的签名密钥,用于验证 MS Access 令牌

© www.soinside.com 2019 - 2024. All rights reserved.