将 API 与 Azure AD 结合使用
Microsoft Entra ID 身份验证是建议的身份验证方案。 与其他方法不同,它具有以下唯一属性:
它允许代表正在使用连接的用户进行身份验证,这意味着用户无法访问无权限的资源。 目标服务负责强制执行允许已通过身份验证的用户操作。
目标服务了解正在执行连接的用户的身份,从而允许通过使用 Azure AD 信息进行更多检查,而无需显式询问用户的更多详细信息。
它支持托管标识,其中对基础资源的受控访问使得开发人员和用户无需管理凭据。
Azure AD 安全自定义连接器的内部功能与通用安全连接器相似。
主要区别在于,自定义连接器和目标应用服务注册为内部 Azure AD 的应用。 本因素允许制作者应用适当的权限,然后将调用用户的身份从 Power Apps、Power Automate 流或逻辑应用工作流中的应用传递到基础服务。
该服务可以是 Azure AD 中注册的现有服务(如 Microsoft Graph API),也可以是使用 Azure Functions 或 Microsoft Azure 应用服务等实现的自定义服务。 服务的重要特征是,通过使用调用方的 Azure AD 标识,帮助保护和授权对受保护资源的访问。
启用 Azure AD 身份验证
如果组织已使用 Azure Functions 或 Azure App Service 实现服务,则添加 Azure AD 身份验证是简单配置操作。
选择身份验证/授权边栏选项卡。
启用应用服务身份验证。
对未经授权的访问设置默认操作。
在 Microsoft Entra ID 中配置并注册应用。
启用 Azure AD 身份验证会使调用方标识信息对现在可以使用本信息的基础服务可用。
配置连接器
调用方只能通过自定义连接器访问基础服务。 要允许连接器通过调用方标识,需要在 Azure AD 中注册为单独的应用。 此外,需要向 API 服务授予代理权限,以便其能够代表调用方执行操作。
由于自定义连接器将代表用户访问 API,因此需要征得同意。 通常,当自定义连接器创建连接时,会提示用户同意。 某些权限可能需要管理员同意,管理员可以为组织中的所有用户授予这些权限。
在自定义连接器注册 Azure AD 后,可以使用自定义连接器向导对其进行配置。
选择 OAuth 2.0 作为身份验证类型,然后将标识提供者设置为 Microsoft Entra ID。 需要以下参数:
客户端 ID - 将标识连接器的 Azure AD 应用的 ID。
密钥 - 在 Azure AD 应用注册期间创建的密钥。
资源 URL - 服务的资源标识符。
保存配置后,重定向 URL 将作为有效的回拨添加到应用注册。
该配置存储在 apiProperties.json 文件中,开发人员还可以使用 paconn 命令行工具根据需要更新配置。 例如,密钥不是由创建者定义的,而是可以作为企业部署的一部分自动管理和轮换。
使用 Microsoft Entra ID 配置连接器的步骤
请按照以下步骤使用 Azure AD 设置和配置连接器:
注册两个 Azure AD 应用:
一个用于标识和保护 API 服务
一个用于标识和保护连接器
代理权限。 允许连接器的注册应用对服务的标识进行“代表”调用。
通过提供客户端 ID、密钥和资源 URL 信息来定义连接器。
将重定向 URL 添加到连接器应用注册。
如果使用跨源资源共享 (CORS) 方案设置服务,则允许在服务中列出 CORS 的 Azure API 管理域(通常为 azure-apim.net)。
设置 Azure AD 身份验证涉及在 Azure AD 中注册应用和标识的更多步骤,但这具有更多好处,使其成为保护自定义连接器的首选方案。