-
Notifications
You must be signed in to change notification settings - Fork 5
OIDC serverside login #129
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 8 commits
b91e27b
443057d
2a7563b
ede2c42
004d27b
5edf9bb
4e9cdd6
fd352a9
bc5e37e
c36a4f6
8718507
0956797
8c07979
3a01b88
b58cfda
b949651
af55f94
6eed650
c0c1132
73a7dac
9a71c64
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -341,6 +341,143 @@ | |
| ] | ||
| } | ||
| } | ||
| }, | ||
| "oidcAuthProvider": { | ||
| "title": "OpenID Connect AuthProvider", | ||
| "description": "OpenID Connect authentication configuration", | ||
| "type": "object", | ||
| "additionalProperties": false, | ||
| "required": [ | ||
| "idpUrl", | ||
| "uniqueField", | ||
| "clientId", | ||
| "scope", | ||
| "localPublicKeyLocation", | ||
| "localPrivateKeyLocation", | ||
| "keyAlgorithm", | ||
| "issuer", | ||
| "symmetricKeyLocation" | ||
| ], | ||
| "properties": { | ||
| "idpUrl": { | ||
| "description": "Base URL for identity provider endpoint", | ||
| "type": "string", | ||
| "format": "uri", | ||
| "pattern": "^https?://", | ||
| "examples": [ | ||
| "https://domain.xyz/auth/realms/example" | ||
| ] | ||
| }, | ||
| "uniqueField": { | ||
| "description": "Name of unique field to use as user ID. Note that as per the OpenID Connect specification only sub/issuer combination is guaranteed to be stable and unique for an arbitrary issuer, though other values such as preferred_username may be usable when the team running the CARTA installation and the issuer are the same.", | ||
| "type": "string", | ||
| "examples": [ | ||
| "sub", | ||
| "preferred_username" | ||
| ], | ||
| "default": "sub" | ||
| }, | ||
| "clientId": { | ||
| "description": "Client ID as registered with identity provider", | ||
| "type": "string", | ||
| "minLength": 1, | ||
| "examples": [ | ||
| "carta" | ||
| ] | ||
| }, | ||
| "clientSecret": { | ||
| "description": "Client secret as registered with identity provider", | ||
| "type": "string", | ||
| "minLength": 1 | ||
| }, | ||
| "scope": { | ||
| "description": "Scopes to request from the OpenID Connect server", | ||
| "type": "string", | ||
| "default": "openid", | ||
| "examples": [ | ||
| "openid", | ||
| "openid groups" | ||
| ] | ||
| }, | ||
| "userLookupTable": { | ||
| "description": "Path of user lookup table as text file in format <unique user ID> <system user>. If no user lookup is needed, this should be omitted. Example table given in `usertable.txt.stub`", | ||
| "type": "string", | ||
| "examples": [ | ||
| "/etc/carta/userlookup.txt" | ||
| ] | ||
| }, | ||
| "groupsField": { | ||
| "description": "Name of field containing list of user roles/groups", | ||
| "type": "string", | ||
| "examples": [ | ||
| "groups", | ||
| "roles" | ||
| ] | ||
| }, | ||
| "requiredGroup": { | ||
| "description": "Role to ensure is included among the values in groupsField", | ||
| "type": "string", | ||
| "examples": [ | ||
| "carta-users", | ||
| "carta-testers" | ||
| ] | ||
| }, | ||
| "localPublicKeyLocation": { | ||
| "description": "Path to public key (in PEM format) used for verifying JWTs", | ||
| "type": "string", | ||
| "examples": [ | ||
| "/etc/carta/carta_public.pem" | ||
| ] | ||
| }, | ||
| "localPrivateKeyLocation": { | ||
| "description": "Path to private key (in PEM format) used for signing JWTs", | ||
| "type": "string", | ||
| "examples": [ | ||
| "/etc/carta/carta_private.pem" | ||
| ] | ||
| }, | ||
| "keyAlgorithm": { | ||
| "$ref": "#/definitions/keyAlgorithm", | ||
| "default": "RS256" | ||
| }, | ||
| "issuer": { | ||
| "description": "Issuer field for JWT", | ||
| "type": "string", | ||
| "examples": [ | ||
| "my-carta-server" | ||
| ] | ||
| }, | ||
| "cacheAccessTokenMinValidity": { | ||
| "description": "If previously issued an access token from upstream server with at least this many seconds of lifetime remaining, a local token with the previous token's remaining lifetime will be issued instead of performing an upstream query", | ||
| "type": "integer", | ||
| "default": 100 | ||
| }, | ||
| "symmetricKeyLocation": { | ||
| "description": "Path to symmetric key (base64-encoded) used for refresh tokens. At present this uses the A256GCM algorithm which requires 32 bytes of random data which can be generated using `openssl rand -base64 32`", | ||
| "type": "string", | ||
| "examples": [ | ||
| "/etc/carta/carta_symmetric.pem" | ||
| ] | ||
| }, | ||
| "symmetricKeyType": { | ||
| "description": "As per options at https://www.iana.org/assignments/jose/jose.xhtml when using direct use of shared key", | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "when using direct use of shared key" sounds odd. Should this be "when a shared key is used directly"? The description also doesn't describe the option. Should this be "Type of symmetric key as per (...)" Is the "shared key" the same thing as the "symmetric key"? Is the "shared key" qualification also needed for the location option above? |
||
| "type": "string", | ||
| "default": "A256GCM" | ||
| }, | ||
| "additionalAuthParams": { | ||
| "description": "additional parameters to include in authentication requests to deal with identity providers ", | ||
| "type": "array", | ||
| "default": [], | ||
| "examples": [ | ||
| [[["access_type", "offline"], ["prompt", "consent"]]] | ||
| ], | ||
| "items": { | ||
| "type": "array", | ||
| "minItems": 2, | ||
| "maxItems": 2 | ||
| } | ||
| } | ||
| } | ||
| } | ||
| }, | ||
| "additionalProperties": false, | ||
|
|
@@ -369,6 +506,10 @@ | |
| "external": { | ||
| "description": "External AuthProvider", | ||
| "$ref": "#/definitions/externalAuthProvider" | ||
| }, | ||
| "oidc": { | ||
| "description": "OpenID Connect AuthProvider", | ||
| "$ref": "#/definitions/oidcAuthProvider" | ||
| } | ||
| }, | ||
| "default": { | ||
|
|
||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Uh oh!
There was an error while loading. Please reload this page.