【发布时间】:2019-07-15 11:43:11
【问题描述】:
我正在使用 Azure AD Graph API 在 azure 应用程序中创建一个新角色。我正在做的是使用此代码从 azure 获取访问令牌:
ClientCredential clientCredential = new ClientCredential(clientId, clientSecret);
AuthenticationContext authenticationContext = new AuthenticationContext(aadInstance + tenantID);
AuthenticationResult authenticationResult = await authenticationContext.AcquireTokenAsync(graphResourceID, clientCredential);
return authenticationResult.AccessToken;
并使用以下代码创建角色:
//Fetch application Data from azure AD
IApplication application = await activeDirectoryClient.Applications.GetByObjectId(RoleModel.ApplicationID).ExecuteAsync();
AppRole NewRole = new AppRole
{
Id = CurrentRoleID,
IsEnabled = true,
AllowedMemberTypes = new List<string> { "User" },
Description = RoleModel.RoleDescription,
DisplayName = RoleModel.RoleName,
Value = RoleModel.RoleName
};
application.AppRoles.Add(NewRole as AppRole);
await application.UpdateAsync();
我还授予了所有应用程序权限,而不是从 Azure 门户到 Microsoft Graph API 的委派权限。但我收到了这个错误:
{"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"权限不足,无法完成操作。"},"requestId" :"e4187318-4b72-49fb-903d-42d419b65778","日期":"2019-02-21T13:45:23"}}
注意: 不过,我可以使用此访问令牌创建新用户并更新用户。
用于测试: 出于测试目的,我授予应用程序委托权限并使用客户端凭据流获取当前登录用户的访问令牌,如果登录用户有足够的目录角色,他/她可以在应用程序中创建角色,这工作正常。
问题: 那么,是否可以使用应用程序凭证流在应用程序中创建新角色?如果是这样,我错过了什么吗?
更新: 添加了 API Windows Azure Active Directory 的所有应用程序权限并授予管理员同意。
访问令牌: 从 ADzure AD 返回的访问令牌
【问题讨论】:
标签: azure azure-active-directory azure-ad-graph-api