Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法使用azure graph中的代码获取应用程序的令牌_Php_Azure Ad B2c_Azure Active Directory_Azure Ad Graph Api - Fatal编程技术网

Php 无法使用azure graph中的代码获取应用程序的令牌

Php 无法使用azure graph中的代码获取应用程序的令牌,php,azure-ad-b2c,azure-active-directory,azure-ad-graph-api,Php,Azure Ad B2c,Azure Active Directory,Azure Ad Graph Api,我已在中创建了一个应用程序,并尝试从我的web应用程序进行连接 这是我的代码: $data = array ( 'code' => $code, 'client_secret' => 'C2A32632155A3270220244A5774431C58126F9B5', 'client_id' => '49c1c823-b423-4673-af57-7be1ab39e386', 'grant_t

我已在中创建了一个应用程序,并尝试从我的web应用程序进行连接 这是我的代码:

  $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);
[timestamp] => 2017-01-12 13:12:28Z
[trace_id] => 47f5eaa3-2ea0-45bc-9bfa-8457395ae354
[correlation_id] => 3007e67d-120d-4cf1-a0e6-1863d202b233
我得到了回应:

  $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);
[timestamp] => 2017-01-12 13:12:28Z
[trace_id] => 47f5eaa3-2ea0-45bc-9bfa-8457395ae354
[correlation_id] => 3007e67d-120d-4cf1-a0e6-1863d202b233
[错误]=>无效的\u客户端 [错误描述]=>AADSTS70002:验证凭据时出错。AADSTS50012:提供的客户端密码无效。跟踪ID: 47f5eaa3-2ea0-45bc-9bfa-8457395ae354相关ID: 3007e67d-120d-4cf1-a0e6-1863d202b233时间戳:2017-01-12 13:12:28Z [错误代码]=>数组 ( [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,但我一直都会遇到这个错误。有人能告诉我哪里出了问题,或者我还需要做些什么来纠正这个问题吗

您现在在客户机机密字段中使用的值实际上是一个公钥,如果您点击
生成新密钥对
按钮,就会生成该公钥

[timestamp] => 2017-01-12 13:12:28Z
[trace_id] => 47f5eaa3-2ea0-45bc-9bfa-8457395ae354
[correlation_id] => 3007e67d-120d-4cf1-a0e6-1863d202b233
对于您尝试执行的操作,您需要点击门户中的
生成新密码
按钮以获取23个字符的客户端密码。这将允许您获取身份验证代码

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

还有一件事,如果您试图获取身份验证代码,请确保您使用了正确的授权端点
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
。当您拥有身份验证代码并希望将其交换为令牌时,将使用上面的url

我确实有授权码@Daniel Dobalian,我正在尝试使用
生成新密码
密码来获取令牌ID,修复您的错误?
[timestamp] => 2017-01-12 13:12:28Z
[trace_id] => 47f5eaa3-2ea0-45bc-9bfa-8457395ae354
[correlation_id] => 3007e67d-120d-4cf1-a0e6-1863d202b233