Azure API Management 和 OAuth2 - 对多个 API 使用单个 AD AppReg,还是对每个 API 使用单个 AD AppReg?



我目前正在设置 API 管理的单个实例。我有一个项目,它将包含 x4 API,这些 API 都是 OAuth2 身份验证所必需的。(我有一个 AD 租户(。

我一直在遵循这个(相当令人困惑的(指南,使用 OAuth2 设置 API 管理......

https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-protect-backend-with-aad

。它指定你为...

1( API(单个 API?

2( 访问 API 的客户端

我的问题是...我知道我可能只需要 1 个客户端应用注册,但我是否需要为每个 API 进行 x4 个应用注册,或者我可以只使用单个 API 并让所有 4 个 API 使用该 API 吗?

我已经对此进行了测试,它似乎工作正常,我只是想知道我是否在这里错过了一个技巧,并且可能会在以后将自己画到角落里。

我在这里追求一些关于什么是正确做法的最佳实践。拥有可以照顾 x4(或更多(API 的单个应用注册的管理较少,但这会导致以后出现问题吗?

提前致谢

虽然从技术上讲,不需要为每个 webapi 或每个应用注册 1 个应用。 但它被认为是安全性和 API 分离以及访问此类 API 的最佳做法,也使审核和监视变得更加容易。

但是,如果您只想让 1 个应用注册处理所有 4 个 API,那么从技术上讲,没有什么可以阻止您。 甚至客户也是如此。

例如,您将更难控制每个 API 的访问,例如,如果您希望用户 A 能够访问 API A 而不是 B。 此外,在安全方面,如果只有 1 个应用注册,所有其他 API 将能够访问彼此的终结点。

可管理性也开始发挥作用。 例如,如果你想为应用注册中的某个应用提供一些特定的东西,则范围/角色/等组合它们会使这样做变得更加困难。

最重要的是,在 90-95% 的情况下为每个 Web API 创建一个,这是最佳实践,并且可能会在以后为您省去麻烦。

希望能给你一点见识

最新更新