2013-07-12 2 views
1

로컬 작업 그룹 시스템 (Windows 7)에서 메시지를 보내고 받으려는 경우 작업 그룹 서버에 설정된 서비스 버스 1.0으로 '클라이언트'라고합니다. AWS EC2에서 호스팅). 많은 시련과 연구 끝에 클라이언트 컴퓨터에서 서버로 메시지를 보낼 수 없습니다. 나는 그것이 가능하다는 것을 나타내는 것으로 보이는 다수의 기사를 따라 왔지만 지금보고있는 인증 문제를 해결할 수는 없습니다.AWS의 Windows Service Bus 1.0에 대한 인증 오류가 발생했습니다.

Microsoft Service Bus on a Windows Workgroup

Connecting to Windows Server Service Bus on AWS

나는 마이크로 소프트 시스템 요구 사항은 "지원되지 않음"과 "불가능"을 나타 내기 위해 표시주의. 내 질문은이 일을 할 수 있는가? 그리고 누구에게 성공을 가져 왔는가? 어떤 도움이라도 대단히 감사하겠습니다.

msdn.microsoft.com/en-us/library/windowsazure/jj193011(v=azure.10).aspx

내 시도는 WindowsTokenProvider 및 OAuthTokenProvider를 사용하여 포함한다.

System.UnauthorizedAccessException : 토큰 공급자가 'https://xx.xx.xx.xx:9355/ServiceBusDefaultNamespace/ $ STS/Windows /'에 액세스하는 동안 토큰 공급자가 보안 토큰을 제공하지 못했습니다. 토큰 공급자가 메시지를 반환했습니다 : ''. ---> System.IdentityModel.Tokens.SecurityTokenException : 'https://xx.xx.xx.xx:9355/ServiceBusDefaultNamespace/ $ STS/Windows /'에 액세스하는 동안 토큰 공급자가 보안 토큰을 제공하지 못했습니다. 토큰 공급자가 메시지를 반환했습니다 : ''. ---> System.Net.WebException : 원격 서버가 오류를 반환했습니다 : (401) Unauthorized.

서비스 버스 네임 스페이스는 작업 그룹 설치를 위해 AddressingScheme "경로"로 설정됩니다. 클라이언트 측 연결 문자열에는 서버에 연결할 IP가 포함되어 있으며 큐를 만들기 전에 RemoteCertificateValidationCallback을 설정했습니다.

Endpoint=sb://xx.xx.xx.xx/ServiceBusDefaultNamespace;StsEndpoint=https://xx.xx.xx.xx:9355/ServiceBusDefaultNamespace;RuntimePort=9354;ManagementPort=9355;WindowsUsername=SBUser;WindowsDomain=[NotUsed];WindowsPassword=[Password] 

코드는 원격 큐에 연결하고 다음과 같은 메시지가 보내 :

ServiceBusConnectionStringBuilder connBuilder = new ServiceBusConnectionStringBuilder(ConfigurationManager.AppSettings["Microsoft.ServiceBus.ConnectionString"]); // Gets the connection string above 
TokenProvider tokenProvider = WindowsTokenProvider.CreateWindowsTokenProvider(connBuilder.StsEndpoints, new NetworkCredential(connBuilder.WindowsCredentialUsername, connBuilder.WindowsCredentialPassword)); 
MessagingFactorySettings messagingFactorySettings = new MessagingFactorySettings(); 
messagingFactorySettings.TokenProvider = tokenProvider; 
MessagingFactory messagingFactory = MessagingFactory.Create(connBuilder.GetAbsoluteRuntimeEndpoints(), messagingFactorySettings); 
requestQueue = messagingFactory.CreateQueueClient("RequestQueue"); 
... 
requestQueue.Send(sendMessage); // Fails here 

서버 계정에 암호로 SBUser 내가 도메인/호스트가 토큰에 빈 지정 떠났다 공급자. 서버의 이벤트 뷰어는 시도중인 인증이 토큰 제공자의 클라이언트가 아니라 클라이언트의 사용자 계정임을 보여줍니다. 왜 이런거야? 분명히 서버에서 인증하기 위해 뭔가 빠졌습니다.

