Skip to content

Implement Basic gRPC Security Layer in SDK (SSL/TLS + Token Header)Β #104

@thibaud-perrin

Description

@thibaud-perrin

πŸ“ Issue Description

Implement an initial security layer in the SDK for gRPC communication, both on the server and client (stub) sides. This security should be configurable and activatable via environment variables. The implementation should be inspired by the official gRPC documentation:
https://grpc.io/docs/guides/auth/#with-server-authentication-ssltls-and-a-custom-header-with-token

Specifically, the task involves adding SSL/TLS support and a mechanism for retrieving and sending a token via a custom header, on both the server and client sides within the SDK. Unit tests should also be created to cover this new security layer.

πŸš€ Objective

  • Add optional SSL/TLS encryption to gRPC server and client in the SDK.
  • Implement a mechanism to retrieve and send a token in a custom header for authentication.
  • Get metadata from the token to the identity service or equivalent
  • Make the security features configurable via environment variables.
  • Ensure comprehensive unit tests are written for these features.

πŸ’° Business Impact

Improving the security of our gRPC communications will help protect sensitive data, comply with best practices, and increase customer trust. This is a foundational step that enables further secure development and deployment of our services.

πŸ“ Task List

  • Analyze the gRPC documentation and existing SDK architecture
  • Implement SSL/TLS support for the server and client (stub)
  • Retrieve metadata from the token and add them in the instance
  • Add environment variable configuration to enable/disable security features
  • Implement token retrieval and custom header transmission on both sides
  • Write unit tests for SSL/TLS and token header mechanisms
  • Update SDK documentation to reflect new security options

Metadata

Metadata

Assignees

No one assigned

    Labels

    EnhancementDenotes improvements to existing features rather than new feature development.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions