-
Notifications
You must be signed in to change notification settings - Fork 72
Add OIDC Service Connection Authentication method #533
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
Conversation
| const cliPackage = 'jfrog-cli-' + getArchitecture(); | ||
| const jfrogFolderPath = encodePath(join(tl.getVariable('Agent.ToolsDirectory') || '', '_jf')); | ||
| const defaultJfrogCliVersion = '2.73.3'; | ||
| const defaultJfrogCliVersion = '2.75.0'; |
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.
there is an issue with latest version of jfrog-cli in azure devops plugin better to revert to old version until the issue is resolved.
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.
This is mandatory for the OIDC token exchange.
Maybe we can merge this and not release yet.
| "lint": "npx eslint . --ext .ts,.tsx,.js" | ||
| }, | ||
| "dependencies": { | ||
| "semver": "^7.7.1" |
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.
are we adding new dependencies ? Can't solution achieved without using this.
I know limit is 50MB checking if there is a possibility to avoid.
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.
Even with it the size should be under 50MB, i think we are currently at around 31.
We could write a check for version manually without using semver, but if we have some room i think it's better.
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.
Looks great! I added some rephrasing suggestions
|
Awesome! When can we expect to see this published in the marketplace? |
npm run formatfor formatting the code before submitting the pull request.🔒 Why This Matters
This PR introduces native support for OIDC authentication in the JFrog Azure DevOps extension, allowing pipelines to authenticate without long-lived credentials. By using Azure DevOps as a trusted identity provider, users can securely exchange OIDC tokens for temporary JFrog access tokens at runtime.
✅ Key Features Introduced
eotcommand (jf eot <provider> <id-token>)usernameandaccess tokenare now exposed via:README.md:endpoint-auth-scheme-nonedefinitions⚙ Why Use
jf eotInstead ofjf c add --oidc-*?The CLI’s
jf c add --oidc-*approach adds OIDC configuration directly, but:username,access token) for reusejf eotexplicitly exchanges the OIDC ID token and outputs the credentials, which can then be exported and reused for other tools (e.g., Docker login, Helm)This makes
jf eotmore flexible for CI environments that rely on short-lived credentials being passed across multiple steps.🧪 Example: Consuming Exported OIDC Variables in Pipelines
📦 Other Notable Changes
fetchAzureOidcToken()andexchangeOidcTokenAndSetStepVariables()utility methods2.75.0to ensure compatibility withjf eotvss-extension.jsonREADME.mdto aid with OIDC setup🙌 Special Thanks
We’d like to recognize and thank the authors of the following PRs for paving the way with early implementations and valuable context:
#495 — Introduced the concept of OIDC integration in the extension
#520 — Added groundwork for platform URL-based token exchange
We delayed merging earlier solutions because we wanted to align this integration natively with the new --oidc-token-id mechanism introduced in the JFrog CLI.
That said, the contributions in both PRs were incredibly helpful in shaping this final implementation — thank you!