청기와랩 블로그
API 인증
2014년 10월 10일 by 청기와랩
(지난편 Simple! Simple! Simple!에 이어서...)
그럼 청기와랩의 SMS 오픈API에서 인증은 어떻게 할까요?
그냥 HTTP Basic Auth (RFC 2617) 을 사용 합니다.
간단하죠?
뭔가 어려워 보이지만 사실 간단한 겁니다.
사내 인트라넷 쓰다가 특정 페이지에 접근 하면 아래 스크린샷 처럼 웹브라우져에서 인증 다이얼로그 뜨는거 있죠?
이런거...
HTTP 표준에 의거하여 웹서버가 Status 401 을 리턴하면 브라우져가 띄우는 창인데요. 이게 HTTP Basic Auth 입니다.
지금 보신 스크린샷은 사실 청기와랩의 Open API에서 사용하는 URI 를 사파리 브라우져에 갖다 붙이면 볼수 있는 것입니다. 보시는 바와 같이 인증창이 뜹니다. 여러분이 등록하신 App ID와 그것의 API Key를 입력하시면 JSON 데이타를 웹 브라우져 로도 확인 하실 수 있습니다.
https://api.bluehouselab.com/smscenter/v1.0/result/발송ID 를 브라우져에 입력해서 확인 해 보세요. GET Method를 사용하는 청기와랩 SMS API의 다른 URI들도 이렇게 테스트 가능 합니다.
그냥 웹브라우져로도 테스트 가능한 API라니... 표준을 잘 따르고 있는것 맞죠? :-)
또 청기와랩의 RESTful API는 HTTPS (TLS) 를 이용하여 항상 암호화 되어 전송 되므로, 혹시 모를 네트워크 스푸핑 공격으로 부터 API Key를 도난 당할 염려가 없습니다. (단HTTPS 연결 초기화 과정에서 api.bluehouselab.com 이 CA 가 서명한 인증서를 사용하고 있는지 꼭 Verify 과정을 거치도록 해야 더 안전 합니다. 공사 현장이나 네트워크 접속 현장에서는 항상 안전이 우선입니다. ^^)
자 이렇게 웹표준이다 보니 HTTP Basic Auth를 지원하지 않는 HTTP Client 라이브러리는 없겠죠?
고객 여러분들이 사용하는 거의 대부분의 언어와 그 언어에서 사용할수 있는 표준 라이브러리에 포함되어 있는 HTTP 모듈은 모두 포함하고 있는 기능 입니다.
따라서 웹 표준을 잘 따르고 있는 청기와랩의 SMS API는 어떠한 프로그래밍 랭귀지를 사용하던 지, 어떠한 플랫폼/프레임워크를 사용하던지 간에 API 인증부구현을 위해 커스텀한 HTTP Client 구현이 필요 없이 표준으로 제공되는 기능들 만으로 쉽게 적용 가능 합니다.. (그냥 웹브라우져로도 사용 가능한데 뭐 이정도야~ =3)
이것이 청기와랩의 SMS API의 최대 특장점 입니다.
가령 C#의 경우도 .NET에 기본으로 제공 하는 NetworkCredential 클래스를 사용하여 App ID와 Key를 인증에 적용하실 수 있습니다.
Qt5로 작성된 C++ 예제의 경우 QNetworkAccessManager의 시그널 authenticationRequired 에 슬롯을 등록하셔서 적용 하실수 있습니다.
기타... C, Java, Node.js, Python, PHP, Ruby 예제 에서는 어떻게 HTTP Basic Auth를 적용 하고 있는지 지금 바로 청기와랩 GitHub 페이지에서 확인해 보세요~!
https://github.com/BlueHouseLab/sms-openapi
May the code be with you !
그럼 청기와랩의 SMS 오픈API에서 인증은 어떻게 할까요?
그냥 HTTP Basic Auth (RFC 2617) 을 사용 합니다.
간단하죠?
뭔가 어려워 보이지만 사실 간단한 겁니다.
사내 인트라넷 쓰다가 특정 페이지에 접근 하면 아래 스크린샷 처럼 웹브라우져에서 인증 다이얼로그 뜨는거 있죠?

HTTP 표준에 의거하여 웹서버가 Status 401 을 리턴하면 브라우져가 띄우는 창인데요. 이게 HTTP Basic Auth 입니다.
지금 보신 스크린샷은 사실 청기와랩의 Open API에서 사용하는 URI 를 사파리 브라우져에 갖다 붙이면 볼수 있는 것입니다. 보시는 바와 같이 인증창이 뜹니다. 여러분이 등록하신 App ID와 그것의 API Key를 입력하시면 JSON 데이타를 웹 브라우져 로도 확인 하실 수 있습니다.
https://api.bluehouselab.com/smscenter/v1.0/result/발송ID 를 브라우져에 입력해서 확인 해 보세요. GET Method를 사용하는 청기와랩 SMS API의 다른 URI들도 이렇게 테스트 가능 합니다.
그냥 웹브라우져로도 테스트 가능한 API라니... 표준을 잘 따르고 있는것 맞죠? :-)
또 청기와랩의 RESTful API는 HTTPS (TLS) 를 이용하여 항상 암호화 되어 전송 되므로, 혹시 모를 네트워크 스푸핑 공격으로 부터 API Key를 도난 당할 염려가 없습니다. (단HTTPS 연결 초기화 과정에서 api.bluehouselab.com 이 CA 가 서명한 인증서를 사용하고 있는지 꼭 Verify 과정을 거치도록 해야 더 안전 합니다. 공사 현장이나 네트워크 접속 현장에서는 항상 안전이 우선입니다. ^^)
자 이렇게 웹표준이다 보니 HTTP Basic Auth를 지원하지 않는 HTTP Client 라이브러리는 없겠죠?
고객 여러분들이 사용하는 거의 대부분의 언어와 그 언어에서 사용할수 있는 표준 라이브러리에 포함되어 있는 HTTP 모듈은 모두 포함하고 있는 기능 입니다.
따라서 웹 표준을 잘 따르고 있는 청기와랩의 SMS API는 어떠한 프로그래밍 랭귀지를 사용하던 지, 어떠한 플랫폼/프레임워크를 사용하던지 간에 API 인증부구현을 위해 커스텀한 HTTP Client 구현이 필요 없이 표준으로 제공되는 기능들 만으로 쉽게 적용 가능 합니다.. (그냥 웹브라우져로도 사용 가능한데 뭐 이정도야~ =3)
이것이 청기와랩의 SMS API의 최대 특장점 입니다.
가령 C#의 경우도 .NET에 기본으로 제공 하는 NetworkCredential 클래스를 사용하여 App ID와 Key를 인증에 적용하실 수 있습니다.
Qt5로 작성된 C++ 예제의 경우 QNetworkAccessManager의 시그널 authenticationRequired 에 슬롯을 등록하셔서 적용 하실수 있습니다.
기타... C, Java, Node.js, Python, PHP, Ruby 예제 에서는 어떻게 HTTP Basic Auth를 적용 하고 있는지 지금 바로 청기와랩 GitHub 페이지에서 확인해 보세요~!
https://github.com/BlueHouseLab/sms-openapi
May the code be with you !
sms openapi security