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 TimeoutConf
- type TokenList
- type TokenMsg
- type User
Constants ¶
const ( SigningMethodHS256 = "HS256" SigningMethodRS256 = "RS256" )
const (
AdminRole = "Admin"
)
const ( // ForeverTokenTime is a duration of 20 years, used to define, effectively, no expiration on tokens // Used when user-provided token expiration time is zero ForeverTokenTime = cos.Duration(20 * 365 * 24 * time.Hour) )
Defaults
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"`
// Determines when the secret or key expires
// Also used to determine max-age for client caches of JWKS
Expire cos.Duration `json:"expiration_time"`
// Only used for validating RSA public key against AIS clusters
PubKey *string `json:"public_key"`
// Size of RSA private key to generate
RSAKeyBits int `json:"rsa_key_bits"`
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 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)