Azure APIM数据级别身份验证-人们如何做到这一点?

时间:2020-03-23 10:24:01

标签: azure-api-management

方案:外部公开的API,连接到多个支持的Db。多个客户可以使用该API,显然他们只能访问其数据。过去,这是通过为每个客户/用户使用单独的帐户完成的,因此,每个帐户都需要在每个后端系统中使用正确的权限进行设置。

问题:我想使用Azure APIM。我不希望Azure APIM和后端Db中的每个用户都得到额外的维护。我想知道是否有人有其他想法或案例以其他方式实现了这一目标。同样,可以通过对一个表具有全部访问权限的一个帐户访问来构建API。

2 个答案:

答案 0 :(得分:1)

要使用API​​,用户/客户必须在Developer Portal上注册并获得给定API的订阅关联密钥。因此,您必须对其进行身份验证。当您通过Azure API管理发布API时,使用订阅密钥来保护对这些API的访问很容易且普遍。需要使用已发布API的客户端应用程序在调用这些API时必须在HTTP请求中包含有效的订阅密钥https://docs.microsoft.com/en-us/azure/api-management/api-management-subscriptions

Developer Portal支持不同的身份验证机制,包括Azure AD。因此,如果您打算将Azure AD用于两个门户的身份验证,则需要相应地对其进行配置。 https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-aad

答案 1 :(得分:1)

我敢肯定有多种方法可以解决此问题,但我相信通常的方法是使用Application Roles

我不认为这真的取决于Azure APIM,但是您可以利用OAuth 2.0 supportpre-authorize requests以及后端,根据传递的令牌中的声明,您可以允许/拒绝访问数据。

您的后端通常会通过对所有数据的完全访问权限来对不同的DB进行身份验证,而您的后端将承担确保只有具有正确声明的人才能访问数据的任务。

相关问题