我正在尝试为 OAuth 创建一个 Azure AD 应用程序并尝试为其分配权限。该应用程序已成功创建,但我没有看到正确分配的权限。
以下是我创建应用程序所遵循的步骤。
使用设备代码流获取访问令牌。(https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code)
使用以下 C# 代码创建应用程序
public async Task CallPostWebApiAndProcessResultAsync(string webApiUrl, string accessToken, string body, Action<JObject> processResult) { if (!string.IsNullOrEmpty(accessToken)) { var defaultRequetHeaders = HttpClient.DefaultRequestHeaders; if (defaultRequetHeaders.Accept == null || !defaultRequetHeaders.Accept.Any(m => m.MediaType == "application/json")) { HttpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); } defaultRequetHeaders.Authorization = new AuthenticationHeaderValue("bearer", accessToken); HttpContent postContent = new StringContent(body, Encoding.UTF8, "application/json"); HttpResponseMessage response = await HttpClient.PostAsync(webApiUrl, postContent); if (response.IsSuccessStatusCode) { string json = await response.Content.ReadAsStringAsync(); JObject result = JsonConvert.DeserializeObject(json) as JObject; processResult(result); } else { // Error } } }
上述函数的参数如下:
webAPIUrl
是:“https://graph.microsoft.com/v1.0/applications”body
是 :"{ \"displayName\": \"App with permissions in tenant\", \"requiredResourceAccess\": [ { \"resourceAppId\": \"00000003-0000-0000-c000-000000000000\", \"resourceAccess\": [ { \"id\": \"75359482-378d-4052-8f01-80520e7db3cd\", \"type\": \"Role\" }, { \"id\": \"62a82d76-70ea-41e2-9197-370581804d09\", \"type\": \"Role\" } ]}]}"
我可以验证应用程序是否已成功创建,但我无法看到成功分配给它的权限。
我正在尝试分配 Graph API 权限Files.ReadWrite.All和Group.ReadWrite.All。这些权限也被添加,但它们的状态是“无法确定状态”。不会自动授予管理员同意。
在获取设备代码时,我使用租户管理员凭据登录,所以我不确定这里还需要什么。
不幸的是,无法在网上找到太多关于此的内容。如果有人对此有任何想法,请告诉我。