Azure API 管理和 OAuth2 - 对多个 API 使用单个 AD AppReg,还是对每个 API 使用单个 AD AppReg?
Azure API Management and OAuth2 - use a single AD AppReg for multiple API's, or a single AD AppReg for each API?
我目前正在设置 API 管理的单个实例。我有一个项目将由 x4 API 组成,这些都是 OAuth2 身份验证所必需的。(我有一个 AD 租户)。
我一直在遵循这个(相当令人困惑的)指南来获取 API 使用 OAuth2 设置管理...
https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-protect-backend-with-aad
...它指定您为...创建 Azure Active Directory 应用注册...
1) API(单API?)
2) 访问 API
的客户端
我的问题是......我知道我可能只需要 1 个客户端应用程序注册,但我是否需要每个 API 的 x4 个应用程序注册,或者我可以只使用一个并拥有所有 4 个 API的用那个单?
我已经对此进行了测试并且它似乎工作正常,我只是想知道我是否在这里遗漏了一个技巧并且可能会在以后把自己画到一个角落里。
我正在寻找一些关于正确做法的最佳实践。拥有一个可以管理 x4(或更多)API 的应用程序注册会减少管理,但这会在以后引起问题吗?
提前致谢
虽然从技术上讲您不需要为每个网站api 或每个应用程序注册 1 个应用程序。但它被认为是 api 的安全和分离以及对此类 api 的访问的最佳实践,也使审计和监控变得更容易。
但是,如果您只想通过 1 个应用注册来处理所有 4 个 api,那么技术上没有什么可以阻止您。甚至是客户。
例如,您将更难控制每个 API 的访问权限,例如,如果您希望用户 A 能够访问 api A 但不能访问 B,那就更难了。此外,安全方面,如果您只有 1 个应用程序注册,所有其他 apis 将能够访问彼此的端点。
可管理性也发挥了作用。例如,如果您想在应用程序注册中为其中一个应用程序做一些特定的事情,scopes/roles/etc。将它们结合起来会使这样做变得更加困难。
最重要的是,在 90-95% 的情况下,为每个网站创建一个 api,这是最佳做法,并且可能会在以后为您省去麻烦。
希望能给你一点见识
我目前正在设置 API 管理的单个实例。我有一个项目将由 x4 API 组成,这些都是 OAuth2 身份验证所必需的。(我有一个 AD 租户)。
我一直在遵循这个(相当令人困惑的)指南来获取 API 使用 OAuth2 设置管理...
https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-protect-backend-with-aad
...它指定您为...创建 Azure Active Directory 应用注册...
1) API(单API?)
2) 访问 API
的客户端我的问题是......我知道我可能只需要 1 个客户端应用程序注册,但我是否需要每个 API 的 x4 个应用程序注册,或者我可以只使用一个并拥有所有 4 个 API的用那个单?
我已经对此进行了测试并且它似乎工作正常,我只是想知道我是否在这里遗漏了一个技巧并且可能会在以后把自己画到一个角落里。
我正在寻找一些关于正确做法的最佳实践。拥有一个可以管理 x4(或更多)API 的应用程序注册会减少管理,但这会在以后引起问题吗?
提前致谢
虽然从技术上讲您不需要为每个网站api 或每个应用程序注册 1 个应用程序。但它被认为是 api 的安全和分离以及对此类 api 的访问的最佳实践,也使审计和监控变得更容易。
但是,如果您只想通过 1 个应用注册来处理所有 4 个 api,那么技术上没有什么可以阻止您。甚至是客户。
例如,您将更难控制每个 API 的访问权限,例如,如果您希望用户 A 能够访问 api A 但不能访问 B,那就更难了。此外,安全方面,如果您只有 1 个应用程序注册,所有其他 apis 将能够访问彼此的端点。
可管理性也发挥了作用。例如,如果您想在应用程序注册中为其中一个应用程序做一些特定的事情,scopes/roles/etc。将它们结合起来会使这样做变得更加困难。
最重要的是,在 90-95% 的情况下,为每个网站创建一个 api,这是最佳做法,并且可能会在以后为您省去麻烦。
希望能给你一点见识