사용자 지정 만든 vb.net 응용 프로그램에서 CRM 2011 관리에 대한 CRM 2011 배포 서비스를 활용하려고합니다. 조직의 특정 요구 사항에 맞게 조정 된이 사용자 지정 응용 프로그램을 개발해야하므로 Deployment Manager를 사용해야한다고 말하지 마십시오. 내가 HTTP를 사용하지만 난 배포 서비스하는 방법 SSL을 사용하여 전화 연결하려고 할 때 다음발신자가 서비스 오류 (SSL을 통한 CRM 2011 배포 wcf 서비스 메서드 호출)로 인증되지 않았습니까?
(HTTPS가 서버에서 사용 가능) 때
모든 것이 잘 작동 내 관련 클라이언트 configurtion는 HTTPS /입니다 SSL 만
<binding name="CustomBinding_IDeploymentServiceHttps">
<security defaultAlgorithmSuite="Default" authenticationMode="SspiNegotiatedOverTransport"
requireDerivedKeys="false" securityHeaderLayout="Strict" includeTimestamp="true"
keyEntropyMode="CombinedEntropy" protectTokens="false" messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10"
requireSecurityContextCancellation="true">
<localClientSettings cacheCookies="true" detectReplays="false"
replayCacheSize="900000" maxClockSkew="00:05:00" maxCookieCachingTime="Infinite"
replayWindow="00:05:00" sessionKeyRenewalInterval="10:00:00"
sessionKeyRolloverInterval="00:05:00" reconnectTransportOnFailure="true"
timestampValidityDuration="00:05:00" cookieRenewalThresholdPercentage="60" />
<localServiceSettings detectReplays="false" issuedCookieLifetime="10:00:00"
maxStatefulNegotiations="128" replayCacheSize="900000" maxClockSkew="00:05:00"
negotiationTimeout="00:01:00" replayWindow="00:05:00" inactivityTimeout="00:02:00"
sessionKeyRenewalInterval="15:00:00" sessionKeyRolloverInterval="00:05:00"
reconnectTransportOnFailure="true" maxPendingSessions="128"
maxCachedCookies="1000" timestampValidityDuration="00:05:00" />
<secureConversationBootstrap />
</security>
<textMessageEncoding maxReadPoolSize="64" maxWritePoolSize="16"
messageVersion="Default" writeEncoding="utf-8">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</textMessageEncoding>
<httpsTransport manualAddressing="false" maxBufferPoolSize="524288"
maxReceivedMessageSize="65536" allowCookies="false" authenticationScheme="Anonymous"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
keepAliveEnabled="true" maxBufferSize="65536" proxyAuthenticationScheme="Anonymous"
realm="" transferMode="Buffered" unsafeConnectionNtlmAuthentication="false"
useDefaultWebProxy="true" requireClientCertificate="false" />
</binding>
및
<client>
<!-- Deployment Service Endpoints HTTP,HTTPS-->
<endpoint address="http://10.40.30.20:5555/XRMDeployment/2011/Deployment.svc"
binding="customBinding" bindingConfiguration="CustomBinding_IDeploymentService"
contract="CRM2011DeploymentSvc.IDeploymentService" name="CustomBinding_IDeploymentService">
<identity>
<userPrincipalName value="LAB2010\administrator" />
</identity>
</endpoint>
<endpoint address="https://www.mydomain.com/XRMDeployment/2011/Deployment.svc"
binding="customBinding" bindingConfiguration="CustomBinding_IDeploymentServiceHttps"
contract="CRM2011DeploymentSvc.IDeploymentService" name="CustomBinding_IDeploymentServiceHttps" />
</client>
0 123,414,내 asp.net 응용 프로그램을 위의 코드는 단지 서비스의 초기화에 사용되는
Dim DomainCredentials As New NetworkCredential(ADUserName, ADPassword, DomainNETBIOS)
If CRMDeploymentServiceURl.Trim().ToLower().StartsWith("https://") Then
_CrmDeployService = New DepSvc.DeploymentServiceClient("CustomBinding_IDeploymentServiceHttps")
Else
_CrmDeployService = New DepSvc.DeploymentServiceClient("CustomBinding_IDeploymentService")
End If
_CrmDeployService.ClientCredentials.Windows.ClientCredential = DomainCredentials
_CrmDeployService.Endpoint.Address = New EndpointAddress(New Uri(CRMDeploymentServiceURl))
_CrmDeployService.Endpoint.Binding.CloseTimeout = New TimeSpan(0, 30, 0)
_CrmDeployService.Endpoint.Binding.OpenTimeout = New TimeSpan(0, 30, 0)
_CrmDeployService.Endpoint.Binding.ReceiveTimeout = New TimeSpan(0, 30, 0)
_CrmDeployService.Endpoint.Binding.SendTimeout = New TimeSpan(0, 30, 0)
에 다음 코드를 사용하고 있습니다. 나중에 _CrmDeployService 개체를 사용하여 메서드를 호출하면 https가 아닌 http에서 제대로 작동합니다.
클라이언트 인증서를 사용하지 않고 HTTPS 보안 배포 서비스와 통신하려면 어떻게해야합니까? (DigiCert의 SSL 인증서가 이미 서버에 설치되어 있으며 웹 브라우저에서 SSL을 통해 웹 사이트를 탐색 할 수 있습니다.) 다른 인증서가 필요한 이유는 무엇입니까?
IIS 설정은 필요에 따라 완료되었습니다. WCf 서비스는 웹 브라우저를 통해 SSL/https를 통해 탐색 할 수 있습니다.) 서버에서 도메인 사용자를 통한 인증뿐 아니라 익명 인증을 시도하고 코드에서도 동일한 처리를 수행했습니다.
구성 변경이 필요합니까? 이것이 WCF 특정 문제입니까? 나는 stackoverflow에 게시 된 솔루션을 시도했지만 msdn을 통해 사용할 수는 있지만 아무 소용이 없습니다. 서버의 web.config를 변경할 수없고 클라이언트 인증서를 사용해서는 안되지만 인증에 필요한 자격 증명을 사용할 수 있으며 SSL을 통해이를 획득해야합니다. 도와주세요. 감사합니다
SSL 인증서가 이미 서버에 설치되어 있습니다. 어떤 다른 인증서가 필요합니까? 또한 필요에 따라 IIS 설정이 완료되었습니다. WCF는 웹 브라우저를 통해 SSL/htps를 통해 브라우즈 할 수 있습니다. –