cURL을 사용하여 기본 HTTP 인증을 올바르게 정의하는 방법은 무엇입니까?
나는 Apigility ( Apigility docu-> REST Service Tutorial )를 배우고 cURL을 통해 기본 인증으로 POST 요청을 보내려고합니다.
$ curl -X POST -i -H "Content-Type: application/hal+json" -H "Authorization: Basic YXBpdXNlcjphcGlwd2Q=" http://apigilityhw.sandbox.loc/status
YXBpdXNlcjphcGlwd2Q=
내 자격 증명이있는 기본 64 인코딩 문자열입니다 apiuser:apipwd
. 자격 증명은 /data/htpasswd
( apiuser:$apr1$3J4cyqEw$WKga3rQMkxvnevMuBaekg/
)에 저장됩니다 .
다음과 같이 보입니다.
HTTP/1.1 401 Unauthorized
Server: nginx/1.4.7
Date: Mon, 22 Sep 2014 07:48:47 GMT
Content-Type: application/problem+json
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.5.12-1~dotdeb.1
WWW-Authenticate: Basic realm="api"
여기서 실수는 어디에 있습니까? 작동시키는 방법?
curl -u username:password http://
curl -u username http://
문서 페이지에서 :
-u, --user <사용자 : 암호>
서버 인증에 사용할 사용자 이름과 비밀번호를 지정합니다. -n, --netrc 및 --netrc-optional을 재정의합니다.
사용자 이름 만 지정하면 curl에서 암호를 입력하라는 메시지가 표시됩니다.
사용자 이름과 암호는 첫 번째 콜론에서 분리되므로이 옵션으로 사용자 이름에 콜론을 사용할 수 없습니다. 암호는 여전히 가능합니다.
Windows 기반 서버에서 Kerberos V5를 사용할 때 서버가 Kerberos 티켓을 성공적으로 획득하려면 사용자 이름에 Windows 도메인 이름을 포함해야합니다. 그렇지 않으면 초기 인증 핸드 셰이크가 실패 할 수 있습니다.
NTLM을 사용할 때 예를 들어 설정에 단일 도메인과 포리스트가있는 경우 도메인없이 사용자 이름을 사용자 이름으로 간단히 지정할 수 있습니다.
도메인 이름을 지정하려면 하위 로그온 이름 또는 UPN (사용자 계정 이름) 형식을 사용하십시오. 예를 들어, 각각 EXAMPLE \ user 및 user@example.com입니다.
Windows SSPI 지원 curl 바이너리를 사용하고 Kerberos V5, Negotiate, NTLM 또는 Digest 인증을 수행하는 경우 "-u :"옵션으로 단일 콜론을 지정하여 환경에서 사용자 이름과 비밀번호를 선택하도록 curl에 지시 할 수 있습니다. .
이 옵션을 여러 번 사용하면 마지막 옵션이 사용됩니다.
http://curl.haxx.se/docs/manpage.html#-u
--basic
기본값이므로 플래그 가 필요하지 않습니다 .
헤더로
AUTH=$(echo -ne "$BASIC_AUTH_USER:$BASIC_AUTH_PASSWORD" | base64 --wrap 0)
curl \
--header "Content-Type: application/json" \
--header "Authorization: Basic $AUTH" \
--request POST \
--data '{"key1":"value1", "key2":"value2"}' \
https://example.com/
OAuth 또는 기타 인증 서비스를 사용할 때 권한 헤더 대신 쿼리 문자열로 액세스 토큰을 보낼 수도 있습니다.
GET https://www.example.com/v1/users/1?access_token=abcdefghijklmnopqrstuvwxyz1234567890ABCD
'Programming' 카테고리의 다른 글
부울 배열을 정수 배열로 변환하는 방법 (0) | 2020.08.11 |
---|---|
두 좌표 사이의 거리를 계산하는 기능 (0) | 2020.08.11 |
Ruby : HTTP를 통해 multipart / form-data로 파일을 게시하는 방법은 무엇입니까? (0) | 2020.08.11 |
Bash의 $ PATH 변수에서 경로를 제거하는 가장 우아한 방법은 무엇입니까? (0) | 2020.08.11 |
루비에서 클래스와 Klass의 차이점은 무엇입니까? (0) | 2020.08.11 |