Skip to content

Commit

Permalink
[TT-11426/TT-13322]add deprecation notice for oidc middleware (#6686)
Browse files Browse the repository at this point in the history
### **User description**
<details open>
<summary><a href="https://tyktech.atlassian.net/browse/TT-13322"
title="TT-13322" target="_blank">TT-13322</a></summary>
  <br />
  <table>
    <tr>
      <th>Summary</th>
      <td>Add warning message in GW logs, schema and go docs</td>
    </tr>
    <tr>
      <th>Type</th>
      <td>
<img alt="Sub-task"
src="https://tyktech.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium"
/>
        Sub-task
      </td>
    </tr>
    <tr>
      <th>Status</th>
      <td>In Dev</td>
    </tr>
    <tr>
      <th>Points</th>
      <td>N/A</td>
    </tr>
    <tr>
      <th>Labels</th>
<td><a
href="https://tyktech.atlassian.net/issues?jql=project%20%3D%20TT%20AND%20labels%20%3D%20QA_Fail%20ORDER%20BY%20created%20DESC"
title="QA_Fail">QA_Fail</a></td>
    </tr>
  </table>
</details>
<!--
  do not remove this marker as it will break jira-lint's functionality.
  added_by_jira_lint
-->

---

<!-- Provide a general summary of your changes in the Title above -->

## Description

<!-- Describe your changes in detail -->

## Related Issue
Parent: https://tyktech.atlassian.net/browse/TT-11426
Subtask: https://tyktech.atlassian.net/browse/TT-13322

## Motivation and Context

<!-- Why is this change required? What problem does it solve? -->

## How This Has Been Tested

<!-- Please describe in detail how you tested your changes -->
<!-- Include details of your testing environment, and the tests -->
<!-- you ran to see how your change affects other areas of the code,
etc. -->
<!-- This information is helpful for reviewers and QA. -->

## Screenshots (if appropriate)

## Types of changes

<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Refactoring or add test (improvements in base code or adds test
coverage to functionality)

## Checklist

<!-- Go over all the following points, and put an `x` in all the boxes
that apply -->
<!-- If there are no documentation updates required, mark the item as
checked. -->
<!-- Raise up any additional concerns not covered by the checklist. -->

- [ ] I ensured that the documentation is up to date
- [ ] I explained why this PR updates go.mod in detail with reasoning
why it's required
- [ ] I would like a code coverage CI quality gate exception and have
explained why


___

### **PR Type**
documentation, enhancement


___

### **Description**
- Added deprecation notices for OpenID Connect middleware and OIDC
authentication mode in code comments and documentation.
- Introduced log warnings in the OpenID middleware to inform users of
the deprecation.
- Recommended using JSON Web Token (JWT) as an alternative to avoid
disruptions.



___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>api_definitions.go</strong><dd><code>Add deprecation
notice for OpenID Connect middleware</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

apidef/api_definitions.go

<li>Added deprecation notice for OpenID Connect middleware.<br> <li>
Recommended using JSON Web Token (JWT) instead.<br>


</details>


  </td>
<td><a
href="https://github.com/TykTechnologies/tyk/pull/6686/files#diff-9961ccc89a48d32db5b47ba3006315ef52f6e5007fb4b09f8c5d6d299c669d67">+3/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>authentication.go</strong><dd><code>Add deprecation
notice for OIDC authentication mode</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

apidef/oas/authentication.go

<li>Added deprecation notice for OIDC authentication mode.<br> <li>
Recommended using JSON Web Token (JWT) instead.<br>


</details>


  </td>
<td><a
href="https://github.com/TykTechnologies/tyk/pull/6686/files#diff-e51c9d24d4235e7cc53048cc1d92967d177585ba5e073f14876308a97bef6326">+3/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>x-tyk-api-gateway.json</strong><dd><code>Add
deprecation notice for external OAuth Middleware</code>&nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

apidef/oas/schema/x-tyk-api-gateway.json

<li>Added deprecation notice for external OAuth Middleware.<br> <li>
Recommended using JSON Web Token (JWT) instead.<br>


</details>


  </td>
<td><a
href="https://github.com/TykTechnologies/tyk/pull/6686/files#diff-78828969c0c04cc1a776dfc93a8bad3c499a8c83e6169f83e96d090bed3e7dd0">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>                    
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>mw_openid.go</strong><dd><code>Add log warning for
deprecated OpenID Connect Middleware</code>&nbsp; </dd></summary>
<hr>

gateway/mw_openid.go

<li>Added log warning for deprecated OpenID Connect Middleware.<br> <li>
Recommended using JSON Web Token (JWT) instead.<br>


</details>


  </td>
<td><a
href="https://github.com/TykTechnologies/tyk/pull/6686/files#diff-a389c2a490b728d3bf6ed64f974b227117fb451aa2da8ce8df8c859e7cdc718a">+4/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>                    
</table></td></tr></tr></tbody></table>

___

> 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull
request to receive relevant information

(cherry picked from commit 3633678)
  • Loading branch information
jeffy-mathew committed Oct 31, 2024
1 parent 584b101 commit 4066ce7
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 0 deletions.
3 changes: 3 additions & 0 deletions apidef/api_definitions.go
Original file line number Diff line number Diff line change
Expand Up @@ -562,6 +562,9 @@ type OIDProviderConfig struct {
ClientIDs map[string]string `bson:"client_ids" json:"client_ids"`
}

// OpenID Connect middleware support will be deprecated starting from 5.7.0.
// To avoid any disruptions, we recommend that you use JSON Web Token (JWT) instead,
// as explained in https://tyk.io/docs/basic-config-and-security/security/authentication-authorization/openid-connect/.
type OpenIDOptions struct {
Providers []OIDProviderConfig `bson:"providers" json:"providers"`
SegregateByClient bool `bson:"segregate_by_client" json:"segregate_by_client"`
Expand Down
3 changes: 3 additions & 0 deletions apidef/oas/authentication.go
Original file line number Diff line number Diff line change
Expand Up @@ -495,6 +495,9 @@ func (h *HMAC) ExtractTo(api *apidef.APIDefinition) {
}

// OIDC contains configuration for the OIDC authentication mode.
// OIDC support will be deprecated starting from 5.7.0.
// To avoid any disruptions, we recommend that you use JSON Web Token (JWT) instead,
// as explained in https://tyk.io/docs/basic-config-and-security/security/authentication-authorization/openid-connect/.
type OIDC struct {
// Enabled activates the OIDC authentication mode.
//
Expand Down
1 change: 1 addition & 0 deletions apidef/oas/schema/x-tyk-api-gateway.json
Original file line number Diff line number Diff line change
Expand Up @@ -1084,6 +1084,7 @@
},
"X-Tyk-OIDC": {
"type": "object",
"description": "Support for external OAuth Middleware will be deprecated starting from 5.7.0. To avoid any disruptions, we recommend that you use JSON Web Token (JWT) instead, as explained in https://tyk.io/docs/basic-config-and-security/security/authentication-authorization/openid-connect/",
"properties": {
"enabled": {
"type": "boolean"
Expand Down
4 changes: 4 additions & 0 deletions gateway/mw_openid.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ func (k *OpenIDMW) Name() string {
}

func (k *OpenIDMW) EnabledForSpec() bool {
if k.Spec.UseOpenID {
log.Warn("Support for OpenID Connect Middleware will be deprecated starting from 5.7.0. To avoid any disruptions, we recommend that you use JSON Web Token (JWT) instead, as explained in https://tyk.io/docs/basic-config-and-security/security/authentication-authorization/openid-connect/")
}

return k.Spec.UseOpenID
}

Expand Down

0 comments on commit 4066ce7

Please sign in to comment.