Documentation
¶
Overview ¶
Package authn provides AuthN API over HTTP(S)
- Copyright (c) 2018-2025, NVIDIA CORPORATION. All rights reserved.
Package authn provides AuthN API over HTTP(S)
- Copyright (c) 2018-2026, NVIDIA CORPORATION. All rights reserved.
Package authn provides AuthN API over HTTP(S)
- Copyright (c) 2018-2025, NVIDIA CORPORATION. All rights reserved.
Package authn provides AuthN API over HTTP(S)
- Copyright (c) 2018-2026, NVIDIA CORPORATION. All rights reserved.
Package authn provides AuthN API over HTTP(S)
- Copyright (c) 2025-2026, NVIDIA CORPORATION. All rights reserved.
Index ¶
- Constants
- func AddRole(bp api.BaseParams, roleSpec *Role) error
- func AddUser(bp api.BaseParams, newUser *User) error
- func DeleteRole(bp api.BaseParams, role string) error
- func DeleteUser(bp api.BaseParams, userID string) error
- func GetJWKS(bp api.BaseParams) (*json.RawMessage, error)
- func GetPublicKey(bp api.BaseParams) (string, error)
- func LoadToken(tokenFile string) (string, error)
- func ParseExternalURL(raw string) (*url.URL, error)
- func RegisterCluster(bp api.BaseParams, cluSpec CluACL) error
- func RevokeToken(bp api.BaseParams, token string) error
- func RotateKey(bp api.BaseParams) error
- func SetConfig(bp api.BaseParams, conf *ConfigToUpdate) error
- func UnregisterCluster(bp api.BaseParams, spec CluACL) error
- func UpdateCluster(bp api.BaseParams, cluSpec CluACL) error
- func UpdateRole(bp api.BaseParams, roleSpec *Role) error
- func UpdateUser(bp api.BaseParams, user *User) error
- type BckACL
- type CluACL
- type Config
- type ConfigToUpdate
- type DatabaseConf
- type HTTPConf
- type LogConf
- type LoginMsg
- type NetConf
- type OIDCConfiguration
- type PubKeyMsg
- type RegisteredClusters
- type Role
- type ServerConf
- type ServerConfToSet
- type SigningKeyConf
- type TimeoutConf
- type TokenList
- type TokenMsg
- type User
Constants ¶
const ( SigningMethodHS256 = "HS256" SigningMethodRS256 = "RS256" )
const (
AdminRole = "Admin"
)
const (
MinAuthExpiration = cos.Duration(time.Minute) // minimum JWT lifetime
)
Constraints
const ( // SigningKeyModeExternal signals that the signing key pair is managed outside this process // (e.g. mounted from a secret manager or HSM). Auto-generation and API-driven // rotation are disabled; a missing key file is a fatal configuration error. SigningKeyModeExternal = "external" )
Signing key management modes
Variables ¶
This section is empty.
Functions ¶
func DeleteRole ¶
func DeleteRole(bp api.BaseParams, role string) error
func DeleteUser ¶
func DeleteUser(bp api.BaseParams, userID string) error
func GetJWKS ¶ added in v1.4.2
func GetJWKS(bp api.BaseParams) (*json.RawMessage, error)
GetJWKS returns the raw JSON from the JWKS endpoint While it may be useful to return the parsed jwk.Set here, this avoids requiring all clients (including CLI) to include the jwx library in dependencies
func GetPublicKey ¶ added in v1.4.3
func GetPublicKey(bp api.BaseParams) (string, error)
GetPublicKey returns the public key used by the authN signer when using asymmetric key pairs (e.g. RSA)
func LoadToken ¶
LoadToken retrieves the authentication token from the specified tokenFile, environment variables, or default location (CLI config).
func RegisterCluster ¶
func RegisterCluster(bp api.BaseParams, cluSpec CluACL) error
func RevokeToken ¶
func RevokeToken(bp api.BaseParams, token string) error
func RotateKey ¶ added in v1.4.3
func RotateKey(bp api.BaseParams) error
RotateKey triggers key rotation when using asymmetric keys.
func SetConfig ¶
func SetConfig(bp api.BaseParams, conf *ConfigToUpdate) error
func UnregisterCluster ¶
func UnregisterCluster(bp api.BaseParams, spec CluACL) error
func UpdateCluster ¶
func UpdateCluster(bp api.BaseParams, cluSpec CluACL) error
func UpdateRole ¶
func UpdateRole(bp api.BaseParams, roleSpec *Role) error
func UpdateUser ¶
func UpdateUser(bp api.BaseParams, user *User) error
Types ¶
type BckACL ¶
type BckACL struct {
Bck cmn.Bck `json:"bck"`
Access apc.AccessAttrs `json:"perm,string"`
}
type CluACL ¶
type CluACL struct {
ID string `json:"id"`
Alias string `json:"alias,omitempty"`
URLs []string `json:"urls,omitempty"`
Access apc.AccessAttrs `json:"perm,string,omitempty"`
}
func GetRegisteredClusters ¶
func GetRegisteredClusters(bp api.BaseParams, spec CluACL) ([]*CluACL, error)
type Config ¶
type Config struct {
Server ServerConf `json:"auth"`
Log LogConf `json:"log"`
Net NetConf `json:"net"`
Timeout TimeoutConf `json:"timeout"`
}
type ConfigToUpdate ¶
type ConfigToUpdate struct {
Server *ServerConfToSet `json:"auth"`
}
func (*ConfigToUpdate) Validate ¶ added in v1.4.3
func (cu *ConfigToUpdate) Validate() error
type DatabaseConf ¶ added in v1.4.3
type HTTPConf ¶
type LogConf ¶
type OIDCConfiguration ¶ added in v1.4.2
type OIDCConfiguration struct {
Issuer string `json:"issuer"`
TokenEndpoint string `json:"token_endpoint"`
UserinfoEndpoint string `json:"userinfo_endpoint,omitempty"`
JWKSURI string `json:"jwks_uri"`
IDTokenSigningAlgValuesSupported []string `json:"id_token_signing_alg_values_supported"`
}
OIDCConfiguration -- Partial implementation of OIDC spec: https://openid.net/specs/openid-connect-discovery-1_0.html
func GetOIDCConfig ¶ added in v1.4.2
func GetOIDCConfig(bp api.BaseParams) (*OIDCConfiguration, error)
func NewOIDCConfiguration ¶ added in v1.4.2
func NewOIDCConfiguration(base *url.URL) *OIDCConfiguration
type RegisteredClusters ¶
type Role ¶
type Role struct {
Name string `json:"name"`
Description string `json:"desc"`
ClusterACLs []*CluACL `json:"clusters"`
BucketACLs []*BckACL `json:"buckets"`
IsAdmin bool `json:"admin"`
}
func GetAllRoles ¶
func GetAllRoles(bp api.BaseParams) ([]*Role, error)
type ServerConf ¶
type ServerConf struct {
Secret string `json:"secret"`
// Default lifetime for issued JWT
Expire cos.Duration `json:"expiration_time"`
// Max JWT lifetime
MaxTokenAge cos.Duration `json:"max_token_age"`
// Only used for validating signing key public key against AIS clusters
PubKey *string `json:"public_key"`
// Deprecated: use signing_key.bits instead.
RSAKeyBits int `json:"rsa_key_bits,omitempty"`
// Config for key signing -- currently only RSA is supported
SigningKey SigningKeyConf `json:"signing_key"`
// Config for authN database
DBConf DatabaseConf `json:"db"`
// contains filtered or unexported fields
}
func (*ServerConf) Validate ¶ added in v1.4.3
func (c *ServerConf) Validate() error
type ServerConfToSet ¶ added in v1.3.21
type SigningKeyConf ¶ added in v1.4.5
type TimeoutConf ¶
TimeoutConf sets the default timeout for the HTTP client used by the auth manager
func (*TimeoutConf) Validate ¶ added in v1.4.3
func (c *TimeoutConf) Validate() error
type TokenMsg ¶
type TokenMsg struct {
Token string `json:"token"`
}
func LoginUser ¶
func LoginUser(bp api.BaseParams, userID, pass string, expire *time.Duration) (token *TokenMsg, err error)
Authorize a user and return a user token in case of success. The token expires in `expire` time. If `expire` is `nil` the expiration time is set by AuthN (default AuthN expiration time is 24 hours)