每当有对新环境的请求时,我目前都在 Azure Active Directory 上手动创建我的应用程序。我正在探索通过 REST API 从代码创建这些应用程序的方法。如图所示,我通过使用“client_credentials”成功地在现有应用程序上创建用户和组。
ClientCredential clientCred = new ClientCredential(clientID, clientSecret);
AuthenticationResult authenticationResult = await authenticationContext.AcquireTokenAsync(resAzureGraphAPI, clientCred);
以类似的方式,我尝试使用从上面生成的“access_token”来创建一个新的应用程序 adClient.Applications.AddApplicationAsync(newApplication).Wait()
但这会引发错误-“权限不足,无法完成操作”。
我查看了其他线程和 Azure AD msdn 页面,结果发现 client_credentials 流不支持创建/更新应用程序。
使用客户端凭据流以编程方式在 Azure AD 中添加应用程序
上面的线程还提到了解决方法是使用“grant_type=password”流程。我按照建议尝试了它,但我不断收到以下错误,这对我来说没有意义。
"error": "invalid_grant",
"error_description": "AADSTS50034: To sign into this application the account must be added to the 1283y812-2u3u-u293u91-u293u1 directory.\r\nTrace ID: 66da9cf9-603f-4f4e-817a-cd4774619631\r\nCorrelation ID: 7990c26f-b8ef-4054-9c0b-a346aa7b5035\r\nTimestamp: 2016-02-21 23:36:52Z",
"error_codes": [
50034
],
这是我要命中的有效负载和端点。传递的用户是我要在其中创建应用程序的 AD 的所有者
endpoint:https://login.windows.net/mytenantID/oauth2/token
post data
resource 00000002-0000-0000-c000-000000000000
client_id id
client_secret secret
grant_type password
username principal@mydomain.com
password password
scope openid
任何关于我可能出错的想法或建议将不胜感激。