php - 如何将 ADFS 2.x SAML token 发送到 Dynamics CRM 本地组织数据服务?

标签 php azure oauth dynamics-crm adfs

我正在将 PHP 项目与 Microsoft Dynamics CRM 集成,并成功使用 OAuth 与 Azure AD 和 ADFS 3.0 来检索访问 token ,然后可以在对 Dynamics CRM 组织数据 OData 服务 (/XRMServices/2011) 的 REST 调用中使用该 token /OrganizationData.svc) 格式为:

授权:持有者 {access_token}

现在,我尝试添加对使用 ADFS 2.x(不支持 OAuth)的本地 Dynamics 实例的支持。我知道我可以使用 RequestSecurityToken 消息从 ADFS 服务器获取 ws-trust token 或 SAML 不记名 token 。我的问题是检索 token 后,如何在调用 Dynamics CRM 组织数据 OData 服务 (OrganizationData.svc) 时使用该 token 。我知道,对于 Dynamics CRM Organization SOAP Web 服务 (Organization.svc),我只需将 token 断言包含在 SOAP 调用的 header 中。但如果可能的话,我想在 OData REST 调用中使用该 token 。

ADFS SAML token 是否可以以某种方式包含在 HTTP 授权 header 中,或者是否需要自定义 header 。我还没有找到如何执行此操作的示例。同样,这是来自 PHP,因此我无法访问任何基于 .NET 的 ADAL 或 CRM 库,这些库抽象了大部分内容并简化了它。

最佳答案

事实证明,您可以简单地获取 RetrieveTokenResponse 中返回的断言并将其作为 HTTP 授权 header 中的承载 token 传递,并且 SOAP Organization.svc 和 REST oData OrganizationData.svc 都会接受它们。

关于php - 如何将 ADFS 2.x SAML token 发送到 Dynamics CRM 本地组织数据服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34955441/

相关文章:

php - 如何使用从 tmhOAuth 获得的用户 token / secret ?

facebook - Facebook/Twitter 是否在自己的应用程序中使用 oAuth?

php - 编码为 json 对象并通过 ajax 发送

javascript - 如何使用 CodeIgniter 安装 React Js ..?

azure - 使用 powershell 从 Adls gen1 下载文件不起作用

azure - Docker 容器在本地运行良好。现在我需要在云中按计划进行

azure - 针对 azure 连接被拒绝或服务不可用的大规模测试

javascript - 推特 oauth request_token 失败

php - 如何在mysql中搜索多列

php - laravel Controller 内部是否需要 try catch block ?