2016-10-22 5 views
1

http REST API를 사용하여 실제로 구현 된 일부 서비스의 대안으로 RPC를 실험하고있었습니다. 이 서비스는 실제로 공개되지 않으며 RPC를 사용하는 다른 서비스에 의해서만 사용되기 때문에 더 이해할 수 있습니다.golang JSON RPC authorization

RPC 인증 모범 사례에 관한 힌트를 찾고 있습니다. 따라야 할 방법이 확실하지 않으므로.

난 내가 노출 된 절차의 일부 권한을 부여 할 수 있습니다 공인 서비스

  • 만 익숙해 있는지에 RPC을 어떻게이

    • 에 대한 golang을 사용하고

    Thx

  • 답변

    2

    위와 유사한 방식으로 승인을 처리 할 수 ​​있습니다. REST 서비스의 승인에.

    JSON 웹 토큰 (JWT)은 널리 사용되는 인증 방법입니다. JWT의 데모 및 개념 개요는 jwt.io입니다. 요약하면 JWT는 서명 된 JSON 객체이며 문자열로 인코딩됩니다. JSON 객체는 클라이언트의 권한에 대해 임의의 수의 임의의 "클레임"을 만들 수 있습니다.

    서비스가 개인 키를 사용하여 JWT에 서명하고이를 인증하는 동안 클라이언트에 전달합니다. 클라이언트의 권한을 확인하는 JSON-RPC 메소드 (API 키, 사용자 이름 암호 등). 그런 다음 보호 된 메소드는 JWT가 매개 변수 중 하나 인 JWT를 요구할 수 있습니다. JWT가 검증되고 올바른 클레임이있는 경우 정상 기능을 수행하고 그렇지 않으면 오류를 리턴합니다.

    github.com/dgrijalva/jwt-go 패키지를 살펴 보는 것이 좋습니다. JWT 발급 및 확인 방법을 제공합니다.

    +0

    서비스를 인증하고 해당 인증과 관련된 소유권 주장이 포함 된 JWT를 RPC 요청과 함께 매개 변수로 전달하고 다른 인증 확인에 사용하는 것보다 [service-identity-provider] 서비스를 구현하는 것이 좋습니다 요청의 측면. 내가 맞습니까? – Gavello