Documentation ¶
Index ¶
Constants ¶
View Source
const ( Debug = "debug" Discharger = "discharger" V1 = "v1" )
Versions of the API that can be served.
Variables ¶
View Source
var ResourceFS embed.FS
ResourceFS contains embeded resource files (templates and static content).
Functions ¶
Types ¶
type HandlerCloser ¶
func NewServer ¶
func NewServer(params ServerParams, serveVersions ...string) (HandlerCloser, error)
NewServer returns a new handler that handles identity service requests and stores its data in the given database. The handler will serve the specified versions of the API.
type ServerParams ¶
type ServerParams struct { // MeetingStore holds the storage that will be used to store // rendezvous information. MeetingStore meeting.Store // ProviderDataStore holds the storeage that can be used by // identity providers to store data that is not associated with // an individual identity. ProviderDataStore store.ProviderDataStore // RootKeyStore holds the root key store that will be used to // store macaroon root keys within the identity server. RootKeyStore bakery.RootKeyStore // Store holds the identities store for the identity server. Store store.Store // AdminPassword holds the password for admin login. AdminPassword string // Key holds the keypair to use with the bakery service. Key *bakery.KeyPair // Location holds a URL representing the externally accessible // base URL of the service, without a trailing slash. Location string // PrivateAddr should hold a dialable address that will be used // for communication between identity servers. Note that this // should not contain a port. PrivateAddr string // IdentityProviders contains the set of identity providers that // should be initialised by the service. IdentityProviders []idp.IdentityProvider // DebugTeams contains the set of launchpad teams that may access // the restricted debug endpoints. // TODO remove this. DebugTeams []string // AdminAgentPublicKey contains the public key of the admin agent. AdminAgentPublicKey *bakery.PublicKey // StaticFileSystem contains an http.FileSystem that can be used // to serve static files. StaticFileSystem http.FileSystem // Template contains a set of templates that are used to generate // html output. Template *template.Template // DebugStatusCheckerFuncs contains functions that will be // executed as part of a /debug/status check. DebugStatusCheckerFuncs []debugstatus.CheckerFunc // RendezvousTimeout holds the time after which an interactive discharge wait // request will time out. RendezvousTimeout time.Duration // ACLStore holds the ACLStore for the identity server. ACLStore aclstore.ACLStore // RedirectLoginTrustedURLs contains a list of URLs that are // trusted to be used as return_to URLs during an interactive // login. RedirectLoginTrustedURLs []string // RedirectLoginTrustedDomains contains a list of domain names that // are fully trusted to be used as return_to URLs during an // interactive login. If the domain starts with the sequence "*." // then all subdomains of the subsequent domain will be trusted. RedirectLoginTrustedDomains []string // APIMacaroonTimeout is the maximum life of an API macaroon. APIMacaroonTimeout time.Duration // DischargeMacaroonTimeout is the maximum life of a Discharge // macaroon. DischargeMacaroonTimeout time.Duration // DischargeTokenTimeout is the maximum life of a Discharge // token. DischargeTokenTimeout time.Duration // SkipLocationForCookiePaths instructs if the Cookie Paths are to // be set relative to the Location Path or not. SkipLocationForCookiePaths bool // EnableEmailLogin enables the login with email address link on the // authentication required page. EnableEmailLogin bool }
ServerParams contains configuration parameters for a server.
Directories ¶
Path | Synopsis |
---|---|
redirect
Package redirect implements redirection based login.
|
Package redirect implements redirection based login. |
ussodischarge
Package ussomacaroon provides a client that can authenticate with an identity server by discharging macaroons on an Ubuntu SSO server.
|
Package ussomacaroon provides a client that can authenticate with an identity server by discharging macaroons on an Ubuntu SSO server. |
ussologin
Package ussologin defines functionality used for allowing clients to authenticate with the Candid server using USSO OAuth.
|
Package ussologin defines functionality used for allowing clients to authenticate with the Candid server using USSO OAuth. |
Package candidtest provides an inmemory candid service for use in tests.
|
Package candidtest provides an inmemory candid service for use in tests. |
cmd
|
|
The config package defines configuration parameters for the id server.
|
The config package defines configuration parameters for the id server. |
Package idp defines the API provided by all identity providers.
|
Package idp defines the API provided by all identity providers. |
adfs
Package adfs is an identity provider that authenticates with an ADFS service.
|
Package adfs is an identity provider that authenticates with an ADFS service. |
agent
Package agent is an identity provider that uses the agent authentication scheme.
|
Package agent is an identity provider that uses the agent authentication scheme. |
azure
Package azure is an identity provider that authenticates with azure.
|
Package azure is an identity provider that authenticates with azure. |
google
Package google is an identity provider that authenticates with google.
|
Package google is an identity provider that authenticates with google. |
idputil
Package idputil contains utility routines common to many identity providers.
|
Package idputil contains utility routines common to many identity providers. |
keycloak
Package keycloak is an identity provider that authenticates with keycloak oidc.
|
Package keycloak is an identity provider that authenticates with keycloak oidc. |
keystone
Package keystone contains identity providers that validate against keystone servers.
|
Package keystone contains identity providers that validate against keystone servers. |
keystone/internal/keystone
Package keystone implements a keystone client.
|
Package keystone implements a keystone client. |
ldap
Package ldap contains identity providers that validate against ldap servers.
|
Package ldap contains identity providers that validate against ldap servers. |
openid
Package openid provides identity providers that use OpenID to determine the identity.
|
Package openid provides identity providers that use OpenID to determine the identity. |
static
Package static contains identity providers that validate against a static list of users.
|
Package static contains identity providers that validate against a static list of users. |
usso
Pacakge usso is an identity provider that authenticates against Ubuntu SSO using OpenID.
|
Pacakge usso is an identity provider that authenticates against Ubuntu SSO using OpenID. |
usso/internal/kvnoncestore
Package kvnoncestore is an openid.NonceStore that is backed by a store.KeyValueStore.
|
Package kvnoncestore is an openid.NonceStore that is backed by a store.KeyValueStore. |
usso/ussodischarge
Pacakge ussodischarge is an identity provider that authenticates against Ubuntu SSO using Ubuntu SSO's macaroon protocol.
|
Pacakge ussodischarge is an identity provider that authenticates against Ubuntu SSO using Ubuntu SSO's macaroon protocol. |
usso/ussodischarge/cmd/login
login is a simple tool that can be used to test the Ubuntu SSO discharge login protocol.
|
login is a simple tool that can be used to test the Ubuntu SSO discharge login protocol. |
usso/ussooauth
Pacakge ussooauth is an identity provider that authenticates against Ubuntu SSO using OAuth.
|
Pacakge ussooauth is an identity provider that authenticates against Ubuntu SSO using OAuth. |
internal
|
|
candidtest
Package candidtest provides suites and functions useful for testing the identity manager.
|
Package candidtest provides suites and functions useful for testing the identity manager. |
discharger
Package discharger serves all of the endpoints related to discharging macaroon and logging in.
|
Package discharger serves all of the endpoints related to discharging macaroon and logging in. |
Package meeting provides a way for one thread of control to wait for information provided by another thread.
|
Package meeting provides a way for one thread of control to wait for information provided by another thread. |
memstore
Package memstore provides an in-memory implementation of the store.
|
Package memstore provides an in-memory implementation of the store. |
storetest
Package testing provides useful tools for testing Store implementations.
|
Package testing provides useful tools for testing Store implementations. |
Click to show internal directories.
Click to hide internal directories.