绕过动态crm

时间:2018-07-06 10:47:40

标签: dynamics-crm microsoft-dynamics

我目前正在尝试使用诸如(api.crm.dynamics.com/api/data/v8.2/accounts?)这样的Web API查询方法从Dynamic CRM(Office 365-E5)中获取数据。 $ select = accountid,name,new_gl_exp,new_autol_exp)

我将将此api包含在外部应用程序(使用HTML和Javascript开发)中,并托管在本地IIS中

我已经在CRM和Azure中完成了基本设置,并在login.microsoft.com中将其登录后获得了令牌

问题

  1. 不通过在login.microsoftonline.com中输入用户名和密码就可以如何进行身份验证

是否可以绕过此登录(例如将client,tenet,客户端机密ID作为参数传递给login.microsoft.com)或任何REST API?

我们正在使用单独的登录名进行申请,因此我们将不得不使用两次登录名

  1. 应用程序登录
  2. login.microsoft.com(适用于dunamic crm)

感谢您提供的任何帮助,

1 个答案:

答案 0 :(得分:0)

Web API身份验证模式 使用Web API时,可以使用三种不同的方法来管理身份验证。

在网络资源中使用JavaScript 当您在HTML Web资源,表单脚本或功能区命令中将Web API与Jav​​aScript结合使用时,则无需包含任何身份验证代码。在上述每种情况下,用户都已经通过应用程序进行了身份验证,并且通过应用程序管理了身份验证。

具有本地部署 使用Web API进行本地部署时,必须包含用户的网络凭据。以下示例是一个C#函数,它将返回为给定用户的网络凭据配置的HttpClient:

private HttpClient getNewHttpClient(string userName,string password,string domainName, string webAPIBaseAddress)
{
    HttpClient client = new HttpClient(new HttpClientHandler() { Credentials = new NetworkCredential(userName, password, domainName) });
    client.BaseAddress = new Uri(webAPIBaseAddress);
    client.Timeout = new TimeSpan(0, 2, 0);
    return client;
}

使用Microsoft Dynamics 365(在线)或面向Internet的部署 当您将Web API用于Dynamics 365(在线)或本地面向Internet的部署(IFD)时,必须按照使用OAuth连接到Microsoft Dynamics 365 Web服务中所述使用OAuth。

如果要使用JavaScript创建单页应用程序(SPA),则可以使用adal.js库,如将OAuth与跨域资源共享结合使用中所述,将单页应用程序连接到Microsoft Dynamics 365。

https://msdn.microsoft.com/en-us/library/mt595798.aspx