C# Azure功能应用程序-用于登录用户';s读取/更新Azure资源的凭据

C# Azure功能应用程序-用于登录用户';s读取/更新Azure资源的凭据,c#,azure,azure-function-app,C#,Azure,Azure Function App,我有一个Azure功能应用程序,可以更新Azure资源的标签。目前,我有一个应用程序注册,它对我的订阅具有参与者级别的访问权限,这些凭据是应用程序在读取和更新资源(我正在使用)时使用的功能 我还为我的功能应用程序设置了AAD身份验证: 在读取/更新Azure资源而不是我的应用程序注册时,是否可以使用登录的AAD用户的凭据?这样,我认为如果有人向函数应用程序发送更新标记的请求,但没有对订阅的正确权限,则该请求将失败 我想如果有人向函数应用程序发送请求 更新标记,但没有对 订阅时,请求将失败 你完

我有一个Azure功能应用程序,可以更新Azure资源的标签。目前,我有一个应用程序注册,它对我的订阅具有参与者级别的访问权限,这些凭据是应用程序在读取和更新资源(我正在使用)时使用的功能

我还为我的功能应用程序设置了AAD身份验证:

在读取/更新Azure资源而不是我的应用程序注册时,是否可以使用登录的AAD用户的凭据?这样,我认为如果有人向函数应用程序发送更新标记的请求,但没有对订阅的正确权限,则该请求将失败

我想如果有人向函数应用程序发送请求 更新标记,但没有对 订阅时,请求将失败

你完全正确。如果用户没有订阅的rignt权限,则用户将无法更新标记。AAD用户将只能访问您的功能,但无权更新Azure资源

我想如果有人向函数应用程序发送请求 更新标记,但没有对 订阅时,请求将失败


你完全正确。如果用户没有订阅的rignt权限,则用户将无法更新标记。AAD用户将只能访问您的功能,但无权更新Azure资源。

这与我当前看到的行为不匹配。如果我通过AAD作为一个用户进行身份验证,该用户本应仅具有订阅的读取级别权限,他们仍然能够通过功能应用程序更新资源标记。@Michelle您订阅的权限名称是什么?对不起,您能否澄清“权限名称”是什么意思?“我不熟悉这个术语。@Michelle很抱歉,我指的是你订阅的角色不用担心。“我的函数”应用程序当前用于读取和更新资源的应用程序注册已设置为“我的订阅”的“参与者”角色。因此,只要访问我的函数应用程序的用户还具有参与者级别的访问权限,函数应用程序的行为就可以了-但是如果用户对我的订阅只有读取级别的权限,那么我不希望允许更新通过。如果这还不清楚,请告诉我。这与我当前看到的行为不匹配。如果我通过AAD作为一个用户进行身份验证,该用户本应仅具有订阅的读取级别权限,他们仍然能够通过功能应用程序更新资源标记。@Michelle您订阅的权限名称是什么?对不起,您能否澄清“权限名称”是什么意思?“我不熟悉这个术语。@Michelle很抱歉,我指的是你订阅的角色不用担心。“我的函数”应用程序当前用于读取和更新资源的应用程序注册已设置为“我的订阅”的“参与者”角色。因此,只要访问我的函数应用程序的用户还具有参与者级别的访问权限,函数应用程序的行为就可以了-但是如果用户对我的订阅只有读取级别的权限,那么我不希望允许更新通过。如果这还不能解决问题,请告诉我。
var credentials = SdkContext.AzureCredentialsFactory
                            .FromServicePrincipal(/* app client ID */,
                                                  /* app client secret */,
                                                  /* tenant ID */,
                                                  AzureEnvironment.AzureGlobalCloud);
var resourceClient = new Microsoft.Azure.Management.ResourceManager.ResourceManagementClient(credentials);