auth

package
v0.0.0-...-7066845 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 16, 2024 License: MIT Imports: 9 Imported by: 0

README

认证与授权

认证

TODO

授权

授权是控制某个用户能看到哪些资源、进行哪些操作的过程。

最简单的授权实现方式是 访问控制列表(Access Control List, ACL) 。它是一个每行的形式都类似于 A, B, C 的规则表,每一行的含义是 " Subject A is permitted to do Action B on Object C " ,即 “主体 A 可以对客体 B 执行 C 操作”。我们基于 casbin 库来实现 ACL 授权。

术语

authorization enforcement —— 授权执行

policy management —— 策略管理

安装 casbin 库:

$ go get github.com/casbin/casbin/v2

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// CA
	CAFile = configFile("ca.pem")

	// 服务端
	ServerCertFile = configFile("server.pem")
	ServerKeyFile  = configFile("server-key.pem")

	// 超级用户
	RootClientCertFile = configFile("root-client.pem")
	RootClientKeyFile  = configFile("root-client-key.pem")

	// 普通用户
	OrdinaryClientCertFile = configFile("ordinary-client.pem")
	OrdinaryClientKeyFile  = configFile("ordinary-client-key.pem")

	// 只读用户
	ReadOnlyClientCertFile = configFile("readonly-client.pem")
	ReadOnlyClientKeyFile  = configFile("readonly-client-key.pem")

	// 授权时使用的配置和策略文件
	ACLModelFile  = configFile("model.conf")
	ACLPolicyFile = configFile("policy.csv")
)

Functions

func SetupTLSConfig

func SetupTLSConfig(cfg TLSConfig) (tlsConfig *tls.Config, err error)

Types

type Authorizer

type Authorizer struct {
	// contains filtered or unexported fields
}

func NewAuthorizer

func NewAuthorizer(model, policy string) *Authorizer

参数 model 是使用的访问控制模型的 conf 文件的路径 参数 policy 是定义了具体的策略的文件的路径

func (*Authorizer) Authorize

func (a *Authorizer) Authorize(subject, object, action string) error

如果 subject 可以对 object 执行 action 操作则返回空

type TLSConfig

type TLSConfig struct {
	// 值为真表示是服务端 TLS 配置
	// 值为假表示是客户端 TLS 配置
	IsServerConfig bool

	// 是否启用双向 TLS 认证
	EnableMutualTLS bool

	CertFile   string
	KeyFile    string
	CAFile     string
	ServerName string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL