gpt4 book ai didi

c# - 以编程方式删除 Azure 应用程序注册 API 权限

转载 作者:行者123 更新时间:2023-12-03 06:55:55 25 4
gpt4 key购买 nike

我需要以编程方式从应用程序注册中删除 API 权限。我尝试过下面的代码片段来更新应用程序。但它并不是永久删除。它将权限从“配置的权限”移至“为 [租户] 授予的其他权限

配置应用程序 https://snipboard.io/PQTR8k.jpg

其他授予的权限 https://snipboard.io/r38e0y.jpg

我删除了 OBO-Service-Test-v1 -> Access_as_user 权限。然后它移至其他授予的权限

            //Get Application 
var result = await _graphClient.Applications[$"{objectId}"].Request().GetAsync();

//Get all permissions
var permissiontoDelete = result.RequiredResourceAccess;

var requiredResourceAccess = new List<RequiredResourceAccess>();

//Add permissions except the one to delete to list
foreach (var item in permissiontoDelete)
{
if (item.ResourceAppId != proxyClientId)
requiredResourceAccess.Add(new RequiredResourceAccess() { ResourceAppId = item.ResourceAppId, ResourceAccess = item.ResourceAccess });
}
var updateApplication = new Application { RequiredResourceAccess = requiredResourceAccess };

// Update application with all permissions except the one to delete.
await _graphClient.Applications[$"{result.Id}"]
.Request()
.UpdateAsync();

我们如何从应用注册中永久删除 API 权限?

最佳答案

请注意,您的 API 权限已获得管理员同意。

如果您尝试在不撤销管理员同意的情况下删除这些权限,它们将从“配置的权限”变为“其他”授予 Tenant_Name' 的权限如下:

enter image description here

Please note that admin privilege is needed to revoke admin consent.

根据juunas在评论中的建议,您可以从关联的服务主体中删除权限,如下所示:

要删除委派权限

GraphServiceClient graphClient = new GraphServiceClient( authProvider );

await graphClient.Oauth2PermissionGrants["{oAuth2PermissionGrant-id}"]
.Request()
.DeleteAsync();

要删除应用程序权限

GraphServiceClient graphClient = new GraphServiceClient( authProvider );

await graphClient.ServicePrincipals["{servicePrincipal-id}"].AppRoleAssignments["{appRoleAssignment-id}"]
.Request()
.DeleteAsync();

如果未获得管理员同意,您可以直接使用代码删除 API 权限,无需撤销管理员同意。

引用文献:

Delete appRoleAssignment - Microsoft Graph v1.0 | Microsoft Docs

Delete oAuth2PermissionGrant (a delegated permission grant) - Microsoft Graph v1.0 | Microsoft Docs

关于c# - 以编程方式删除 Azure 应用程序注册 API 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72963483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com