2016-11-08 4 views
0

인증 된 앱을 사용하여 다양한 데이터 세트의 메타 데이터를 업데이트하는 스크립트를 작성하려고합니다. OAuth를 사용하는 것은 잘못된 접근법 (다른 사용자가 스스로 웹을 사용하는 응용 프로그램이 아닌 것처럼 보임)을 사용하여 내 사용자 이름과 암호를 전달하는 것 같습니다 ... icky.앱 토큰과 HTTP 기본 비공개를 사용하여 Socrata 데이터 세트 업데이트

SODA API authentication documentation 꽤 혼란 :

모든 HTTP - 기본 인증 요청은 보안 (HTTPS) 연결을 통해 수행되어야하며, 응용 프로그램을 등록 할 때 얻어지는 응용 프로그램 토큰을 포함해야한다. 그러나 요청이 인증 될 때 인증 [sic, "application"?] 토큰은 엄격하게 요구되지 않습니다. 안전하지 않은 연결을 통해 이루어진 인증 된 요청은 거부됩니다. 그래서

POST /resource/4tka-6guv.json HTTP/1.1 
Host: soda.demo.socrata.com 
Accept: */* 
Authorization: Basic [REDACTED] 
Content-Length: 253 
Content-Type: application/json 
X-App-Token: [REDACTED] 

:

  1. 당신도 HTTP 기본 인증을 응용 프로그램 토큰 + 비밀 토큰을 사용할 수 여기

    는 HTTP 기본 인증을 사용하는 샘플 HTTP 세션입니까?
  2. 앱 토큰 2 개 중 [수정 됨] 중 어느 것이 비공개 토큰입니까?

    1. 은 "[편집 됨]"사용자 이름 + 비밀번호의 Base64로 버전이며, 두 번째는 첫 번째 없음 (일부 테스트 기준)

    내 생각 엔 답이 없다는 것입니다 인증과 관련이없는 응용 프로그램 토큰

답변

0

응용 프로그램 토큰 및 비밀 토큰은 실제로 사전 정렬 된 사용자 인증과 관련되어 있지 않습니다. 애플리케이션과 연결되어있어 OAuth에서 사용되어 사용자가 OAuth 워크 플로우를 통과 할 때 애플리케이션이 무엇인지 보장합니다. 사용자가 인증되면 앱은 실제로 요청을 인증하는 데 사용되는 인증 토큰을 검색 할 수 있습니다.

실제로 찾고있는 것은 일부 API 제공 업체가 생성하도록 허용하는 "무기명 토큰"을 검색하는 방법입니다. 이렇게하면 기본적으로 "pre-OAuth"를 수행하고 전체 워크 플로우를 거치지 않고 인증 토큰을 얻을 수 있습니다. 불행히도 우리는 (아직) 그 중 하나가 아니기 때문에 일반 old HTTP Basic과 사용자 이름 및 암호로 인증해야합니다.

약간 덜 복잡한 방법을 원한다면 필요한 데이터 집합에 필요한 권한 만 부여하는 "봇"계정을 등록하는 것이 좋습니다. 그렇다면 최소한 일반 사용자 자격 증명을 귀하의 구성으로 굽지는 않을 것입니다. 그러나 우리가 무기 토큰을 가지고있다하더라도, 당신은 어딘가에 그것들을 당신의 설정에 넣을 것입니다.

이 더 구체적인 질문에 대답하려면

  1. 아니, 그 다음 하나는 그렇지 않은하는 베어러 토큰해야하기 때문.
  2. X-App-Token은 응용 프로그램 토큰이지만 Authorization 헤더는 Base64로 인코딩 된 username:password입니다. 이 경우 후자는 요청이 앱에서 온 것으로 식별하는 추가 헤더 일뿐입니다.

문서에 대한 의견을 보내 주셔서 감사합니다. 문제를 해결하고 더 간단하게하려고합니다. 오타를 확실히 수정 해 드리겠습니다.