important-memory-34
11/04/2023, 12:21 PMtall-lock-23197
faint-activity-87590
11/06/2023, 9:51 AMoidc.baseUrl
look like?
Mine works fine using the flyte core chart: βhttps://login.microsoftonline.com/<tenant_id>/v2.0βimportant-memory-34
11/06/2023, 12:21 PMfaint-activity-87590
11/06/2023, 12:22 PMimportant-memory-34
11/06/2023, 12:22 PMfaint-activity-87590
11/06/2023, 12:23 PMimportant-memory-34
11/06/2023, 12:56 PMfaint-activity-87590
11/06/2023, 1:02 PMfaint-activity-87590
11/06/2023, 1:05 PMhttps://<your deployment url>/callback
?
Did you set authorizedUris
to https://<your deployment url
?important-memory-34
11/06/2023, 1:29 PMimportant-memory-34
11/06/2023, 2:02 PMfaint-activity-87590
11/06/2023, 5:03 PMimportant-memory-34
11/06/2023, 5:10 PMimportant-memory-34
11/06/2023, 5:40 PM{"json":{"src":"cookie.go:73","x-request-id":"b5464e761df7a54ae9cede42406760ca"},"level":"info","msg":"Could not detect existing cookie [flyte_idt]. Error: http: named cookie not present","ts":"2023-11-06T17:29:52Z"}
2023-11-06T17:29:52.707198507Z {"json":{"src":"handlers.go:281"},"level":"info","msg":"Failed to parse Access Token from context. Will attempt to find IDToken. Error: [JWT_VERIFICATION_FAILED] Could not retrieve bearer token from metadata, caused by: rpc error: code = Unauthenticated desc = Request unauthenticated with Bearer","ts":"2023-11-06T17:29:52Z"}
Mon, Nov 6 2023 6:29:52 pm
{"json":{"src":"cookie.go:73","x-request-id":"38885e1e27d3e429e3b3c52313f3b7ea"},"level":"info","msg":"Could not detect existing cookie [flyte_idt]. Error: http: named cookie not present","ts":"2023-11-06T17:29:52Z"}
2023-11-06T17:29:52.817706244Z {"json":{"src":"cookie.go:73","x-request-id":"81756e5b47421ce83712cb1ea6d2376f"},"level":"info","msg":"Could not detect existing cookie [flyte_idt]. Error: http: named cookie not present","ts":"2023-11-06T17:29:52Z"}
2023-11-06T17:29:52.817714006Z {"json":{"src":"handlers.go:281"},"level":"info","msg":"Failed to parse Access Token from context. Will attempt to find IDToken. Error: [JWT_VERIFICATION_FAILED] Could not retrieve bearer token from metadata, caused by: rpc error: code = Unauthenticated desc = Request unauthenticated with Bearer","ts":"2023-11-06T17:29:52Z"}
2023-11-06T17:29:52.817719127Z {"json":{"src":"handlers.go:281"},"level":"info","msg":"Failed to parse Access Token from context. Will attempt to find IDToken. Error: [JWT_VERIFICATION_FAILED] Could not retrieve bearer token from metadata, caused by: rpc error: code = Unauthenticated desc = Request unauthenticated with Bearer","ts":"2023-11-06T17:29:52Z"}
Mon, Nov 6 2023 6:29:53 pm
{"json":{"src":"cookie.go:73"},"level":"info","msg":"Could not detect existing cookie [flyte_idt]. Error: http: named cookie not present","ts":"2023-11-06T17:29:53Z"}
2023-11-06T17:29:53.073640388Z {"json":{"src":"handlers.go:85"},"level":"error","msg":"Failed to retrieve tokens from request, redirecting to login handler. Error: [EMPTY_OAUTH_TOKEN] Failure to retrieve cookie [flyte_idt], caused by: http: named cookie not present","ts":"2023-11-06T17:29:53Z"}
each time I try to access flyte console...important-memory-34
11/06/2023, 5:42 PMfaint-activity-87590
11/06/2023, 7:04 PMfaint-activity-87590
11/06/2023, 7:04 PMimportant-memory-34
11/07/2023, 8:42 AMfaint-activity-87590
11/07/2023, 9:25 AMimportant-memory-34
11/07/2023, 2:34 PMfaint-activity-87590
11/07/2023, 4:19 PMaverage-finland-92144
11/07/2023, 4:28 PMimportant-memory-34
11/07/2023, 5:27 PMaverage-finland-92144
11/07/2023, 5:42 PMimportant-memory-34
11/07/2023, 5:47 PMimportant-memory-34
11/07/2023, 6:13 PMaverage-finland-92144
11/07/2023, 6:27 PMit loops asking to connect again and again,so it prompts you to login to AAD?
important-memory-34
11/07/2023, 6:29 PMaverage-finland-92144
11/07/2023, 6:33 PMimportant-memory-34
11/08/2023, 9:58 AM2023-11-08 10:41:48{"json":{"src":"handlers.go:85"},"level":"error","msg":"Failed to retrieve tokens from request, redirecting to login handler. Error: [EMPTY_OAUTH_TOKEN] Error reading existing secure cookie [flyte_idt]. Error: [SECURE_COOKIE_ERROR] Error reading secure cookie flyte_idt, caused by: securecookie: base64 decode failed - caused by: illegal base64 data at input byte 10","ts":"2023-11-08T09:41:48Z"}
2023-11-08 10:41:48{"json":{"src":"cookie.go:85"},"level":"error","msg":"Error reading existing secure cookie [flyte_idt]. Error: [SECURE_COOKIE_ERROR] Error reading secure cookie flyte_idt, caused by: securecookie: base64 decode failed - caused by: illegal base64 data at input byte 10","ts":"2023-11-08T09:41:48Z"}
2023-11-08 10:41:48{"json":{"src":"cookie.go:104"},"level":"error","msg":"Error reading secure cookie flyte_idt securecookie: base64 decode failed - caused by: illegal base64 data at input byte 10","ts":"2023-11-08T09:41:48Z"}
2023-11-08 10:41:48{"json":{"src":"token.go:100"},"level":"debug","msg":"Could not retrieve id token from metadata rpc error: code = Unauthenticated desc = Request unauthenticated with IDToken","ts":"2023-11-08T09:41:48Z"}
2023-11-08 10:41:48{"json":{"src":"handlers.go:281"},"level":"info","msg":"Failed to parse Access Token from context. Will attempt to find IDToken. Error: [JWT_VERIFICATION_FAILED] Could not retrieve bearer token from metadata, caused by: rpc error: code = Unauthenticated desc = Request unauthenticated with Bearer","ts":"2023-11-08T09:41:48Z"}
2023-11-08 10:41:48{"json":{"src":"token.go:80"},"level":"debug","msg":"Could not retrieve bearer token from metadata rpc error: code = Unauthenticated desc = Request unauthenticated with Bearer","ts":"2023-11-08T09:41:48Z"}
"Error reading secure cookie flyte_idt, caused by: securecookie: base64 decode failed - caused by: illegal base64 data at input byte 10"important-memory-34
11/08/2023, 10:30 AMimportant-memory-34
11/08/2023, 10:48 AMaverage-finland-92144
11/08/2023, 4:32 PM<https://login.microsoftonline.com/><tenant id>/v2.0
)
2. Add a note, in case you're using NGINX Ingress Controllers, add those two notes
Is that correct? Something else to add?important-memory-34
11/09/2023, 12:00 PMimportant-memory-34
11/09/2023, 12:06 PMflytectl version
{"json":{"src":"viper.go:400"},"level":"debug","msg":"Config section [admin] updated. Firing updated event.","ts":"2023-11-09T12:48:02+01:00"}
{"json":{"src":"viper.go:398"},"level":"debug","msg":"Config section [storage] updated. No update handler registered.","ts":"2023-11-09T12:48:02+01:00"}
{"json":{"src":"viper.go:398"},"level":"debug","msg":"Config section [root] updated. No update handler registered.","ts":"2023-11-09T12:48:02+01:00"}
{"json":{"src":"viper.go:398"},"level":"debug","msg":"Config section [files] updated. No update handler registered.","ts":"2023-11-09T12:48:02+01:00"}
{"json":{"src":"viper.go:398"},"level":"debug","msg":"Config section [console] updated. No update handler registered.","ts":"2023-11-09T12:48:02+01:00"}
{"json":{"src":"client.go:63"},"level":"info","msg":"Initialized Admin client","ts":"2023-11-09T12:48:02+01:00"}
{
"App": "flytectl",
"Build": "1350bfa",
"Version": "0.8.0",
"BuildTime": "2023-11-09 12:48:02.154309 +0100 CET m=+0.027722611"
}{"json":{"src":"auth_interceptor.go:86"},"level":"debug","msg":"Request failed due to [rpc error: code = Unknown desc = unexpected HTTP status code received from server: 0 (); malformed header: missing HTTP content-type]. If it's an unauthenticated error, we will attempt to establish an authenticated context.","ts":"2023-11-09T12:48:02+01:00"}
{"json":{"src":"version.go:103"},"level":"debug","msg":"Failed to get version of control plane rpc error: code = Unknown desc = unexpected HTTP status code received from server: 0 (); malformed header: missing HTTP content-type: \n","ts":"2023-11-09T12:48:02+01:00"}
{"json":{"src":"version.go:81"},"level":"debug","msg":"rpc error: code = Unknown desc = unexpected HTTP status code received from server: 0 (); malformed header: missing HTTP content-type","ts":"2023-11-09T12:48:02+01:00"}
I'm digging on the issue, and come back,
I suspect an ingress configuration problem with grpc/http2
If someone have an idea on how to fix this issue, you'll be more than welcomeimportant-memory-34
11/09/2023, 12:32 PMimportant-memory-34
11/09/2023, 3:58 PMimportant-memory-34
11/09/2023, 4:01 PMaverage-finland-92144
11/09/2023, 4:20 PMingress:
create: true
ingressClassName: nginx
host: "<your-flyte-FQDN>"
commonAnnotations:
<http://nginx.ingress.kubernetes.io/ssl-redirect|nginx.ingress.kubernetes.io/ssl-redirect>: "true"
httpAnnotations:
<http://nginx.ingress.kubernetes.io/app-root|nginx.ingress.kubernetes.io/app-root>: /console
grpcAnnotations:
<http://nginx.ingress.kubernetes.io/backend-protocol|nginx.ingress.kubernetes.io/backend-protocol>: "GRPC"
average-finland-92144
11/09/2023, 4:22 PMimportant-memory-34
11/09/2023, 4:26 PMaverage-finland-92144
11/09/2023, 4:30 PMaverage-finland-92144
11/09/2023, 4:31 PMauth:
enabled: true
oidc:
# baseUrl: <https://accounts.google.com> # Uncomment for Google
# baseUrl: https://<keycloak-url>/auth/realms/<keycloak-realm> # Uncomment for Keycloak and update with your installation host and realm name
# baseUrl: <https://login.microsoftonline.com/><tenant-id>/v2.0/ # Uncomment for Azure AD
# For Okta use the Issuer URI from Okta's default auth server
baseUrl: <https://dev>-<org-id>.<http://okta.com/oauth2/default|okta.com/oauth2/default>
# Replace with the client ID and secret created for Flyte in your IdP
clientId: <client_ID>
clientSecret: <client_secret>
internal:
clientSecret: '<your-random-password>'
# Use the output of step #2 (only the content inside of '')
clientSecretHash: <your-hashed-password>
authorizedUris:
- https://<your-flyte-deployment-URL>
With the internal.ClientSecretHash being the output of the bcrypt
command described in the docs. Is all of that in place?important-memory-34
11/09/2023, 5:18 PMinline:
auth:
appAuth:
authServerType: External
externalAuthServer:
# baseUrl: <https://login.microsoftonline.com/><tenant-id>/oauth2/v2.0/authorize # Uncomment for Azure AD
# with the above uri including /oauth2/v2.0/authorize flyte does not start
baseUrl: <https://login.microsoftonline.com/><tenant-id>/v2.0
metadataUrl: .well-known/openid-configuration
AllowedAudience:
- api://<client-id>
thirdPartyConfig:
flyteClient:
# Use the clientID generated by your IdP for the `flytectl` app registration
clientId: <client-id>
redirectUri: <http://localhost:53593/callback>
scopes:
- profile
- openid
- email
- offline_access
userAuth:
openId:
# baseUrl: https://<keycloak-url>/auth/realms/<keycloak-realm> # Uncomment for Keycloak and update with your installation host and realm name
# baseUrl: <https://login.microsoftonline.com/><tenant-id>/oauth2/v2.0/authorize # Uncomment for Azure AD, but bad idea flyte can't start !!!
# For Okta, use the Issuer URI of the custom auth server:
baseUrl: <https://login.microsoftonline.com/90138f><tenant-id>/v2.0
scopes:
- profile
- openid
- email
- offline_access
# - offline_access # Uncomment if your IdP supports issuing refresh tokens (optional)
# Use the client ID and secret generated by your IdP for the first OIDC registration in the "Identity Management layer : OIDC" section of this guide
clientId: <client-id>
I saw the influence of this part for using flytectl and pyflyte, if I use non-existing scopes, AAD return an AADSTS650053 error,
but I don't catch what to add in this part to solve the remaining error AADSTS7000218...important-memory-34
11/09/2023, 5:27 PMaverage-finland-92144
11/09/2023, 5:34 PMuserAuth
is where you define the config for OIDC (the Identity layer on top of the auth completed using OAuth2.0). It refers mainly to the authentication that's completed when the user provides a secret be it using the browser or some other flow.
`appAuth`controls the auth flow for clilents
Recommended resources are:
This thread: https://flyte-org.slack.com/archives/CP2HDHKE1/p1695844976239729?thread_ts=1695387759.103999&cid=CP2HDHKE1
Understanding auth in Flyte: https://docs.flyte.org/en/latest/deployment/configuration/auth_appendix.html
Hope it helps.average-finland-92144
11/09/2023, 5:35 PMimportant-memory-34
11/09/2023, 5:43 PMimportant-memory-34
11/09/2023, 5:56 PMaverage-finland-92144
11/09/2023, 9:13 PMpyflyte
), flytepropeller
and flyteconsole
Credentials should go:
β’ flytectl
on inline.auth.thirdPartyConfig
β’ flytepropeller
on auth.internal
β’ flyteconsole
on auth.oidc
and inline.userAuth
Unfortunately I haven't tried this with AAD and flyte-binary, but this is the setup I've used with Oktaimportant-memory-34
11/10/2023, 8:35 AMflytectl
and flytepropeller
? is it the same as the one described in the documentation? or is there different redirectUri
for each ?
to my understanding, the one for flyteconsole
should have only redirectUri to flyte FDQN, (<my-flyte-deployment-URL>), OK for tthis, as it already works, the one for flytectl
should have redirectUri: <http://localhost:53593/callback>
, right ?
but what redirectUri
to set for the flytepropeller
app ?average-finland-92144
11/10/2023, 3:23 PMflyteconsole
and flytepropeller
should be registered as Web Applications, using https://<console-url>/callback
as callback URI
2. `flytectl`using <http://localhost:53593/callback>
as redirect URIimportant-memory-34
11/11/2023, 10:12 AMinline.auth.thirdPartyConfig
, inline.userAuth
, we are stuck with this AADSTS7000218 error...
Then I'll ask to our AAD admin to add separated applications registration, to see if it change the AAD behaviour, I'll come back, in this thread
For the moment, as I need to go forward, I'll try to use keycloak as the external auth server, which we also use for many projects.average-finland-92144
11/14/2023, 3:59 PMimportant-memory-34
11/17/2023, 12:29 PMaverage-finland-92144
11/17/2023, 2:26 PMimportant-memory-34
11/17/2023, 3:48 PMFlyte enables production-grade orchestration for machine learning workflows and data processing created to accelerate local workflows to production.
Powered by