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

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

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

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

azure-api-management
2个回答
1
投票

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

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


1
投票

我确定可以采用不同的方法来实现此目的,但我相信通常的方法是使用Application Roles

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

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


推荐问答