Skip to content
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

feat: Dev Portal SAML SSO #8118

Draft
wants to merge 12 commits into
base: main
Choose a base branch
from
Draft

feat: Dev Portal SAML SSO #8118

wants to merge 12 commits into from

Conversation

cloudjumpercat
Copy link
Contributor

@cloudjumpercat cloudjumpercat commented Nov 4, 2024

Description

SAML SSO is being added to Dev Portal. This PR adds instructions for it and creates SSO includes so that org SSO and Dev Portal SSO content can be shared.

This PR also fixes some outdated Okta SSO language, see DOCU-4120 for more information.

DOCU-4135

Testing instructions

Preview links:

Checklist

@cloudjumpercat cloudjumpercat added the review:sme Request for SME review, external to the docs team. label Nov 4, 2024
Copy link

netlify bot commented Nov 4, 2024

Deploy Preview for kongdocs ready!

Name Link
🔨 Latest commit 714edf2
🔍 Latest deploy log https://app.netlify.com/sites/kongdocs/deploys/673cf0217d1d6a00082bc9cb
😎 Deploy Preview https://deploy-preview-8118--kongdocs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
9 paths audited
Performance: 94 (🟢 up 6 from production)
Accessibility: 92 (no change from production)
Best Practices: 98 (🟢 up 8 from production)
SEO: 99 (no change from production)
PWA: -
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify site configuration.

@cloudjumpercat
Copy link
Contributor Author

I'm still working on testing team mappings and Dev Portal SAML, but the draft docs are now ready for tech review!

  • Dev Portal Generic SSO how to and Konnect Generic SSO how to
    • In the PR, the content for these pages now lives primarily in an include since the content for both generic SSO pages is so similar. As you look over these docs, I'd appreciate any feedback if I missed anything or need to fix any instructions that relates to one (ex. Konnect org) but not the other (ex. Dev Portal) that I missed on accident.
  • Konnect Okta SSO how to and Dev Portal Okta SSO how to
    • Same comment here about how we're now using an include for the content because the two sets of instructions are very similar. This just makes it easier to keep the content consistent since the updates to one will show up in the other.
  • SSO attribute mapping reference
    • This content already existed, I just moved it to it's own page. I still have an open question about what the Konnect values are and where in Konnect those values map to

## Set up SSO in {{site.konnect_short_name}}
{% navtabs %}
{% navtab OIDC%}
{% if include.desc == "Konnect Org" %}
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For reviewers: This label in the include file pulls the content from the {% if include.desc == "Konnect Org" %} to the next {% endif %} into only the Konnect org SSO docs, not the Dev Portal SSO docs. This lets us share most of the content and conditionally render content that is specific to one feature and not the other, like the UI instructions to get to the SSO settings in Konnect.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very powerful! Thank you!

{% if include.desc == "Konnect Org" %}
1. In [{{site.konnect_saas}}](https://cloud.konghq.com/login), click {% konnect_icon organizations %} **Organization** > **Settings**, and then click the **Authentication Scheme** tab.
{% endif %}
{% if include.desc == "Dev Portal" %}
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment here as the previous, but everything in this if tag is only pulled into the Dev Portal SSO docs, not the Konnect org SSO docs.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very powerful! Thank you!

* **Single Sign-On URL**: `https://global.api.konghq.com/v2/authenticate/login_path/saml/acs`
* **Audience URI (SP Entity ID)**: `https://cloud.konghq.com/sp/SP_ID`

1. Optional: In the **Attribute Statements**, add the following three attributes:
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't mention why a user would want to configure this and I'm not sure what the answer to that is.


1. [Add users to the Okta application](https://help.okta.com/en-us/content/topics/users-groups-profiles/usgp-assign-apps.htm).

1. [Generate a signing certificate](https://help.okta.com/en-us/content/topics/apps/manage-signing-certificates.htm) to use in {{site.konnect_short_name}}.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's no place to put the cert in konnect, so I just need to generate it and activate it?

## Set up SSO in {{site.konnect_short_name}}
{% navtabs %}
{% navtab OIDC%}
{% if include.desc == "Konnect Org" %}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very powerful! Thank you!

{% if include.desc == "Konnect Org" %}
1. In [{{site.konnect_saas}}](https://cloud.konghq.com/login), click {% konnect_icon organizations %} **Organization** > **Settings**, and then click the **Authentication Scheme** tab.
{% endif %}
{% if include.desc == "Dev Portal" %}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very powerful! Thank you!

{% endnavtab %}
{% navtab SAML %}

The {{site.konnect_short_name}} SAML integration allows you to configure various identity providers. While technically any SAML-compliant provider can be used, the following have been verified:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to add a similar list for OIDC as well?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, I'll add that!


## Troubleshooting

<details><summary>Troubleshooting authentication issues with large numbers of groups</summary>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Daniel2218 / @joshcman
Do we want to add a section similar to https://docs.konghq.com/konnect/org-management/sso/#reference for Dev Portal?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I moved that section to it's own page: https://deploy-preview-8118--kongdocs.netlify.app/konnect/reference/sso/ (trying to separate reference content from how to content). I can add to that reference page if we have mappings that are specific to Dev Portal.

* [Configure generic SSO for a Konnect Org](/konnect/org-management/sso/)
* [IdP SSO attribute mapping reference](/konnect/reference/sso)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we add this section for Dev Portal "Configure Okta" page as well: https://docs.konghq.com/konnect/org-management/okta-idp/#add-a-user-to-your-application?

Copy link
Contributor Author

@cloudjumpercat cloudjumpercat Nov 8, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding users to the application is one of the steps in this section (it's step 3 for OIDC and step 4 for SAML). That step is a link to the Okta doc because if we write out the steps ourselves like we did in the current Org Okta SSO doc, they quickly become out-dated. And I tested the flow with the Okta doc and thought it was accurate and helpful.

So, it is annoying as a user to have to go to yet another link for more instructions, but the instructions are more likely to be accurate this way if we use Okta's.

Signed-off-by: Diana <[email protected]>
{% endif %}
{% if include.desc == "Konnect Org" %}
1. Optional: To map existing teams from IdP groups to {{site.konnect_short_name}}, do the following:
1. Configure group claims in your IdP application. Be sure to add the following to the scope: `openid`, `email`, `profile`
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel slightly unsure about this step. I needed to make it generic, and I think groups claim is the correct name.

* **Sign-in redirect URIs**: `https://cloud.konghq.com/login` (This is a placeholder value that you'll replace later)
* **Sign-out redirect URIs**: `https://cloud.konghq.com/login` (This is a placeholder value that you'll replace later)
{% endif %}
{% if include.desc == "Dev Portal" %}
Copy link
Contributor Author

@cloudjumpercat cloudjumpercat Nov 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For reviewers: This if include.desc bit isn't working in the output. It's showing the Konnect Org placeholders on both the Dev Portal pages and Konnect Org pages. Any idea what I'm doing wrong? I didn't get any errors in the Terminal when I ran this locally.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
review:sme Request for SME review, external to the docs team.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants