질문 : REST API / 웹 서비스 보안을위한 모범 사례 [닫힌]
REST API 또는 서비스를 설계 할 때 보안 (인증, 권한 부여, ID 관리)을 처리하기 위해 확립 된 모범 사례가 있습니까?
SOAP API를 빌드 할 때 WS-Security를 가이드로 사용하고 주제에 대한 많은 문헌이 있습니다. REST 엔드 포인트 보안에 대한 정보가 적습니다.
REST가 WS- *와 유사한 사양을 의도적으로 가지고 있지 않다는 것을 이해하지만 모범 사례 또는 권장 패턴이 나타났기를 바랍니다.
관련 문서에 대한 모든 토론이나 링크는 대단히 감사하겠습니다. 중요한 경우 .NET Framework v3.5를 사용하여 빌드 된 REST API / 서비스에 대해 POX / JSON 직렬화 된 메시지와 함께 WCF를 사용합니다.
답변
Tweakt가 말했듯이 Amazon S3는 작업하기에 좋은 모델입니다. 요청 서명에는 실수 및 악의적 인 요청 재생을 방지하는 데 도움이되는 몇 가지 기능 (예 : 타임 스탬프 통합)이 있습니다.
HTTP Basic의 좋은 점은 거의 모든 HTTP 라이브러리가이를 지원한다는 것입니다. 물론 인터넷을 통해 일반 텍스트 암호를 보내는 것은 거의 보편적으로 나쁜 일이기 때문에이 경우 SSL이 필요합니다. 호출자가 자격 증명이 필요하다는 것을 이미 알고 있더라도 Digest는 nonce 값을 교환하기 위해 추가 왕복이 필요하기 때문에 SSL을 사용할 때 기본이 Digest보다 선호됩니다. Basic을 사용하면 호출자가 처음에 자격 증명을 간단히 보냅니다.
클라이언트의 ID가 설정되면 인증은 실제로 구현 문제 일뿐입니다. 그러나 기존 권한 부여 모델을 사용하여 다른 구성 요소에 권한을 위임 할 수 있습니다. 여기서도 Basic에 대한 좋은 점은 서버가 클라이언트 암호의 일반 텍스트 복사본으로 끝나고 필요에 따라 인프라 내의 다른 구성 요소에 간단히 전달할 수 있다는 것입니다.
출처 : https://stackoverflow.com/questions/7551/best-practices-for-securing-a-rest-api-web-service
'개발관련 > other' 카테고리의 다른 글
Sublime에서 변수의 모든 인스턴스를 선택하고 변수 이름을 편집하는 방법 (0) | 2021.12.06 |
---|---|
IntelliJ에서 jar를 올바르게 빌드하는 방법 (0) | 2021.12.04 |
[iOS 7] @import vs #import (0) | 2021.12.03 |
Rake 작업 내에서 Rake 작업을 실행하는 방법 (0) | 2021.12.03 |
Ruby : 특정 버전의 Ruby gem을 설치하는 방법 (0) | 2021.11.30 |