繁体   English   中英

使用Rest(400)错误请求将Azure AD用户添加到组

[英]Adding a Azure AD User to a group using Rest (400) Bad Request

我是休息的新手,我试图将Azure广告用户添加到特定的组,但请求很糟糕,有人可以帮我看看我在做什么错...

我的代码是这样的:

        var queryString = HttpUtility.ParseQueryString(string.Empty);

        // Specify values for the following required parameters
        queryString["api-version"] = "1.6";
        AuthenticationContext authenticationContext = new AuthenticationContext(authString, false);
        ClientCredential clientCred = new ClientCredential(clientID, clientSecret);
        AuthenticationResult authenticationResult = await authenticationContext.AcquireTokenAsync(resAzureGraphAPI, clientCred);
        // Specify values for path parameters (shown as {...})
        var uri = serviceRootURL + "/groups/" + "software developer" +"/$links/members" + "?" + queryString;

        HttpWebRequest endpointRequest = (HttpWebRequest)WebRequest.Create(uri);
        endpointRequest.Method = "POST";
        endpointRequest.Accept = "application/json;odata=verbose";
        endpointRequest.Headers.Add("Authorization", "Bearer " + authenticationResult.AccessToken);
        endpointRequest.ContentType = "application/json";
        Dictionary<string, object> dataFrmDb = new Dictionary<string, object>();
        dataFrmDb.Add("url", serviceRootURL + "/users/" + userPrincipalName);

        string ans = JsonConvert.SerializeObject(dataFrmDb);
        try
        {

            using (var streamWriter = new StreamWriter(endpointRequest.GetRequestStream()))
            {
                streamWriter.Write(ans);
                streamWriter.Flush();
                streamWriter.Close();
            }

            HttpWebResponse endpointResponse = (HttpWebResponse)endpointRequest.GetResponse();
            using (var streamReader = new StreamReader(endpointResponse.GetResponseStream()))
            {
                var result = streamReader.ReadToEnd();
                Console.WriteLine(endpointResponse.StatusCode.ToString() + ":" + result);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

其中变量serviceRootUrl为“ https://graph.windows.net/ {organization} /”

我得到的错误是远程服务器返回错误:(400)错误的请求。

我已经测试过使用fiddler中的Azure图形API将用户添加到AD组。

方法:开机自检

网址: https//graph.windows.net/myorganization/groups/cd2ddafa-d141-4b66-84ba-8673844efca5/ $ links / members?api-version = 1.6
//上面链接中的向导是组对象ID,我们可以在Azure门户中找到它,如以下屏幕截图所示。

在此处输入图片说明

这是我的标题:

User-Agent: Fiddler
Host: graph.windows.net
Content-Type: application/json
Content-Length: 111
Authorization: Bearer <your token>

帖子正文:

{
  "url": "https://graph.windows.net/myorganization/directoryObjects/fe989a2b-81d1-48ca-aa15-0ac52688f65b"
}

//我们也可以在azure门户中找到用户guid。 在此处输入图片说明

通过以上发布请求,我将该成员添加到该组: 在此处输入图片说明

请运行您的代码并使用Fiddler捕获流量,然后检查标题,URL,帖子正文以确保没有问题。 您还可以阅读本文,以获取有关如何通过图形API将用户添加到组中的更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM