我正在按照 msdn 网站中描述的指南在我的本地域中设置动态 CRM 服务器 2015,一切都按预期工作。
但是我在使用 OAuth 2.0 身份验证访问我的服务器时遇到了一些问题。从官方文档来看,动态CRM支持OAuth认证。
创建现代和移动应用程序(包括未在 .NET Framework 上构建的应用程序)的开发人员可以通过组织 Web 服务的 SOAP 和 OData 端点访问 Microsoft Dynamics CRM 业务数据。此 Web 服务支持 OAuth 2.0 协议中的某些身份验证功能。
但是,当我按照链接执行 OAuth 流时,在尝试获取访问令牌时,我会在 AD FS 事件日志中收到以下错误消息信息。
在联合被动请求期间遇到错误。异常详细信息:Microsoft.IdentityServer.RequestFailedException:MSIS7065:路径 /adfs/oauth2/token 上没有注册的协议处理程序来处理传入请求。在 Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext(WrappedHttpListenerContext 上下文)
我已经将 OAuth 2.0 应用程序添加到我的 CRM 服务器中。我的问题是我错过了哪些步骤来使 OAuth 身份验证有效?
更新 [11/11/2015]: 在我使用 postman 进行令牌获取操作时,我发现可能存在一些配置错误。我使用了 PowerShell,它可以工作。在下面分享了我的命令:
$nvc = New-Object System.Collections.Specialized.NameValueCollection
$nvc.Add("client_id", "you client id")
$nvc.Add("grant_type", "authorization_code")
$nvc.Add("code", "authorization code")
$nvc.Add("redirect_uri", "your redirect uri")
$wc = new-object net.webclient
$response = $wc.UploadValues("https://your.adfs.server/adfs/oauth2/token", "POST", $nvc)
$tokens = $wc.Encoding.GetString($response);