From T3_KR_KNU
Contents
dCache에서 WebDav 프로토콜 및 마카롱 인증 사용하기
향후 GridFTP와 x507 그리드 인증을 대체하는 WebDav 프로토콜과 마카롱 인증에 대한 소개 문서입니다.
사전 작업
X509_USER_PROXY 변수가 있는지 확인하고 없다면 다음과 같이 만들어줍니다.
$ echo $X509_USER_PROXY $ export X509_USER_PROXY=/tmp/x509up_u`id -u $USER`
프록시를 생성합니다. 마카롱 토큰을 발급받기 위해서는 여러기지 인증을 사용할 수 있지만 일단 지금은 X509_USER_PROXY로 부터 마카롱 토큰을 발급받겠습니다.
$ voms-proxy-init --voms cms or $ voms-proxy-init --voms cms --valid 168:00 # 전송에 긴 시간이 소요될 것으로 예상이 된다면 프록시를 생성할때 유효기간을 충분히 늘려줘야 합니다.
마카롱 인증
권한
DOWNLOAD,UPLOAD,DELETE,MANAGE,LIST,READ_METADATA,UPDATE_METADATA
토큰의 유효기간
발급하는 토큰은 유효기간을 정할 수 있습니다. 오용을 방지하기 위해서 반드시 적절한 유효기간을 설정하기를 권장합니다.
ex) PT1H : 1시간 P14D : 14일
curl을 이용한 토큰 발급
curl -L --capath /etc/grid-security/certificates --cacert $X509_USER_PROXY -E $X509_USER_PROXY \ -X POST -d '{"caveats": ["activity:DOWNLOAD,LIST"], "validity": "PT1H"}' \ -H 'Content-Type: application/macaroon-request' \ https://cluster142.knu.ac.kr:2880/cms/store/user/{my_cern_id}/test/
{ "macaroon": "MDA0NmxvY2F0aW9uIE9wdGlvbmFsWy9wbm..............................................................", "uri": { "targetWithMacaroon": "https://cluster142.knu.ac.kr:2880/cms/store/user/dhhan/test/?authz=MDA0NmxvY2F0aW9uIE9wdGlvbm.....................................................", "baseWithMacaroon": "https://cluster142.knu.ac.kr:2880/?authz=MDA0NmxvY2F0aW9uIE9wdGlvbmFsWy9wbm..............................................................", "target": "https://cluster142.knu.ac.kr:2880/cms/store/user/{my_cern_id}/test/", "base": "https://cluster142.knu.ac.kr:2880/" } }
- https://cluster142.knu.ac.kr:2880/cms/store/user/{my_cern_id}/test/ 경로에 DOWNLOAD,LIST를 할 수 있는 1시간 짜리 마카롱 토큰이 생성되었습니다.
- 발급된 마카롱 토큰은 "MDA0NmxvY2F0aW9uIE9wdGlvbmFsWy9wbm.............................................................." 입니다.
get_macaroon을 이용한 토큰 발급
위의 curl을 이용한 예제와 동일한 조건의 토큰을 발급합니다.
$ get-macaroon --url https://cluster142.knu.ac.kr:2880/cms/store/user/{CERN_ID}/test/ --proxy --permissions DOWNLOAD,LIST --duration PT1H Macaroon viewer: /u/cms/bin/view-macaroon
=== View deserialized macaroon === location Optional.empty identifier t30MLP8h cid iid:VOrX6iIR cid id:?????;????,?????;{KNU_ID} cid before:2021-06-22T07:40:15.030Z cid root:/pnfs/knu.ac.kr/data cid root:/cms/store/user/{CERN_ID}/test/ cid activity:DOWNLOAD,LIST signature 32e877749bbb88a9a3e5812f42abab1c54f8ebac0c33c90dca02bf882295f96c === End deserialized macaroon === https://cluster142.knu.ac.kr:2880/?authz=MDAxY2xvY2F0aW9uIE9wdGlvbmFsLmVtcHR5C.........
접근할 수 있는 IP를 제한하는 조건을 추가할 수도 있습니다.
$ get-macaroon --url https://cluster142.knu.ac.kr:2880/cms/store/user/{CERN_ID}/test/ --proxy --permissions DOWNLOAD,LIST --duration PT1H --ip 145.100.0.0/16 Macaroon viewer: /u/cms/bin/view-macaroon
- 좀더 자세한 내용은 아래 링크를 참고하시기 바랍니다.
- https://github.com/sara-nl/GridScripts
- https://github.com/sara-nl/GridScripts/blob/master/get-macaroon
view_macaroon을 이용한 토큰 정보 확인
- 좀더 자세한 내용은 아래 링크를 참고하시기 바랍니다.
- https://github.com/sara-nl/GridScripts/blob/master/view-macaroon
WebDav 프로토콜
WebDav 프로토콜 클라이언트 프로그램
이름 | 지원 권한 | 비고 |
---|---|---|
웹브라우저 | list, download | firefox, chrome, etc |
curl | list, download, upload, del | |
rclone | list, download, upload, del |