2012-05-22 4 views
2

Google 검색 API가 사용되지 않으므로 Ruby 앱에서 Bing Search API (현재 Windows Azure API)를 사용하고 싶습니다.루비를 사용하여 Azure에 인증 (HTTP 헤더 인증) 하시겠습니까?

그러나 Azure는 쿼리 URI를 작성하고 브라우저에 붙여넣고 표준 HTTP 인증 상자의 암호 상자에 키를 전달한 다음 POST를 통해 결과를 확인하는 이상한 인증 패턴을 사용합니다. 나는 이것이 서명을 생성하고 어떻게 든 헤더에 전달한다고 가정합니다. Ruby에서 전체 프로세스를 수행하고 가능한 경우 브라우저 부분을 건너 뛰고 싶습니다.

나는 obscure Windows Azure storage gem의 출처에서의 예가 이지만, 나는 서명을 만들고 호출하는 방법을 알 수 없다. Ruby에서 기본 HTTP 인증을 수행하는 간단한 방법이 있습니까?

답변

2

내가 패러데이의 내장 나서서 사용을 사용하는 경우 기본 인증 방식은 다음과 같습니다.

connection = Faraday.new "http://api.something.com/1/dudez" 
connection.basic_auth "username" "password" 
connection.get 
+0

'basic_auth'는 2 대신 하나의 인수를 기대한다고 말합니다. 구문이 변경 되었습니까? – cboettig

+0

사용자 정의 헤더를 추가해야하는 경우 headers 메소드로 재설정되므로 헤더가 설정된 후에 basic_auth를 추가해야합니다. – fregas

1

나는 이것을 위해 RestClient 보석을 권하고 싶습니다. 나는 그것을 도메인을 통해 GET 및 POST 할 때 큰 성공을 거두었습니다. API를 구현하기 위해 실제로 브라우저처럼 행동해야한다면 항상 Capybara을 사용할 수 있습니다.

죄송합니다. Azure API를 직접 사용해 본적이 없으며 예제를 제공합니다. :)

0

REST를 통해 Windows Azure BLOB 저장소에 요청을 서명하는 방법 API는 여기에 설명되어 있습니다 : http://msdn.microsoft.com/en-us/library/dd179428.aspx.

기본적으로 HTTP 헤더에 자격 증명을 추가하는 것만으로 인증을받지 못하면 저장소 계정에 연결된 비밀 키로 요청에 서명해야합니다.