An account failed to log on. 

Subject: 
    Security ID: NULL SID 
    Account Name: - 
    Account Domain: - 
    Logon ID: 0x0 

Logon Type: 3 

Account For Which Logon Failed: 
    Security ID: NULL SID 
    Account Name: [ClientLogin] 
    Account Domain: [ClientMahcine] 

Failure Information: 
    Failure Reason: Unknown user name or bad password. 
    Status: 0xc000006d 
    Sub Status: 0xc0000064 

감사합니다. 감사.

답변

1

OAuthTokenProvider를 사용하여 connBuilder가 올바른 값을 전달하는지 확인하십시오.

토큰 공급자 tokenProvider.CreateOAuthTokenProvider (connBuilder.StsEndpoints, new NetworkCredential (connBuilder.WindowsCredentialUsername, connBuilder.WindowsCredentialPassword)));

한번 시도한 후에는 클라이언트에 예외로 회신 해주십시오. 또한 서버에서 예외에 대한 자세한 정보를 제공하는 이벤트를 서비스 버스 섹션에서 검색하십시오.

해당 정보로 다음 단계를 계속 진행해야합니다.

+0

내가 OAuthTokenProvider 다시 테스트 및 전달되는 올바른 자격 증명 (SBUser 플러스 암호)를 확인한를. 이것은 초기에 다음과 같은 오류를 표시합니다. X.509 인증서 CN = AMAZONA-PQxxxxx가 신뢰할 수있는 사용자 저장소에 없습니다. 인증서를 내보내고 클라이언트로 가져 와서 해결할 수 있습니다. 이제이 오류가 발생합니다. MessagingCommunicationException : 보내는 메시지의 신원 확인이 실패했습니다. 원격 종단점의 예상 DNS 신원은 '54 .214.245.186 '이었지만 원격 종점은 DNS 청구'AMAZONA-PQxxxxx '를 제공했습니다. – Lewis

+0

초기 게시물 당 동일한 연결 문자열을 사용하고 있습니다. 서버의 서비스 버스 이벤트 로그에는 아무 것도 없습니다. 올바른 위치입니까? 이벤트 뷰어 -> 응용 프로그램 및 서비스 로그 -> Microsoft-> ​​ServiceBus-> CASSink 및 클라이언트. – Lewis

0

맨 아래로 갔습니까?

클라이언트 컴퓨터 호스트 파일에서 인증서가 바인딩 된 서버의 정규화 된 도메인 이름을 설정하여 정확히 동일한 문제를 해결할 수있었습니다.

그래서 연결 문자열에 IP 주소를 입력 한 경우 'AMAZONA-PQxxxxx'를 입력해야합니다. 그리고 호스트 파일에서 'AMAZONA-PQxxxxx'를 IP 주소로 확인하십시오.

+0

이 질문에 대한 답변을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남기십시오. 자신의 게시물에 언제나 댓글을 달 수 있으며 충분한 [평판] (http://stackoverflow.com/help/whats-reputation)을 갖게되면 [모든 게시물에 댓글을 달 수] 있어야합니다 (http://stackoverflow.com/help/privileges/comment). – n1ckolas

+0

새 질문이있는 경우 [질문하기] (http://stackoverflow.com/questions/ask) 버튼을 클릭하여 질문하십시오. 컨텍스트를 제공하는 데 도움이되는 경우이 질문에 대한 링크를 포함하십시오. – NAZIK

+1

나는 이것을 해결할 수 없었습니다. 이후 나는 대신 도메인에있는 컴퓨터를 통해 실행이 전환하고 잘 작동하고 내 요구에 충분하다. – Lewis

0

같은 문제가있었습니다. 서버 W2k12R2, 독립 실행 형, 작업 그룹; 클라이언트 Windows 7, 동일한 작업 그룹.

두 시스템에 동일한 사용자 계정이 있어야합니다. 인증 프록시 물건과 같은 것 같습니다.

는 위에서 언급 한 호환성 매트릭스에서보세요 : http://msdn.microsoft.com/en-us/library/windowsazure/jj193011(v=azure.10).aspx

감사합니다,

홀거

관련 문제