{"version":3,"file":"AppDetails.mjs","sources":["../../../../../../../../web/src/adminPortal/sso/AppDetails.tsx"],"sourcesContent":["import { adminPortalAssets } from '@stytch/internal-assets';\nimport React from 'react';\n\nimport { CopyableText } from '../components/CopyableText';\nimport { IdpField } from '../components/IdpField';\nimport { Instruction } from '../components/Instruction';\nimport { InstructionSet } from '../components/InstructionSet';\nimport { PaddedContainer } from '../components/PaddedContainer';\nimport { SettingsList } from '../components/SettingsList';\nimport { Screenshot } from '../shared/components/Screenshot';\nimport { useOrgInfo } from '../utils/useOrgInfo';\nimport { getIdpAndConnectionInfo } from './IdpInfo';\nimport { OIDCTaggedConnection, SAMLTaggedConnection, TaggedConnection } from './TaggedConnection';\n\nconst OktaSamlInstructions = ({ connection: connectionProp }: { connection: SAMLTaggedConnection }) => {\n  const { connection, idp } = getIdpAndConnectionInfo(connectionProp);\n\n  return (\n    <InstructionSet>\n      <Instruction>\n        Under <b>SAML Settings → General</b> within the app setup flow, input the following values:\n      </Instruction>\n      <PaddedContainer>\n        <SettingsList>\n          <IdpField title={idp.acsUrlLabel} value={connection.acs_url} isCopyable={true} />\n          <IdpField title=\"Single sign-on URL (as both Recipient and Destination URL)\" value=\"selected\" />\n          <IdpField title={idp.audienceUriLabel} value={connection.audience_uri} isCopyable={true} />\n          <IdpField title={idp.nameIdFormatLabel} value=\"EmailAddress\" />\n          <IdpField title=\"Application username\" value=\"Email\" />\n          <IdpField title=\"Update application username on\" value=\"Create and update\" />\n        </SettingsList>\n      </PaddedContainer>\n    </InstructionSet>\n  );\n};\n\nconst EntraSamlInstructions = ({ connection: connectionProp }: { connection: SAMLTaggedConnection }) => {\n  const { connection, idp } = getIdpAndConnectionInfo(connectionProp);\n\n  return (\n    <InstructionSet>\n      <Instruction>\n        Within your new application navigate to the <b>Single Sign-On</b> page in the left-hand navigation of the\n        application view, and select <b>SAML</b>.\n      </Instruction>\n      <Instruction>\n        Within the <b>Set up Single Sign-On with SAML page</b>, select the <b>Edit</b> button on Step 1:{' '}\n        <b>Basic SAML Configuration</b> and add the following values:\n      </Instruction>\n      <PaddedContainer>\n        <SettingsList>\n          <IdpField title={idp.audienceUriLabel} value={connection.audience_uri} isCopyable={true} />\n          <IdpField title={idp.acsUrlLabel} value={connection.acs_url} isCopyable={true} />\n        </SettingsList>\n      </PaddedContainer>\n      <Screenshot src={adminPortalAssets.entraSetupSso} alt=\"Entra Setup SSO\" />\n      <Screenshot src={adminPortalAssets.entraBasicSamlConfig} alt=\"Entra Basic SAML Config\" />\n      <Instruction>\n        Leave the <b>Optional</b> fields empty (Sign on URL, Relay State, and Logout URL) and click <b>Save</b>.\n      </Instruction>\n    </InstructionSet>\n  );\n};\n\nconst GoogleSamlInstructions = ({ connection: connectionProp }: { connection: SAMLTaggedConnection }) => {\n  const { connection, idp } = getIdpAndConnectionInfo(connectionProp);\n\n  return (\n    <InstructionSet>\n      <div>\n        <Instruction>\n          Under <b>Service provider details</b> input the following:\n        </Instruction>\n        <PaddedContainer>\n          <SettingsList>\n            <IdpField title={idp.acsUrlLabel} value={connection.acs_url} isCopyable={true} />\n            <IdpField title={idp.audienceUriLabel} value={connection.audience_uri} isCopyable={true} />\n          </SettingsList>\n        </PaddedContainer>\n      </div>\n      <Instruction>\n        Under <b>Name ID → Name ID format</b> select <b>EMAIL</b> from the dropdown.\n      </Instruction>\n      <Instruction>\n        Under <b>Name ID</b> select <b>Basic information → Primary email</b> from the dropdown.\n      </Instruction>\n      <Screenshot src={adminPortalAssets.googleSamlSpDetails} alt=\"Google SAML SP Details\" />\n      <Instruction>\n        Click <b>Continue</b>.\n      </Instruction>\n    </InstructionSet>\n  );\n};\n\nconst OktaOidcInstructions = ({ connection: connectionProp }: { connection: OIDCTaggedConnection }) => {\n  const { connection, idp } = getIdpAndConnectionInfo(connectionProp);\n\n  const { data } = useOrgInfo();\n  const organizationName = data?.organization_name ?? '';\n\n  return (\n    <InstructionSet>\n      <Instruction>\n        Under <b>General Settings</b> name your application {organizationName}.\n      </Instruction>\n      <Instruction>\n        Select <b>Authorization code</b> as the <b>Grant Type</b>.\n      </Instruction>\n      <Screenshot src={adminPortalAssets.oktaGrantType} alt=\"Okta grant type\" />\n      <div>\n        <Instruction>\n          Add the following value as a <b>{idp.redirectUrlLabel}</b>:\n        </Instruction>\n        <PaddedContainer>\n          <CopyableText>{connection.redirect_url}</CopyableText>\n        </PaddedContainer>\n      </div>\n      <div>\n        <Instruction>\n          Under <b>Assignments</b> specify whether you want to allow everyone in application to access, or only a subset\n          of your users. You can change this value later.\n        </Instruction>\n        <PaddedContainer>\n          <Instruction>\n            If you want all users to be able to access {organizationName} make sure to also enable Just-in-Time\n            Provisioning via this SSO Connection.\n          </Instruction>\n        </PaddedContainer>\n      </div>\n      <Screenshot src={adminPortalAssets.oktaAccessType} alt=\"Okta access type\" />\n      <Instruction>Click save.</Instruction>\n    </InstructionSet>\n  );\n};\n\nconst EntraOidcInstructions = ({ connection: connectionProp }: { connection: OIDCTaggedConnection }) => {\n  const { connection, idp } = getIdpAndConnectionInfo(connectionProp);\n\n  return (\n    <InstructionSet>\n      <Instruction>\n        Within the App Registration page, navigate to the <b>Authentication</b> page from the left-hand navigation and\n        under <b>Platform configurations</b> select <b>Add a platform</b> and choose <b>Web</b> as the platform type.\n      </Instruction>\n      <Screenshot src={adminPortalAssets.entraOidcAuthSetup} alt=\"Entra OIDC Auth Setup\" />\n      <div>\n        <Instruction>\n          In the <b>Configure web</b> page, enter the following value as the <b>Redirect URI</b>:\n        </Instruction>\n        <PaddedContainer>\n          <SettingsList>\n            <IdpField title={idp.redirectUrlLabel} value={connection.redirect_url} isCopyable={true} />\n          </SettingsList>\n        </PaddedContainer>\n        <Screenshot src={adminPortalAssets.entraOidcConfigureRedirectUri} alt=\"Entra OIDC Configure Redirect URI\" />\n      </div>\n      <Instruction>\n        Leave all other fields blank and click <b>Configure</b> to save.\n      </Instruction>\n    </InstructionSet>\n  );\n};\n\nexport const DefaultAppDetails = ({ connection: connectionProp }: { connection: TaggedConnection }) => {\n  const { connection, idp, type } = getIdpAndConnectionInfo(connectionProp);\n\n  return (\n    <SettingsList>\n      {type === 'saml' && (\n        <>\n          <IdpField title={idp.acsUrlLabel} value={connection.acs_url} isCopyable={true} />\n          <IdpField title={idp.audienceUriLabel} value={connection.audience_uri} isCopyable={true} />\n          <IdpField title={idp.nameIdFormatLabel} value={idp.nameIdFormatValue} />\n        </>\n      )}\n      {type === 'oidc' && <IdpField title={idp.redirectUrlLabel} value={connection.redirect_url} isCopyable={true} />}\n    </SettingsList>\n  );\n};\n\nexport const AppDetails = ({ connection: connectionProp }: { connection: TaggedConnection }) => {\n  const { connection, type } = getIdpAndConnectionInfo(connectionProp);\n\n  if (type === 'saml') {\n    switch (connection.identity_provider) {\n      case 'okta':\n        return <OktaSamlInstructions connection={connection} />;\n      case 'microsoft-entra':\n        return <EntraSamlInstructions connection={connection} />;\n      case 'google-workspace':\n        return <GoogleSamlInstructions connection={connection} />;\n    }\n  }\n\n  if (type === 'oidc') {\n    switch (connection.identity_provider) {\n      case 'okta':\n        return <OktaOidcInstructions connection={connection} />;\n      case 'microsoft-entra':\n        return <EntraOidcInstructions connection={connection} />;\n    }\n  }\n\n  return <DefaultAppDetails connection={connection} />;\n};\n"],"names":["OktaSamlInstructions","connection","connectionProp","idp","getIdpAndConnectionInfo","React","InstructionSet","Instruction","b","PaddedContainer","SettingsList","IdpField","title","acsUrlLabel","value","acs_url","isCopyable","audienceUriLabel","audience_uri","nameIdFormatLabel","EntraSamlInstructions","Screenshot","src","adminPortalAssets","entraSetupSso","alt","entraBasicSamlConfig","GoogleSamlInstructions","div","googleSamlSpDetails","OktaOidcInstructions","data","useOrgInfo","organizationName","organization_name","oktaGrantType","redirectUrlLabel","CopyableText","redirect_url","oktaAccessType","EntraOidcInstructions","entraOidcAuthSetup","entraOidcConfigureRedirectUri","DefaultAppDetails","type","nameIdFormatValue","AppDetails","identity_provider"],"mappings":"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"}