如何通过 MSAL 删除 Azure AD B2C 应用程序的 API 权限

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

我可以通过以下方式授予 API 权限:

OAuth2PermissionGrant ret = graphClient.oauth2PermissionGrants()
    .buildRequest()
    .post(oAuth2PermissionGrant);

AppRoleAssignment ret = graphClient.servicePrincipals(principalId)
    .appRoleAssignments()
    .buildRequest()
    .post(appRoleAssignment);

但是我怎样才能撤销许可呢?我正在使用 Java,如果这很重要的话。

azure-active-directory microsoft-graph-api azure-ad-b2c azure-ad-msal
1个回答
0
投票

删除委派的权限授予后,可以撤销已授予的访问权限。已在使用的访问令牌将在其生命周期内继续有效,但新的访问令牌将不会被授予权限。即;不会生成新的访问令牌..

GraphServiceClient graphClient = GraphServiceClient.builder()
                                 .authenticationProvider( authProvider )
                                   .buildClient();

graphClient.oauth2PermissionGrants("l5eW7x0ga0-WDOntXzHateQDNpSH5-lPk9HjD3Sarjk")
    .buildRequest()
    .delete();

请检查删除oAuth2PermissionGrant(委派权限授予)- Microsoft Graph v1.0 | Microsoft Docs 了解详细信息。

同样可以使用以下代码删除应用程序角色:

graphClient.users("{id}").appRoleAssignments("{id}")
    .buildRequest()
    .delete();

请检查删除appRoleAssignment - Microsoft Graph v1.0 |微软文档

但是

it is recommended
使用 Delete appRoleAssignedTo 方法删除应用程序角色分配。

graphClient.servicePrincipals("{resource-SP-id}").appRoleAssignedTo("{appRoleAssignment-id}")
    .buildRequest()
    .delete();

参考资料: 创建 oAuth2PermissionGrant(委派权限授予)- Microsoft Graph v1.0 |微软文档

© www.soinside.com 2019 - 2024. All rights reserved.