无法使用azure图表中的代码获取应用令牌

时间:2017-01-13 13:49:48

标签: php azure-ad-b2c azure-active-directory azure-ad-graph-api

我在http://apps.dev.microsoft.com/创建了一个应用,并尝试从我的网络应用程序进行连接 这是我的代码:

  $data = array (
          'code' => $code,
          'client_secret' => 'C2A32632155A3270220244A5774431C58126F9B5',
          'client_id' => '49c1c823-b423-4673-af57-7be1ab39e386',
          'grant_type' => 'authorization_code',
          'redirect_uri' => 'http://localhost/crm/contacts/connectOffice',
          'scope' => 'offline_access Contacts.ReadWrite'
        );
    $url = 'https://login.microsoftonline.com/common/oauth2/v2.0/token';
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);      
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);  
    $result = curl_exec($curl);

我收到回复:

  

[error] => invalid_client       [error_description] => AADSTS70002:验证凭据时出错。 AADSTS50012:提供了无效的客户端密钥。跟踪ID:   47f5eaa3-2ea0-45bc-9bfa-8457395ae354相关ID:   3007e67d-120d-4cf1-a0e6-1863d202b233时间戳:2017-01-12 13:12:28Z       [error_codes] =>排列           (               [0] => 70002               [1] => 50012           )

[timestamp] => 2017-01-12 13:12:28Z
[trace_id] => 47f5eaa3-2ea0-45bc-9bfa-8457395ae354
[correlation_id] => 3007e67d-120d-4cf1-a0e6-1863d202b233

我很确定我在请求中提供了正确的客户端密钥和客户端ID,但我仍然一直收到此错误。任何人都可以建议我可能出错的地方或者我还需要做些什么来纠正这个问题?

1 个答案:

答案 0 :(得分:2)

您现在在客户端密码字段中使用的值实际上是一个公钥,如果您点击Generate New Key Pair按钮,则会生成该公钥。

对于您要执行的操作,您需要点击门户网站中的Generate New Password按钮以获取23个字符的客户端密钥。那应该允许你获得一个auth代码。

另一件事,请确保您是否尝试使用正确的授权端点https://login.microsoftonline.com/common/oauth2/v2.0/authorize获取身份验证代码。当您拥有身份验证代码并想要将其替换为令牌时,将使用上面的URL。