Defines a gNOI protocol for an Authenticate API.
| RPC | Purpose |
|---|---|
| Authenticate | Validate credentials and provide a JWT access token. |
| GetAccessToken | Accept a valid refresh token and generate a new access token. |
| ListRoles | List all available roles. |
syntax = "proto3";
package auth;
service Auth {
// Authenticate will validate user credentials and provides access token in response
rpc Authenticate (AuthenticateRequest) returns (AuthenticateResponse) {}
// GetAccessToken will accept a valid refresh token and generate a new access token
rpc GetAccessToken (TokenRequest) returns (TokenResponse) {}
// ListRoles lists all the available roles in the system
rpc ListRoles (ListRolesRequest) returns (ListRolesResponse) {};
}
message AuthenticateRequest {
// user credentials
string username = 1;
string password = 2;
}
message AuthenticateResponse {
// JWT access token
string access_token = 1;
// JWT refresh token
string refresh_token = 2;
}
message TokenRequest {
// JWT refresh token
string refresh_token = 1;
}
message TokenResponse {
// JWT access token
string access_token = 1;
}
message ListRolesRequest {
}
//ListRolesResponse returns information about all roles available in the system
message ListRolesResponse {
repeated RoleInfo role_info = 1;
}
//RoleInfo contains the role specific information like role name, type and description
message RoleInfo {
string role_name = 1;
enum RoleType {
UNSPECIFIED = 0;
SYSTEM_DEFINED = 1;
}
RoleType role_type = 2;
string description = 3;
}