python - 如何根据服务主体 ID 限制对 azure 函数的访问
问题描述
我有一个启用了 Azure Active Directory 身份验证的 azure 函数实现了一个 rest api。我想限制对一组特定服务主体的公开方法子集的访问。
到目前为止,我想出的解决方案是检索请求使用的 access_token 并手动根据列表检查应用程序 ID。这将在方法的主体中完成。
我正在寻找一种解决方案,可以在调用该函数之前在 azure 授权层中处理此问题。可能吗 ?
解决方案
正如另一个回复中提到的,目前没有这样的事情。如果你想限制一组服务主体对函数应用的访问,我的解决方法是为app role
与你的函数应用相关的 AD App 声明一个,如下面的示例。
"appId": "8763f1c4-f988-489c-a51e-158e9ef97d6a",
"appRoles": [
{
"allowedMemberTypes": [
"Application"
],
"displayName": "ConsumerApps",
"id": "47fbb575-859a-4941-89c9-0f7a6c30beac",
"isEnabled": true,
"description": "Consumer apps have access to the consumer data.",
"value": "Consumer"
}
],
"availableToOtherTenants": false,
之后,在门户的 Azure Active Directory 中导航到您的函数的 AD 应用程序 -> 单击Managed application in local directory
-> Properties
->set the User assignment required
到Yes
.
那么任何用于获取函数应用token的服务主体都需要你声明的应用权限,否则将无法获取token。我在这里写了详细信息,你可以参考一下。
推荐阅读
- javascript - 如何为电子中的文件制作自定义网址
- mysql - 如何在节点js中获取带有图像的ckeditor4的内容
- javascript - 获取没有兄弟元素的集合分支,按属性搜索
- javascript - 如何在 webpack 中的 bundle 之间摇树依赖关系?
- sockets - 读取内容或获取 ssl_write() 写入的缓冲区大小
- crystal-reports - Crystal Reports ODBC 在 CMC 中不起作用
- tailwind-css - Tailwind - 链接在悬停时没有默认光标指针
- wordpress - 编辑优雅杂志主题的页脚
- liferay-7 - DDM 表单 portlet 声纳问题
- android - 在 gradle 依赖中使用修改后的 Exoplayer