Add OIDC Service Connection Authentication method#533
Add OIDC Service Connection Authentication method#533EyalDelarea merged 28 commits intojfrog:devfrom
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.
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.
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.
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.
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.
MikaLJF
left a comment
There was a problem hiding this comment.
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!