1
我正在編寫一個Web應用程序,用於訪問存儲在Microsoft Dynamics CRM Online中的客戶端數據。我想允許我的用戶使用OAuth授予對其Dynamics帳戶的訪問權限。如何爲Azure AD多租戶應用程序的access_token交換授權碼?
- 我創建在天青AD多租戶應用,提供redirect_uris中,生成的客戶ID &祕密。多tennant設置爲ON。
- 我創建了演示Microsoft Dynamics CRM帳戶。 「examplecrmaccount.crm4.dynamics.com」。
- 我已成功生成授權網址,將用戶發送至授權屏幕,並收到應交換爲「訪問令牌」的「代碼」。
我無法爲「access_token」交換此「代碼」。
$data = array(
"grant_type" => "authorization_code",
"client_id" => urlencode("my_app_azure_ad_client_id"),
"redirect_uri" => urlencode("https://myapp.com/callback"),
"client_secret" => urlencode("my_app_azure_ad_client_secret"),
"code" => urlencode("code_returned_from_previous_request"),
"resource" => urlencode("https://examplecrmaccount4.crm4.dynamics.com")
);
$endpoint = "https://login.windows.net/common/oauth2/token?api-version=1.0";
$response = helpers\Curl::doPOST(
$endpoint,
null,
array("Content-type: application/x-www-form-urlencoded"),
$data
);
服務器響應:
Status 404
StatusName Not Found
{"error":"invalid_request","error_description":"ACS90002: No service namespace named \u0027common\u0027 was found in the data store.\r\nTrace ID: b1025082-3e9b-49d8-bf91-7d998f694162\r\nCorrelation ID: 49d9d1e5-6958-4ffc-91ff-464f078a00f5\r\nTimestamp: 2014-09-12 08:35:59Z","error_codes":[90002],"timestamp":"2014-09-12 08:35:59Z","trace_id":"b1025082-3e9b-49d8-bf91-7d998f694162","correlation_id":"49d9d1e5-6958-4ffc-91ff-464f078a00f5"}
從這個(和授權url請求,「/ common/oauth2/authorize」)中刪除「api-version = 1.0」的竅門。我現在收到: {「error」:「invalid_request」,「error_description」:「AADSTS90011:'redirect_uri'的值必須是有效的絕對Uri。\ r \ nTrace ID:035a0c90-bc8f-444c-8723-e8d9aea033bb \ r \ n相關性ID:58c6fc52-cf50-44ae-8622-cc4aa3259bac \ r \ n時間戳:2014-09-22 17:08:02Z「,」error_codes「:[90011],」timestamp「:」2014-09-22 17 :08:02Z」, 「trace_id的」: 「035a0c90-bc8f-444C-8723-e8d9aea033bb」, 「CORRELATION_ID」: 「58c6fc52-cf50-44ae-8622-cc4aa3259bac」, 「submit_url」:空, 「情境」:空} ) – dclaysmith 2014-09-22 17:12:13
哎呀我以前沒有注意到。在多租戶應用程序中,redirect_uri值必須與Azure AD租戶的名稱相關。例如,如果您的租戶是contoso.com,那麼redirect_uri的格式必須是https://contoso.com/。我認爲在這種情況下,您的租戶的名稱是crm4.dynamics.com。 –
user4067195
2014-09-22 17:33:43
對不起,那也不對,我對AppID URI感到困惑。沒有足夠的咖啡。不掛斷。 – user4067195 2014-09-22 18:57:58