Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feature] Auth for REST API #261

Closed
powerkimhub opened this issue Jul 6, 2020 · 11 comments
Closed

[feature] Auth for REST API #261

powerkimhub opened this issue Jul 6, 2020 · 11 comments
Assignees

Comments

@powerkimhub
Copy link
Member

@powerkimhub powerkimhub self-assigned this Jul 6, 2020
@powerkimhub powerkimhub pinned this issue Feb 2, 2021
@powerkimhub
Copy link
Member Author

[Develop Guide]

  1. Mock Driver 기반으로 Spider 운영 환경 구축 및 시험
  1. Spider의 REST Server 구조 및 관련 source 위치 등 파악
  1. tumblebug 인증 메커니즘 참조
  • 가급적 바리스타 내부 프레임워크들이 동일한 인증 방법 사용할 수 있도록
  • 1차: tumblebug과 동일 방법 적용(현재는 가장 쉽고, 빠르게 적용할 수 있는 방법)으로 이슈 해결
  • 2차: 필요시 개선 제안 => 반영 여부 협의 => 적용 일정 수립 등
  • ref) Add and apply BasicAuth for all REST API resources cb-tumblebug#194
  1. Spider에 반영 개발 및 시험

@powerkimhub
Copy link
Member Author

@seokho-son

  1. tumblebug 인증 메커니즘 참조
    ref) Add and apply BasicAuth for all REST API resources cb-tumblebug#194

관련하여,

  • 위 RP이 최종 모습인가요?
  • 위 PR 참고하는 것이 바람직한가요?

@seokho-son
Copy link
Member

@powerkimhub CB-TB가 적용하고 있는 API 인증 방식은 Basic authentication 입니다. (참고: https://en.wikipedia.org/wiki/Basic_access_authentication) 해당 방식은 RFC 7617 표준에 명시된 내용이고 기본적인 인증이라서 스웨거, ECHO, 포스트맨 등 API 다루는 일반적인 도구 및 프레임워크들에서 쉽게 적용이 가능합니다.

  • 위 RP이 최종 모습인가요?
    : 최종 모습이 맞습니다. 해당 PR을 참고하여 피쳐를 추가하실 수 있습니다.

  • 위 PR 참고하는 것이 바람직한가요?
    : Basic authentication 은 개발 및 테스트 차원에서 활용 가능한 기본 인증 스킴입니다. Prod 환경에서 활용하는 것은 적합하지 않습니다.

    • 장점: 사용자 및 개발자 입장에서 api 해더만 추가하면 되므로 사용이 쉬움, id/pw가 인코딩되어 있으므로 직관적으로 드러나지는 않음.
    • 단점: 해더의 디코딩이 쉽게 가능하므로 보안성이 떨어짐.

    cloud-barista 가 개발 단계에 있는 오픈소스이므로, 현재는 최소한의 인증 절차를 제공하는 것이라 생각하시면 되겠습니다.
    향후, 인증 방식에 대한 변경 및 고도화는 필요한 부분입니다. 다만, cloud-barista의 사용이 더 활성화되고 prod 환경에 적용해가는 단계가 될 때 더 필요한 피쳐로 보입니다. (prod에 적용하고자 하는 기관을 통해 기여 받는 것도 방법)

@powerkimhub
Copy link
Member Author

@seokho-son

  • 상세한 답변 감사드립니다.
  • 현재 클라우드 바리스타 현황을 봤을 때, 최적일 듯합니다.
  • @engineer-pjin 참고하시기 바랍니다.

@engineer-pjin
Copy link

@powerkimhub , 내용 확인했습니다!
@seokho-son , 확인 감사합니다!

@powerkimhub powerkimhub unpinned this issue Apr 7, 2021
@powerkimhub powerkimhub pinned this issue May 18, 2021
@powerkimhub powerkimhub self-assigned this May 18, 2021
@powerkimhub
Copy link
Member Author

@jmleefree ??

@jmleefree
Copy link
Member

@powerkimhub
[개발 방향]

  1. setup.env 에 API_USERNAME, API_PASSWORD 추가 설정
    export API_USERNAME=
    export API_PASSWORD=
    위처럼 공백으로 설정되면 REST Auth 설정이 Disabled 되게 함
    기존의 모든 테스트 스크립트가 auth 검사를 수행하지 않고 있음(호환성을 위해서)

  2. CBSpiderRuntime.go 에 Basic Auth Middleware 추가 설정

  3. connect-config/9.mock-auth-conn-config.sh 추가

  4. full-test/9.mock-auth-test.sh 추가

  5. full-test/mock-auth_full_test.sh 추가

@jmleefree jmleefree self-assigned this Jun 14, 2021
@powerkimhub
Copy link
Member Author

@jmleefree

  1. CBSpiderRuntime.go 에 Basic Auth Middleware 추가 설정
  • Rest 전용인데 rest쪽에 추가 가능할까요?

@jmleefree
Copy link
Member

@powerkimhub
CBSpiderRuntime.go 에 추가한다는 것은 rest 에만 적용되는 것인데..
rest 쪽에 추가 가능하다는게 무슨 의미인지?

@powerkimhub
Copy link
Member Author

@jmleefree

  • 그러네요^^ 기억이...가물가물.
  • 그리하면 되겠어요.

@powerkimhub
Copy link
Member Author

@powerkimhub powerkimhub unpinned this issue Jun 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants