Azure AD - 权限不足,无法执行应用程序“00000003-0000-0000-c000-000000000000”请求的操作
Azure AD - Insufficient privileges to perform requested operation by the application '00000003-0000-0000-c000-000000000000'
我正在执行一项任务,应该邀请用户并将他们添加到我的 Azure 活动目录列表中。在能够访问我的应用程序之前,受邀用户应通过电子邮件进行验证。这是我使用的代码:
IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
.Create(_config["AzureAd:ClientId"])
.WithTenantId(_config["AzureAd:TenantId"])
.WithClientSecret(_config["AzureAd:ClientSecret"])
.Build();
ClientCredentialProvider authProvider = new ClientCredentialProvider(confidentialClientApplication);
GraphServiceClient graphClient = new GraphServiceClient(authProvider);
var invitation = new Invitation
{
InvitedUserEmailAddress = "mail@hotmail.com",
InviteRedirectUrl = "https://url.com/",
SendInvitationMessage = true
await graphClient.Invitations
.Request()
.AddAsync(invitation);
我在互联网上的某个地方找到了这个片段,从评论来看,它似乎有效。但是,当我 运行 我的应用程序并调用此功能时,我收到一条错误消息
Code: Unauthorized Message: Insufficient privileges to perform requested operation by the application '00000003-0000-0000-c000-000000000000'. ControllerName=MSGraphInviteAPI, ActionName=CreateInvite, URL absolute path=/...
在API权限中,我在Microsoft Graph下有一个User.Invite.All
权限。除此之外,我还有 User.Read
但我认为目前与此无关。你们中的一些人是否偶然发现了这样的错误并设法成功解决了它?如果是这样,您能否分享解决方案?
您正在使用 client_credentials
流。这意味着执行此任务的不是用户,而是服务凭证。您需要提供 Application permissions
,而不是您设置的内容 - Delegated Permissions
.
如果您没有看到 Application Permissions
,那是因为您创建了 Azure AD B2C 应用程序注册。相反,使用第一个选项 Accounts in this organizational directory only (Contoso only - Single tenant)
.
创建 App Reg
这些是您需要的文档:
这是当今 AAD 和 AAD B2C 租户的正确方法。
我正在执行一项任务,应该邀请用户并将他们添加到我的 Azure 活动目录列表中。在能够访问我的应用程序之前,受邀用户应通过电子邮件进行验证。这是我使用的代码:
IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
.Create(_config["AzureAd:ClientId"])
.WithTenantId(_config["AzureAd:TenantId"])
.WithClientSecret(_config["AzureAd:ClientSecret"])
.Build();
ClientCredentialProvider authProvider = new ClientCredentialProvider(confidentialClientApplication);
GraphServiceClient graphClient = new GraphServiceClient(authProvider);
var invitation = new Invitation
{
InvitedUserEmailAddress = "mail@hotmail.com",
InviteRedirectUrl = "https://url.com/",
SendInvitationMessage = true
await graphClient.Invitations
.Request()
.AddAsync(invitation);
我在互联网上的某个地方找到了这个片段,从评论来看,它似乎有效。但是,当我 运行 我的应用程序并调用此功能时,我收到一条错误消息
Code: Unauthorized Message: Insufficient privileges to perform requested operation by the application '00000003-0000-0000-c000-000000000000'. ControllerName=MSGraphInviteAPI, ActionName=CreateInvite, URL absolute path=/...
在API权限中,我在Microsoft Graph下有一个User.Invite.All
权限。除此之外,我还有 User.Read
但我认为目前与此无关。你们中的一些人是否偶然发现了这样的错误并设法成功解决了它?如果是这样,您能否分享解决方案?
您正在使用 client_credentials
流。这意味着执行此任务的不是用户,而是服务凭证。您需要提供 Application permissions
,而不是您设置的内容 - Delegated Permissions
.
如果您没有看到 Application Permissions
,那是因为您创建了 Azure AD B2C 应用程序注册。相反,使用第一个选项 Accounts in this organizational directory only (Contoso only - Single tenant)
.
这些是您需要的文档:
这是当今 AAD 和 AAD B2C 租户的正确方法。