-
Notifications
You must be signed in to change notification settings - Fork 367
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
Add AWS remote auth login #7578
Changes from 10 commits
ca02c1c
ce5b5e0
692916a
31f7761
60389b0
47ddb2b
b09b303
ed4042f
bde0214
5920fcc
134ba63
5cb4a8d
e91fe5d
cab7bdd
462bee5
0247f49
fb95a20
74cbb53
d2e77e2
11bee35
fec0a34
4628cd0
2e4d425
714aba7
8fe9e61
bbbe23e
9fbc1b0
7d1d27e
68422ae
e8a2349
bf86e73
77f7bb3
77b65c1
6bdbe62
92f99af
05a794a
1a2755f
1e5fa4c
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 |
---|---|---|
|
@@ -18,6 +18,9 @@ components: | |
type: http | ||
scheme: bearer | ||
bearerFormat: JWT | ||
external_auth: | ||
type: http | ||
scheme: basic | ||
|
||
parameters: | ||
PaginationPrefix: | ||
|
@@ -363,6 +366,15 @@ components: | |
items: | ||
$ref: "#/components/schemas/ExternalPrincipal" | ||
|
||
ExternalLoginInformation: | ||
type: object | ||
required: | ||
- presigned_url | ||
properties: | ||
presigned_url: | ||
type: string | ||
|
||
|
||
paths: | ||
/auth/users: | ||
get: | ||
|
@@ -1102,6 +1114,7 @@ paths: | |
$ref: "#/components/responses/Unauthorized" | ||
default: | ||
$ref: "#/components/responses/ServerError" | ||
|
||
/auth/users/{userId}/external/principals/ls: | ||
parameters: | ||
- in: path | ||
|
@@ -1112,6 +1125,7 @@ paths: | |
get: | ||
tags: | ||
- auth | ||
- external | ||
- experimental | ||
parameters: | ||
- $ref: "#/components/parameters/PaginationPrefix" | ||
|
@@ -1148,6 +1162,7 @@ paths: | |
post: | ||
tags: | ||
- auth | ||
- external | ||
- experimental | ||
operationId: createUserExternalPrincipal | ||
summary: Create principal as external identity connected to lakeFS user | ||
|
@@ -1164,8 +1179,9 @@ paths: | |
$ref: "#/components/responses/ServerError" | ||
delete: | ||
tags: | ||
- auth | ||
- experimental | ||
- auth | ||
- external | ||
- experimental | ||
operationId: deleteUserExternalPrincipal | ||
summary: delete external principal from user's external principal list | ||
responses: | ||
|
@@ -1208,6 +1224,38 @@ paths: | |
default: | ||
$ref: "#/components/responses/ServerError" | ||
|
||
/auth/external/login: | ||
post: | ||
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. Shouldn't this be part of the authentication API? 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. It should. 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. Thanks! Sorry for blocking 😬 |
||
tags: | ||
- auth | ||
- external | ||
- experimental | ||
operationId: externalLogin | ||
summary: perform a login using an external authenticator | ||
security: [] | ||
requestBody: | ||
content: | ||
application/json: | ||
schema: | ||
$ref: "#/components/schemas/ExternalLoginInformation" | ||
responses: | ||
200: | ||
description: successful login | ||
headers: | ||
Set-Cookie: | ||
schema: | ||
type: string | ||
content: | ||
application/json: | ||
schema: | ||
$ref: "#/components/schemas/User" | ||
401: | ||
$ref: "#/components/responses/Unauthorized" | ||
420: | ||
description: too many requests | ||
default: | ||
$ref: "#/components/responses/ServerError" | ||
|
||
/healthcheck: | ||
get: | ||
operationId: healthCheck | ||
|
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lakeFS should not be aware of the details of the identity token details fields or params.
it should pass it to the remote authentication services.
so in other words, it should be some generic object key/value in the body that will be passed to the remote authentication service as is.
The remote service on the other hand that does the login will seriallize this object and extract specific fields to create AWS request.