Browse Source

add jumpcloud as sso provider (#30058)

Josh Ferge 3 years ago
parent
commit
94bb49e8e2

+ 1 - 0
setup.py

@@ -121,6 +121,7 @@ setup(
             "auth_okta = sentry.auth.providers.saml2.okta",
             "auth_onelogin = sentry.auth.providers.saml2.onelogin",
             "auth_rippling = sentry.auth.providers.saml2.rippling",
+            "auth_jumpcloud = sentry.auth.providers.saml2.jumpcloud",
             "auth_saml2 = sentry.auth.providers.saml2.generic",
             "jira = sentry_plugins.jira",
             "freight = sentry_plugins.freight",

+ 1 - 0
src/sentry/auth/providers/saml2/jumpcloud/__init__.py

@@ -0,0 +1 @@
+default_app_config = "sentry.auth.providers.saml2.jumpcloud.apps.Config"

+ 12 - 0
src/sentry/auth/providers/saml2/jumpcloud/apps.py

@@ -0,0 +1,12 @@
+from django.apps import AppConfig
+
+
+class Config(AppConfig):
+    name = "sentry.auth.providers.saml2.jumpcloud"
+
+    def ready(self):
+        from sentry.auth import register
+
+        from .provider import JumpcloudSAML2Provider
+
+        register("jumpcloud", JumpcloudSAML2Provider)

+ 5 - 0
src/sentry/auth/providers/saml2/jumpcloud/provider.py

@@ -0,0 +1,5 @@
+from sentry.auth.providers.saml2.generic.provider import GenericSAML2Provider
+
+
+class JumpcloudSAML2Provider(GenericSAML2Provider):
+    name = "Jumpcloud"

+ 9 - 0
src/sentry/auth/providers/saml2/jumpcloud/views.py

@@ -0,0 +1,9 @@
+from sentry.auth.providers.saml2.generic.view import GenericSAML2View
+
+
+class JumpcloudSAML2View(GenericSAML2View):
+    """
+    Jumpcloud is a subset of our generic SAML2 implementation. However,
+    this may not be obvious to end users. This inheritance class allows us to
+    explicitly surface this option to them.
+    """

+ 1 - 0
src/sentry/static/sentry/images/logos/logo-jumpcloud.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 80 80"><path fill="#B3E9E7" fill-rule="evenodd" d="M38 20a14.3 14.3 0 0 0-12.4 11.6c-.1.2-.1.3-.5.2l-3 .3a11.1 11.1 0 0 0-7.2 6.1h-.7c-2.1-.8-4.4-.8-6.6 0A11.2 11.2 0 0 0 0 47c-.9 6.2 3.1 11.9 9 12.8 1.4.3 60.4.3 61.7 0 2.3-.3 4.3-1.4 6-3.2 1.9-1.8 2.8-4 3.1-6.9.4-3.2-1-6.8-3.4-9.1a10.8 10.8 0 0 0-9.7-2.8l-.4.1-.2-1.1c-.6-4-2.8-7.3-6.3-9a11.6 11.6 0 0 0-8.2-.8c-.2 0-.3-.1-.7-.8-.7-1-2.5-2.8-3.5-3.6-2.8-2-6.4-2.9-9.5-2.5Z" clip-rule="evenodd"/><path fill="#13A19C" fill-rule="evenodd" d="M48.6 36.2c-2 .4-3.6 1.3-5 2.6-.9 1-1.3 1.6-1.8 2.6a8 8 0 0 0-.9 3.9 9 9 0 0 0 2.2 6.2c.4.4.5.6.4.6a19 19 0 0 0-6.4 3.2c-.2.2-.2.2-1-.2a19.2 19.2 0 0 0-3-1.2l.5-.7c.5-.7 1.1-1.8 1.4-2.7.3-.9.3-3 .1-4a8.4 8.4 0 0 0-2.6-4.3 7.7 7.7 0 0 0-4.7-1.9c-1.5 0-2.6.2-4 .9-1 .4-1.2.6-2 1.5a7.6 7.6 0 0 0-2.1 3.5c-.4 1.2-.4 3 0 4.1.3 1 1 2.4 1.6 3l.4.6-1 .4c-2.1.6-3.7 1.6-5 2.9-.6.6-1 1-1.3 1.7a6 6 0 0 0-.4 1c0 .2 26 0 26 0s26 .2 26 0a7 7 0 0 0-.6-2c-1.2-2.3-4-4.4-7.5-5.5l-1-.3.5-.8a9 9 0 0 0 2.1-6c0-2.5-1-5-3-6.7-2-2-5-2.9-8-2.4Z" clip-rule="evenodd"/></svg>

+ 2 - 0
static/app/plugins/components/pluginIcon.tsx

@@ -13,6 +13,7 @@ import gitlab from 'sentry-logos/logo-gitlab.svg';
 import heroku from 'sentry-logos/logo-heroku.svg';
 import jira from 'sentry-logos/logo-jira.svg';
 import jiraserver from 'sentry-logos/logo-jira-server.svg';
+import jumpcloud from 'sentry-logos/logo-jumpcloud.svg';
 import lighthouse from 'sentry-logos/logo-lighthouse.svg';
 import msteams from 'sentry-logos/logo-msteams.svg';
 import opsgenie from 'sentry-logos/logo-opsgenie.svg';
@@ -58,6 +59,7 @@ export const ICON_PATHS = {
   heroku,
   jira,
   jira_server: jiraserver,
+  jumpcloud,
   lighthouse,
   msteams,
   opsgenie,

+ 2 - 0
static/app/views/settings/components/identityIcon.tsx

@@ -10,6 +10,7 @@ import githubEnterprise from 'sentry-logos/logo-github-enterprise.svg';
 import gitlab from 'sentry-logos/logo-gitlab.svg';
 import google from 'sentry-logos/logo-google.svg';
 import jiraserver from 'sentry-logos/logo-jira-server.svg';
+import jumpcloud from 'sentry-logos/logo-jumpcloud.svg';
 import msteams from 'sentry-logos/logo-msteams.svg';
 import okta from 'sentry-logos/logo-okta.svg';
 import onelogin from 'sentry-logos/logo-onelogin.svg';
@@ -33,6 +34,7 @@ export const ICON_PATHS = {
   gitlab,
   google,
   jira_server: jiraserver,
+  jumpcloud,
   msteams,
   okta,
   onelogin,

+ 1 - 0
static/app/views/settings/organizationAuth/organizationAuthList.tsx

@@ -20,6 +20,7 @@ const providerPopularity = {
   onelogin: 5,
   rippling: 6,
   auth0: 7,
+  jumpcloud: 8,
 };
 
 type Props = {

+ 4 - 0
static/less/auth.less

@@ -61,6 +61,10 @@ section.org-login {
     background-image: url(~sentry-logos/logo-okta.svg);
   }
 
+  &.jumpcloud {
+    background-image: url(~sentry-logos/logo-jumpcloud.svg);
+  }
+
   &.rippling {
     background-image: url(~sentry-logos/logo-rippling.svg);
   }