Skip to content

add secure cross-platform OIDC login - #3

Merged
mipam007 merged 5 commits into
masterfrom
feature/oidc-login
Sep 1, 2026
Merged

mipam007 merged 5 commits into
masterfrom
feature/oidc-login

Conversation

@mipam007

Copy link
Copy Markdown
Contributor
  • add Entra ID authorization-code login with PKCE and loopback callback
  • add interactive device-code login for headless environments
  • exchange Entra ID tokens for scoped OTC Keystone tokens
  • support default and explicitly selected browsers for OIDC
  • add macOS, Linux, and Windows browser backends
  • preserve legacy SAML login for clouds without OIDC configuration
  • restrict Safari credential extraction to trusted OTC HTTPS origins
  • prevent credential probes from running in unrelated Safari tabs
  • validate callback state, login arguments, and temporary credentials
  • make callback listener cleanup non-fatal after receiving an auth code
  • force-close the callback listener when graceful shutdown times out
  • add HTTP timeouts, response limits, and redirect protection
  • require secure HTTPS authentication URLs for OIDC
  • avoid reporting OTC success before token exchange completes
  • add debug diagnostics without exposing token values
  • secure browser profiles with mode 0700
  • enforce mode 0600 whenever clouds.yaml is updated
  • write clouds.yaml atomically to prevent truncated configuration
  • preserve symbolic links when updating clouds.yaml
  • reject unknown cloud names and unsupported output formats
  • validate output format before configuration and API calls
  • restore -f/--format as a persistent global flag
  • document OIDC, SAML limitations, token storage, and file permissions
  • document cross-platform builds and authentication behavior
  • align GitHub Actions with the Go version declared in go.mod
  • add authentication, configuration, format, and platform tests

Verified with go test, race detection, go vet, cross-compiled tests, and macOS, Linux, and Windows builds for amd64 and arm64.

mipam007 added 2 commits July 28, 2026 00:29
- add Entra ID authorization-code login with PKCE and loopback callback
- add interactive device-code login for headless environments
- exchange Entra ID tokens for scoped OTC Keystone tokens
- support default and explicitly selected browsers for OIDC
- add macOS, Linux, and Windows browser backends
- preserve legacy SAML login for clouds without OIDC configuration
- restrict Safari credential extraction to trusted OTC HTTPS origins
- prevent credential probes from running in unrelated Safari tabs
- validate callback state, login arguments, and temporary credentials
- make callback listener cleanup non-fatal after receiving an auth code
- force-close the callback listener when graceful shutdown times out
- add HTTP timeouts, response limits, and redirect protection
- require secure HTTPS authentication URLs for OIDC
- avoid reporting OTC success before token exchange completes
- add debug diagnostics without exposing token values
- secure browser profiles with mode 0700
- enforce mode 0600 whenever clouds.yaml is updated
- write clouds.yaml atomically to prevent truncated configuration
- preserve symbolic links when updating clouds.yaml
- reject unknown cloud names and unsupported output formats
- validate output format before configuration and API calls
- restore -f/--format as a persistent global flag
- document OIDC, SAML limitations, token storage, and file permissions
- document cross-platform builds and authentication behavior
- align GitHub Actions with the Go version declared in go.mod
- add authentication, configuration, format, and platform tests

Verified with go test, race detection, go vet, cross-compiled tests,
and macOS, Linux, and Windows builds for amd64 and arm64.
Use USERPROFILE when isolating the Windows home directory, keep the 0600 assertion on Unix where POSIX modes are meaningful, and document Windows ACL behavior.
@mipam007
mipam007 requested review from starek4 and xRodney August 11, 2026 12:14
pokorny added 3 commits September 1, 2026 09:42
- removed unused method after merge
- ability to call cli using env variables
@mipam007
mipam007 merged commit beaa62d into master Sep 1, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants