model

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 16, 2025 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultScopeToClaims = map[string]ClaimRules{
	"profile": {
		Userinfo: map[string]*ClaimObject{
			"name":               nil,
			"family_name":        nil,
			"given_name":         nil,
			"middle_name":        nil,
			"nickname":           nil,
			"preferred_username": nil,
			"profile":            nil,
			"picture":            nil,
			"website":            nil,
			"gender":             nil,
			"birthdate":          nil,
			"zoneinfo":           nil,
			"locale":             nil,
			"updated_at":         nil,
		},
	},
	"email": {
		Userinfo: map[string]*ClaimObject{
			"email":          nil,
			"email_verified": nil,
		},
	},
	"address": {
		Userinfo: map[string]*ClaimObject{
			"address": nil,
		},
	},
	"phone": {
		Userinfo: map[string]*ClaimObject{
			"phone_number":          nil,
			"phone_number_verified": nil,
		},
	},
}

https://openid.net/specs/openid-connect-core-1_0.html#ScopeClaims

Functions

func ClearAuthorizationParameters added in v0.1.0

func ClearAuthorizationParameters(meta *oppb.ClientMeta, dst *oppb.AuthorizationParameters)

func GetAuthorizationCodeCollectionName added in v0.1.0

func GetAuthorizationCodeCollectionName(issuerId string) string

func GetClientCollectionName added in v0.1.0

func GetClientCollectionName(issuerId string) string

func GetIssuerCollectionName added in v0.1.0

func GetIssuerCollectionName() string

func GetPushedAuthorizationCollectionName added in v0.1.0

func GetPushedAuthorizationCollectionName(issuerId, clientId string) string

func GetRequestCollectionName added in v0.1.0

func GetRequestCollectionName(issuerId string) string

func GetSessionCollectionName added in v0.1.0

func GetSessionCollectionName(issuerId string) string

func GetSessionGroupCollectionName added in v0.1.0

func GetSessionGroupCollectionName(issuerId string) string

func GetTokenIdentiferCollectionName added in v0.1.0

func GetTokenIdentiferCollectionName(issuerId string) string

func GetVersion added in v0.1.0

func GetVersion() string

func OverrideAuthorizationParameters added in v0.1.0

func OverrideAuthorizationParameters(
	client *Client,
	dst *oppb.AuthorizationParameters,
	src AuthorizationParametersInterface)

Types

type AuthorizationCode

type AuthorizationCode struct {
	CreateAt time.Time
	Details  AuthorizationCodeDetails
	ExpireAt time.Time
}

func (*AuthorizationCode) ExpireAtUnix

func (ac *AuthorizationCode) ExpireAtUnix(_ context.Context) int64

func (*AuthorizationCode) Path

type AuthorizationCodeDetails

type AuthorizationCodeDetails struct {
	Code       string
	Authorized Authorized
	IsUsed     bool
}

type AuthorizationParametersInterface added in v0.1.0

type AuthorizationParametersInterface interface {
	GetScopes() []string
	GetResponseType() string
	GetClientId() string
	GetRedirectUri() string
	GetState() string
	GetResponseMode() string
	GetNonce() string
	GetDisplay() string
	GetPrompts() []string
	GetMaxAge() int32
	GetUiLocales() []string
	GetIdTokenHint() string
	GetLoginHint() string
	GetAcrValues() []string
	GetClaimsLocales() []string
	GetClaims() string
	GetCodeChallenge() string
	GetCodeChallengeMethod() string
	GetRequest() string
	GetRequestUri() string
	GetIsPar() bool
	GetParKey() string
}

type Authorized

type Authorized struct {
	AuthTime  time.Time
	Claims    string
	Request   RequestDetails
	SessionId string
	Subject   string // 認証時に設定するパラメータ
}

type ClaimObject

type ClaimObject struct {
	Essential bool        `json:"essential"`
	Value     interface{} `json:"value"`
	Values    []string    `json:"values"`
}

type ClaimRules

type ClaimRules struct {
	Userinfo map[string]*ClaimObject `json:"userinfo"`
	IdToken  map[string]*ClaimObject `json:"id_token"`
}

func MakeClaimRulesFromDefaultScope

func MakeClaimRulesFromDefaultScope(scopes []string) *ClaimRules

func NewAcrClaimRules

func NewAcrClaimRules(acrValues []string) *ClaimRules

func NewClaimRules

func NewClaimRules() *ClaimRules

func (*ClaimRules) Append

func (c *ClaimRules) Append(o *ClaimRules)

type Client

type Client struct {
	Identity   *oppb.ClientIdentity
	Issuer     *oppb.CommonKey
	Meta       *oppb.ClientMeta
	Attribute  *oppb.ClientAttribute
	Extensions *oppb.ClientExtensions
}

func MakeDefaultClient

func MakeDefaultClient(iss *Issuer, clientId string, sessionGroupId string, now time.Time) *Client

func (*Client) GetKeyfunc

func (c *Client) GetKeyfunc(ctx context.Context) jwt.Keyfunc

get key for parsing jwt

func (*Client) Path

func (c *Client) Path(_ context.Context) string

type Issuer

type Issuer struct {
	Key       *oppb.CommonKey
	Meta      *oppb.IssuerMeta
	Secret    *oppb.IssuerSecret
	Attribute *oppb.IssuerAttribute
	Resources *oppb.IssuerResources
}

func (*Issuer) Path

func (i *Issuer) Path(_ context.Context) string

type Key

type Key struct {
	CreateAt      time.Time
	Key           *oppb.CommonKey
	Issuer        *oppb.CommonKey
	KeyType       string
	SerializedKey []byte
}

func (*Key) Path

func (k *Key) Path(_ context.Context) string

type ProviderCallbacks added in v0.1.0

type ProviderCallbacks interface {
	DeleteTokensWithRequetId(ctx context.Context, issuerId, requestId string) error
	DeleteTokensWithSessionId(ctx context.Context, issuerId, sessionId string) error
}

type PushedAuthorization

type PushedAuthorization struct {
	Client   *Client
	Params   *oppb.AuthorizationParameters
	CreateAt time.Time
	ExpireAt time.Time
}

func (*PushedAuthorization) Path

type Request

type Request struct {
	CreateAt time.Time
	Details  RequestDetails
	ExpireAt time.Time
}

func NewRequest

func NewRequest(
	id string,
	issuer string,
	client *Client,
	authParam *oppb.AuthorizationParameters,
	now time.Time) *Request

func (Request) ExpireAtUnix

func (r Request) ExpireAtUnix(_ context.Context) int64

func (Request) Path

func (r Request) Path(_ context.Context) string

type RequestDetails

type RequestDetails struct {
	Key           *oppb.CommonKey
	Client        *Client
	AuthParams    *oppb.AuthorizationParameters
	Issuer        string
	RequestClaims []byte
}

type Session

type Session struct {
	CreateAt time.Time
	Details  SessionDetails
	ExpireAt time.Time
}

func NewSession

func NewSession(sg *SessionGroup, iss *Issuer, subject string, sessionId string, authTime time.Time) *Session

func (Session) ExpireAtUnix

func (s Session) ExpireAtUnix(_ context.Context) int64

func (Session) Path

func (s Session) Path(_ context.Context) string

type SessionDetails

type SessionDetails struct {
	Key          *oppb.CommonKey
	Issuer       *oppb.CommonKey
	SessionGroup SessionGroup
	Meta         *oppb.SessonMeta
}

type SessionGroup

type SessionGroup struct {
	Key       *oppb.CommonKey
	Issuer    *oppb.CommonKey
	Attribute *oppb.SessionGroupAttribute
}

func (*SessionGroup) Path

func (s *SessionGroup) Path(_ context.Context) string

type TokenIdentifier

type TokenIdentifier struct {
	CreateAt  time.Time
	Details   TokenIdentifierDetails
	ExpireAt  time.Time
	RequestId string // delete key
	SessionId string // delete key
}

func (TokenIdentifier) ExpireAtUnix

func (t TokenIdentifier) ExpireAtUnix(_ context.Context) int64

func (TokenIdentifier) Path

type TokenIdentifierDetails

type TokenIdentifierDetails struct {
	Authorized           Authorized
	Identifier           string
	Type                 TokenType
	TlsClientCertificate string
}

type TokenType

type TokenType string
const (
	TokenTypeIdToken      TokenType = "id"
	TokenTypeAccessToken  TokenType = "access"
	TokenTypeRefreshToken TokenType = "refresh"
)

Jump to

Keyboard shortcuts

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