-
Notifications
You must be signed in to change notification settings - Fork 158
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
[DX-1401] Restructured SSO pages to improve clarity #4736
base: master
Are you sure you want to change the base?
Changes from all commits
68dc145
53d133d
3c2f250
bf995cc
9152867
4d19da7
48c8371
b6d0979
d82d065
8ee44a1
3eb639e
330ca98
edeebf1
d7c06fd
6cc675a
f972ac8
1da15a9
9f29df4
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -1,6 +1,6 @@ | ||||||
--- | ||||||
date: 2017-03-24T16:56:58Z | ||||||
title: 3rd Party Identity Providers | ||||||
title: Single Sign-On integration | ||||||
menu: | ||||||
main: | ||||||
parent: "Integration Options" | ||||||
|
@@ -9,21 +9,88 @@ aliases: | |||||
- /integrate/3rd-party-identity-providers/ | ||||||
--- | ||||||
|
||||||
## Dashboard SSO API | ||||||
The Dashboard exposes a special API to implement custom authentications for the Dashboard and Portal. See the [Dashboard Admin API]({{< ref "tyk-apis/tyk-dashboard-admin-api/sso" >}}) for more details. | ||||||
Tyk supports integration with 3rd Party Identity Providers (IdPs) for Single Sign-On (SSO) using several different approaches, providing complete flexibility to work within your existing software stack. | ||||||
|
||||||
You can use the `sso_permission_defaults` dashboard configuration option to configure the permissions of users created via SSO API. See the SSO API docs above. | ||||||
This makes use of the [Tyk Identity Broker]({{< ref "tyk-identity-broker" >}}) (TIB) which provides a service-level component that enables delegated identities to be authorised and provide authenticated access to various Tyk components such as the Tyk Dashboard, the [Tyk Classic Developer Portal]({{< ref "tyk-developer-portal/tyk-portal-classic" >}}) and Tyk Gateway API. | ||||||
letzya marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
||||||
In addition you can set custom login pages for the dashboard and portal using `sso_custom_login_url` and `sso_custom_portal_login_url` dashboard configuration options. | ||||||
The following methods are supported: | ||||||
- [OpenID Connect (OIDC)](#sso-using-open-id-connect) | ||||||
- [Security Assertion Markup Language (SAML)](#sso-using-saml) | ||||||
- [Lightweight Directory Access Protocol (LDAP)]({{< ref "advanced-configuration/integrate/3rd-party-identity-providers/ldap" >}}) | ||||||
- Integration with [Social Providers]({{< ref "advanced-configuration/integrate/3rd-party-identity-providers/social" >}}) | ||||||
- Integration with [Custom Proxy]({{< ref "advanced-configuration/integrate/3rd-party-identity-providers/custom" >}}) | ||||||
- [Logging into an APP using Google+]({{< ref "advanced-configuration/integrate/3rd-party-identity-providers/social/app-login-with-gplus" >}}) | ||||||
|
||||||
## Tyk Identity Broker (TIB) Overview | ||||||
Check out [this section]({{< ref "advanced-configuration/integrate" >}}) for worked examples of integrations with popular 3rd Party IdPs. | ||||||
|
||||||
### What is the Tyk Identity Broker? | ||||||
## SSO using Open ID Connect | ||||||
|
||||||
The Tyk Identity Broker (TIB) provides a service-level component that enables delegated identities to be authorised and provide authenticated access to various Tyk components such as the Tyk Dashboard, the Tyk Developer Portal and Tyk Gateway API flows such as OAuth access tokens and regular API tokens. | ||||||
To configure your Tyk Dashboard to work with a 3rd Party IdP all you need to do is: | ||||||
|
||||||
Internally the TIB uses the Dashboard SSO API mentioned above. | ||||||
1. Access the **Identity Manager** under System Management in the Tyk Dashboard | ||||||
2. Create a profile for your preferred IdP | ||||||
3. Get the `client_id` + `secret` that are defined on your IdP | ||||||
4. Set the `Callback URL` generated by Tyk on your IdP | ||||||
Comment on lines
+32
to
+33
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. if this is specific for There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @sredxny @andyo-tyk This is a very good point - I was not aware of this since in the UI the scopes are placed as optional and I was getting a generic email and not the one from the user I was logging in with. |
||||||
5. Provide your SSO profile in Tyk with the `Discover URL (well known endpoint)` | ||||||
6. Visit the Login URL after saving your profile to initialize the login | ||||||
7. More documentation of the flow can be found on our [GitHub TIB repo README](https://github.com/TykTechnologies/tyk-identity-broker) | ||||||
|
||||||
## SSO using SAML | ||||||
|
||||||
SAML authentication is a way for a service provider, such as the Tyk Dashboard or Tyk Classic Developer Portal, to assert the Identity of a User via a third party. | ||||||
|
||||||
Tyk Identity Broker can act as the go-between for the Tyk Dashboard and Tyk Classic Developer Portal and a third party identity provider. Tyk Identity broker can also interpret and provide information about the user who is logging in such as Name, Email and group or role metadata for enforcing role based access control in the Tyk Dashboard. | ||||||
|
||||||
The provider config for SAML has the following values that can be configured in a Profile: | ||||||
|
||||||
`SAMLBaseURL` - The Tyk Identity Broker host that will be used in the metadata document for the Service Provider. This will form part of the metadata URL used as the Entity ID by the IdP. The redirects configured in the IdP must match the expected host and URI configured in the metadata document made available by Tyk Identity Broker. | ||||||
|
||||||
`FailureRedirect` - Where to redirect failed login requests. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is this a URL? |
||||||
|
||||||
`IDPMetaDataURL` - The metadata URL of your IDP which will provide Tyk Identity Broker with information such as EntityID, Endpoints (Single Sign On Service Endpoint, Single Logout Service Endpoint), its public X.509 cert, NameId Format, Organisation info and Contact info. | ||||||
|
||||||
This metadata XML can be signed providing a public X.509 cert and the private key. | ||||||
|
||||||
`CertLocation`: An X.509 certificate and the private key for signing your requests to the IDP, this should be one single file with the cert and key concatenated. When using internal identity broker, this value should be the id of the certificate uploaded via certificate manager in dashboard, otherwise it should be a path where the certificate is placed. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
`ForceAuthentication` - Ignore any session held by the IDP and force re-login every request. | ||||||
|
||||||
`SAMLEmailClaim` - Key for looking up the email claim in the SAML assertion form the IDP. Defaults to: `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress` | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These schemas seem to reference broken links on xmlsoap |
||||||
|
||||||
`SAMLForenameClaim` - Key for looking up the forename claim in the SAML assertion form the IDP. Defaults to: `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/forename` | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These schemas seem to reference broken links on xmlsoap |
||||||
|
||||||
`SAMLSurnameClaim` - Key for looking up the surname claim in the SAML assertion form the IDP. Defaults to: `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname` | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These schemas seem to reference broken links on xmlsoap |
||||||
|
||||||
Example profile configuration: | ||||||
|
||||||
```json | ||||||
{ | ||||||
"ActionType": "GenerateOrLoginUserProfile", | ||||||
"ID": "saml-sso-login", | ||||||
"OrgID": "{YOUR_ORGANISATION_ID}", | ||||||
"CustomEmailField": "", | ||||||
"IdentityHandlerConfig": { | ||||||
"DashboardCredential": "{DASHBOARD_USER_API_KEY}" | ||||||
}, | ||||||
"ProviderConfig": { | ||||||
"SAMLBaseURL": "https://{HOST}", | ||||||
"FailureRedirect": "http://{DASHBOARD_HOST}:{PORT}/?fail=true", | ||||||
"IDPMetaDataURL": "{IDP_METADATA_URL}", | ||||||
"CertLocation":"myservice.cert", | ||||||
"ForceAuthentication": false, | ||||||
"SAMLEmailClaim": "", | ||||||
"SAMLForenameClaim": "", | ||||||
"SAMLSurnameClaim": "" | ||||||
}, | ||||||
"ProviderName": "SAMLProvider", | ||||||
"ReturnURL": "http://{DASHBOARD_URL}:{PORT}/tap", | ||||||
"Type": "redirect" | ||||||
} | ||||||
``` | ||||||
### Example Video | ||||||
|
||||||
We have a video that explains how to provide Tyk Dashboard SSO Access via SAML using Microsoft Azure as an IDP and our internal Dashboard TIB. | ||||||
|
||||||
{{< youtube 4L9aetRrHqI >}} | ||||||
|
||||||
Starting from Tyk v3.0 the Tyk Identity Broker has been added as a built-in feature of the Tyk Dashboard. Users will no longer need to set up a separated instance of the service to make it work with Dashboard. However this is not mandatory and users still can set the configs to connect to an external TIB. | ||||||
|
||||||
For more information on using TIB internally or configuring it externally, see the documentation for [Tyk Identity Broker (TIB)]({{< ref "tyk-identity-broker" >}}). |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,34 @@ | ||
--- | ||
date: 2017-03-24T16:58:32Z | ||
title: Social Provider | ||
menu: | ||
main: | ||
parent: "3rd Party Identity Providers" | ||
weight: 0 | ||
title: Integrate with Social Identity Providers | ||
description: Overview of SSO integration with Social Providers | ||
tags: ["Single sign-on", "SSO", "integration", "social", "TIB", "Tyk Identity Broker", "identity"] | ||
--- | ||
|
||
The social provider for the Tyk Identity Broker is a thin wrapper around the excellent `goth` social auth library, modified slightly to work with a multi-tenant structure. | ||
|
||
## <a name="integration-tutorials-social"></a>Integration Tutorials: Social Overview | ||
The social provider for the Tyk Identity Broker is a thin wrapper around the excellent `goth` social auth library, modified slightly to work with a multi-tenant structure. The social provider should provide seamless integration with: | ||
The social provider should provide seamless integration with: | ||
- Bitbucket | ||
- Digital Ocean | ||
- Dropbox | ||
- GitHub | ||
- Google+ | ||
- Salesforce | ||
|
||
* Bitbucket | ||
* Digital Ocean | ||
* Dropbox | ||
* GitHub | ||
* Google+ | ||
* Salesforce | ||
The social provider is ideal for SSO-style logins for the Dashboard or for the Portal. For certain providers (mainly Google+), where email addresses are returned as part of the user data, a constraint can be added to validate the users domain. This is useful for Google For Business Apps users that want to grant access to the Dashboard for their domain users. | ||
|
||
The social provider is ideal for SSO-style logins for the Dashboard or for the Portal. For certain providers (mainly Google+), where email addresses are returned as part of the user data, a constraint can be added to validate the users domain. This is useful for Google For Business Apps users that want to grant access to their domain users for the Dashboard. | ||
Check out [this section]({{< ref "advanced-configuration/integrate" >}}) for SSO deployment examples. | ||
|
||
For more social provider examples see the Tyk Identity Broker (TIB) v0.2 Repo [Readme](https://github.com/TykTechnologies/tyk-identity-broker/blob/master/README.md#social). | ||
### Configuring your Social IdP in Tyk Dashboard | ||
|
||
Follow the steps below to configure your social IdP in Tyk Dashboard: | ||
|
||
1. Access the **Identity Manager** under System Management in the Tyk Dashboard | ||
2. Create a profile for your preferred IdP | ||
3. Retrieve the `client_id` and `secret` defined on your IdP | ||
4. Set the `Callback URL` generated by Tyk on your IdP | ||
5. Provide your SSO profile in Tyk with the `Discover URL (well known endpoint)` | ||
6. Visit the Login URL after saving your profile to initialize the login | ||
7. Further documentation of the flow can be found on our [GitHub TIB repo README](https://github.com/TykTechnologies/tyk-identity-broker) |
This file was deleted.
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.
@dcs3spp @andyo-tyk would we be good to explain what sso means or do we have it somewhere else and I missed it?
Update:
After reading this I see we have content here https://deploy-preview-4736--tyk-docs.netlify.app/docs/nightly/advanced-configuration/integrate/sso/ - have you considered moving this page from the "reference" tab to the JTBD section in API management?
...also there's another place that explains sso - https://tyk.io/docs/tyk-cloud/teams--users/single-sign-on/#what-is-sso, Should we consolidate it to one and link to it?
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.
Also, we put it under the planning phase but it's not really clear why. We should explain what the JTBD is and how it's part of the planning phase. (could be in a separate PR, but it's needed as it's not trivial to connect the dots when one reads it.