我目前正在尝试使用诸如(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中将其登录后获得了令牌
问题
是否可以绕过此登录(例如将client,tenet,客户端机密ID作为参数传递给login.microsoft.com)或任何REST API?
我们正在使用单独的登录名进行申请,因此我们将不得不使用两次登录名
感谢您提供的任何帮助,
答案 0 :(得分:0)
Web API身份验证模式 使用Web API时,可以使用三种不同的方法来管理身份验证。
在网络资源中使用JavaScript 当您在HTML Web资源,表单脚本或功能区命令中将Web API与JavaScript结合使用时,则无需包含任何身份验证代码。在上述每种情况下,用户都已经通过应用程序进行了身份验证,并且通过应用程序管理了身份验证。
具有本地部署 使用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。