파이어베이스 커스텀 토큰을 이용한 데이터베이스 접근권한 설정하기


파이어베이스 데이터베이스에 조건에 따라 접근권한을 다르게 하려고 커스텀 토큰을 이용하게 되었다.
커스텀 토큰을 만들고 파이어베이스에 규칙을 적용한 다음 테스트를 해보려고 했는데 REST API에 JWT토큰을 아무리 넣어봐도 작동하지 않았다.

?auth=CUSTOM-TOKEN 파라미터로도 넣어 보았고,
Authorization: bearer CUSTOM-TOKEN 헤더로도 넣어 보았지만

"error" : "Permission denied"
"error" : "Expected an ID token, but was given a custom token." 같은 오류만 보여줄 뿐이었다.

REST에서 커스텀 토큰을 사용할 방법을 한참 찾다가 FireBase Rest with auth query param not working(http://stackoverflow.com/questions/39117237/firebase-rest-with-auth-query-param-not-working)이라는 글에서 답을 찾았다.

REST API 에서는 커스텀 토큰을 사용할 수 없다.

REST에서 커스텀 클레임을 사용하기 위해서는, auth_variable_override 파라미터를 사용해야 한다.
{"uid":"6LiF16Dm0hNB9XO61UR1KM5Jeun2"}
위의 uid를 사용한다면 아래처럼 요청해야 한다.
$ curl "https://dbname.firebaseio.com/test.json?access_token=&auth_variable_override=%7B%22uid%22%3A%226LiF16Dm0hNB9XO61UR1KM5Jeun2%22%7D" {" 1213314":{"alanisawesome":"Alan Turing"}}


결국 파이어베이스의 커스텀 토큰을 테스트하려면 파이어베이스 라이브러리를 사용해야 한다.
그래서 파이어베이스 커스텀 토큰 테스트를 위한 예제 프로젝트를 node.js로 간단히 만들었다.
아래 예제를 따라 하면 파이어베이스의 커스텀 토큰으로 데이터 베이스 접근 권한을 제어하는 흐름을 볼 수 있다.

커스텀 토큰으로 데이터 베이스 접근 권한 설정하기(https://github.com/dorajistyle/firebase-custom-token-sample/blob/master/readme-ko.md)


참고

https://firebase.google.com/docs/admin/setup
https://firebase.google.com/docs/auth/cpp/custom-auth
https://firebase.google.com/docs/auth/admin/create-custom-tokens
https://firebase.google.com/docs/reference/security/database
http://stackoverflow.com/questions/37426093/using-custom-tokens-to-make-rest-requests-to-fb-db-as-an-admin
http://stackoverflow.com/questions/39117237/firebase-rest-with-auth-query-param-not-working
https://jwt.io/



by


Tags : , , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

OpenSSL 라이브러리에서 서버에 저장된 중요 메모리 데이터가 노출되는 HeartBleed 보안 업데이트 방법


한국 인터넷침해대응센터(http://krcert.or.kr)의 보안공지에 아래 내용의 OpenSSL 취약점(HeartBleed) 대응 방안 권고가 올라와 있다.

통신 구간 암호화를 위해 많이 사용하는 OpenSSL 라이브러리에서 서버에 저장된 중요 메모리 데이터가 노출되는 HeartBleed라고 명명된 심각한 버그가 발견되어 시스템 및 소프트웨어에 대한 신속한 취약점 조치를 권고

Yahoo, Google, Facebook, Instagram, Tumblr, Pinterest, Github, Dropbox, AWS 등 OpenSSL HeartBleed취약점에 영향을 받은 서비스가 많은데, 서버 관리자 입장에선 머리가 쭈뼛했겠다.^^;
혹시 운영 중인 서버가 아직 OpenSSL HeartBleed 보안 업데이트가 안 되었다면, 지금이라도 잽싸게 업데이트하자!

  1. 버전 확인

    sudo openssl version -a
    built on 날짜가 2014년 4월 7일 이전이면 취약하므로 시스템 보안업데이트를 진행한다.
  2. 보안 업데이트 설치


    Arch 계열

    pacman -Syu

    Fedora 계열

    yum update

    Ubuntu 계열

    sudo apt-get update
    sudo apt-get dist-upgrade
  3. 재시동

    sudo reboot
  4. 버전 재확인

    sudo openssl version -a
    built on 날짜가 2014년 4월 7일 이후인지 다시 확인한다.
    예) OpenSSL 1.0.1g 7 Apr 2014
    built on: Mon Apr 7 22:24:40 CEST 2014

OpenSSL Heartbleed 보안 업데이트 참고 자료



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!