Skip to content

Commit c98d4cd

Browse files
always initialize idp token endpoint for service accounts
1 parent 2f7376b commit c98d4cd

File tree

4 files changed

+9
-22
lines changed

4 files changed

+9
-22
lines changed

internal/cmd/ske/kubeconfig/login/login.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -317,11 +317,6 @@ func getAccessToken(params *types.CmdParams) (string, error) {
317317
return "", &cliErr.SessionExpiredError{}
318318
}
319319

320-
err = auth.EnsureIDPTokenEndpoint(params.Printer)
321-
if err != nil {
322-
return "", err
323-
}
324-
325320
return accessToken, nil
326321
}
327322

internal/pkg/auth/auth.go

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -216,18 +216,3 @@ func GetValidAccessToken(p *print.Printer) (string, error) {
216216
// Return the new access token
217217
return utf.accessToken, nil
218218
}
219-
220-
// EnsureIDPTokenEndpoint ensures that the `IDP_TOKEN_ENDPOINT` auth field is set.
221-
// This field is by default only initialized for user accounts. Call this method to also
222-
// initialize it for service accounts.
223-
func EnsureIDPTokenEndpoint(p *print.Printer) error {
224-
idpTokenEndpoint, err := GetAuthField(IDP_TOKEN_ENDPOINT)
225-
if err != nil {
226-
return fmt.Errorf("failed to check idp token endpoint configuration value: %w", err)
227-
}
228-
if idpTokenEndpoint == "" {
229-
_, err := retrieveIDPWellKnownConfig(p)
230-
return err
231-
}
232-
return nil
233-
}

internal/pkg/auth/service_account.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,14 @@ var _ http.RoundTripper = &keyFlowWithStorage{}
3636
// It returns the email associated with the service account
3737
// If disableWriting is set to true the credentials are not stored on disk (keyring, file).
3838
func AuthenticateServiceAccount(p *print.Printer, rt http.RoundTripper, disableWriting bool) (email, accessToken string, err error) {
39+
if !disableWriting {
40+
// Ensure idp token endpoint is set
41+
_, err = retrieveIDPWellKnownConfig(p)
42+
if err != nil {
43+
return "", "", err
44+
}
45+
}
46+
3947
authFields := make(map[authFieldKey]string)
4048
var authFlowType AuthFlow
4149
switch flow := rt.(type) {
@@ -80,8 +88,6 @@ func AuthenticateServiceAccount(p *print.Printer, rt http.RoundTripper, disableW
8088
return "", "", fmt.Errorf("compute session expiration timestamp: %w", err)
8189
}
8290
authFields[SESSION_EXPIRES_AT_UNIX] = sessionExpiresAtUnix
83-
// clear idp token endpoint as it is not set by default for service accounts
84-
authFields[IDP_TOKEN_ENDPOINT] = ""
8591

8692
if !disableWriting {
8793
err = SetAuthFlow(authFlowType)

internal/pkg/auth/service_account_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ func TestAuthenticateServiceAccount(t *testing.T) {
153153
}
154154

155155
p := print.NewPrinter()
156+
p.AssumeYes = true
156157
email, _, err := AuthenticateServiceAccount(p, flow, false)
157158

158159
if !tt.isValid {

0 commit comments

Comments
 (0)