繁体   English   中英

尝试使用 R 对 MS Dynamics CRM 2016 WebApi 进行身份验证

[英]Trying to authenticate to MS Dynamics CRM 2016 WebApi using R

我可以使用一些帮助..

我正在尝试连接到 MS Dynamics CRM (2016) 本地数据库。 它面向互联网 (IFD) 并使用 adfs 3.0 对用户进行身份验证。

现在,当我尝试使用网络浏览器连接到 api 时,会出现一个小登录表单,让我输入用户名和密码。 当我提交这些凭据时,浏览器会打开一个带有漂亮 json 代码的页面,但是,当我在 R 中尝试以下代码时

library(httr)

result <- GET(
   "https://xrm.company.nl/Company/api/data/v8.2/some=query",
   config = authenticate(
      user = "MyUsername",
      password = "MyPassword",
      type = "ntlm"
   )
)

我得到了构建 POST 表单的 text/html 内容。 这个表格已经为我填写好了,但是它依赖于一些 js 脚本来自动提交。 html 中还有一条警告消息,说明脚本已禁用,并带有一个方便(但无法访问)的提交按钮。

当我从内容content(result, as = "text")中提取 html 时,将其放入 html 文件并在我的浏览器中打开它,json 结果如下。

但我不知道如何启用脚本,或者如何使用 R 单击提交。

任何人对这些问题的解决方法有任何想法,或者关于如何使用 R 正确地向 adfs 进行身份验证?

您将请求 SAML 不记名访问令牌。 请参阅 Magnatism 博客上的这篇文章: Dynamics 365 Online ADFS 使用用户凭据进行身份验证

在螺母 shell 中,您需要执行以下操作...

  1. 通过向用户 Realm 端点发送 HTTP GET 请求来获取用户 Realm
  2. 通过向 ADFS 服务端点发送 HTTP POST 请求获取 SAML 访问令牌
  3. 提取元素之间的 XML 内容,删除任何缩进然后编码为 Base 64 字符串
  4. 通过向令牌端点发送 HTTP POST 请求获取 SAML 承载访问令牌
  5. 设置HTTP请求的授权Header

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM