如何将 ADFS 2.x SAML 令牌发送到 Dynamics CRM On-Premises 组织数据服务?
How to send ADFS 2.x SAML token to Dynamics CRM On-Premises Organization Data service?
我正在将 PHP 项目与 Microsoft Dynamics CRM 集成,并成功地将 OAuth 与 Azure AD 和 ADFS 3.0 结合使用来检索访问令牌,然后我可以在对 Dynamics CRM 组织数据 OData 的 REST 调用中使用这些访问令牌服务 (/XRMServices/2011/OrganizationData.svc) 格式:
Authorization: Bearer {access_token}
现在我正在尝试添加对使用 ADFS 2.x 的 on-premises Dynamics 实例的支持,其中不支持 OAuth。我知道我可以使用 RequestSecurityToken 消息从 ADFS 服务器获取 ws-trust 令牌或 SAML 不记名令牌。我的问题是在检索令牌后,如何在调用 Dynamics CRM 组织数据 OData 服务 (OrganizationData.svc) 时使用该令牌。我知道对于 Dynamics CRM Organization SOAP Web 服务 (Organization.svc),我会简单地将令牌断言包含在我的 SOAP 调用的 header 中。但如果可能的话,我想将令牌用于我的 OData REST 调用。
能否以某种方式将 ADFS SAML 令牌包含在 HTTP 授权 header 中,或者是否需要自定义 header。我没有找到如何执行此操作的示例。同样,这来自 PHP,所以我无法访问任何基于 .NET 的 ADAL 或 CRM 库,这些库将其中的大部分内容抽象出来并进行了简化。
事实证明,您可以简单地获取 RetrieveTokenResponse 中返回的断言,并将其作为 HTTP 授权 header 以及 SOAP Organization.svc 和 REST oData [=13] 中的 Bearer 令牌传递=] 将接受它们。
我正在将 PHP 项目与 Microsoft Dynamics CRM 集成,并成功地将 OAuth 与 Azure AD 和 ADFS 3.0 结合使用来检索访问令牌,然后我可以在对 Dynamics CRM 组织数据 OData 的 REST 调用中使用这些访问令牌服务 (/XRMServices/2011/OrganizationData.svc) 格式:
Authorization: Bearer {access_token}
现在我正在尝试添加对使用 ADFS 2.x 的 on-premises Dynamics 实例的支持,其中不支持 OAuth。我知道我可以使用 RequestSecurityToken 消息从 ADFS 服务器获取 ws-trust 令牌或 SAML 不记名令牌。我的问题是在检索令牌后,如何在调用 Dynamics CRM 组织数据 OData 服务 (OrganizationData.svc) 时使用该令牌。我知道对于 Dynamics CRM Organization SOAP Web 服务 (Organization.svc),我会简单地将令牌断言包含在我的 SOAP 调用的 header 中。但如果可能的话,我想将令牌用于我的 OData REST 调用。
能否以某种方式将 ADFS SAML 令牌包含在 HTTP 授权 header 中,或者是否需要自定义 header。我没有找到如何执行此操作的示例。同样,这来自 PHP,所以我无法访问任何基于 .NET 的 ADAL 或 CRM 库,这些库将其中的大部分内容抽象出来并进行了简化。
事实证明,您可以简单地获取 RetrieveTokenResponse 中返回的断言,并将其作为 HTTP 授权 header 以及 SOAP Organization.svc 和 REST oData [=13] 中的 Bearer 令牌传递=] 将接受它们。