[英]OAuth to Microsoft Dynamics Marketing OData Feed
我正在嘗試連接到Microsoft Dynamics營銷OData數據服務。 該頁面列出了僅准備就緒訪問的OData提要,但沒有有關如何對其進行身份驗證的任何信息。
我一直在嘗試使用Microsoft.IdentityModel.Clients.ActiveDirectory -Version 1.0.4來獲取訪問令牌,如下所示:
var authenticationContext = new AuthenticationContext("https://login.windows.net/" + domainName);
var authenticationResult = authenticationContext.AcquireToken(resource, clientId, redirectUri);
var token = authenticationResult.AccessToken;
domainName
類似於contoso.onmicrosoft.com
但我不知道將什么用於clientId
, redirectUri
和resource
。
我嘗試了許多不同的組合,並遇到了諸如以下的錯誤:
invalid_request: AADSTS90027: The client 'xxxxxxxx-9068-486b-bdd2-dac26b8a5a7a' and resource 'Microsoft.DynamicsMarketing' identify the same application.
和
access_denied: AADSTS65005: The client application has requested access to resource 'Microsoft.DynamicsMarketing'. This request has failed because the client has not specified this resource in its requiredResourceAccess list.
我想我對此很滿意。 我已經在Azure AD中將應用程序注冊為本機客戶端應用程序,並使用其clientId
和redirectUri
與Microsoft.DynamicsMarketing
作為資源。 我使用“用於Windows PowerShell的Windows Azure Active Directory模塊”在服務主體列表Get-MsolServicePrincipal
找到了這一點。
這些是正確的參數嗎?我只需要對許可進行一些整理,或者我應該如何處理?
更新正確的resource
是https://marketing-infra.dynamics.com/
,它是列出的服務主體名稱之一,與我以前使用的Microsoft.DynamicsMarketing
。 這與我從Power Query從Fiddler捕獲的clientId
和redirectUri
一起使用。 我非常確定,要使其與我的clientId一起使用,我需要在Azure應用程序注冊中為Dynamics Marketing授予權限,即“對其他應用程序的許可”。 問題是Dynamics Marketing不是可添加的應用程序,並且Dynamics CRM委托權限沒有對Dynamics Marketing起作用。
確實可以訪問提要。 但是您必須在Azure Active Directory中注冊一個應用程序,並授權該應用程序訪問Dynamics Marketing。
請在此處查看有關此主題的我的BlogPost-包括步驟和示例代碼:-)
我還在GitHub上發布了PowerShell cmdlet,這樣做是一種更通用的方法,並且不對數據模型使用代理類。 PowerShell cmdlet通過OData和SDK訪問MDM
我從Microsoft得到的答案是,不支持Power Query以外的其他客戶端。 因此,我上面的代碼是正確的,尚不支持添加使用其他應用程序對其進行訪問的權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.