Skip to content

Commit c3df67a

Browse files
authored
chore(ui): Layer architecture for configure steps per IdP and protocol (#8651)
1 parent 5c68f3f commit c3df67a

13 files changed

Lines changed: 1792 additions & 1329 deletions

File tree

.changeset/brown-singers-fall.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'@clerk/localizations': patch
3+
'@clerk/shared': patch
4+
'@clerk/ui': patch
5+
---
6+
7+
Layer architecture for configure steps per IdP and protocol on `<ConfigureSSO />`

packages/localizations/src/en-US.ts

Lines changed: 136 additions & 164 deletions
Original file line numberDiff line numberDiff line change
@@ -340,207 +340,179 @@ export const enUS: LocalizationResource = {
340340
},
341341
},
342342
configureStep: {
343-
attributeMapping: {
344-
title: 'We expect your SAML responses to have the following specific attributes:',
345-
columns: {
346-
attribute: 'Attribute',
347-
claimName: 'Claim Name',
348-
claimValue: 'Claim Value',
349-
},
343+
attributeMappingTable: {
350344
badges: {
351345
required: 'Required',
352346
optional: 'Optional',
353347
},
354-
rows: {
355-
email: {
356-
attribute: 'Email address',
357-
claim: 'mail',
358-
},
359-
firstName: {
360-
attribute: 'First Name',
361-
claim: 'firstName',
362-
},
363-
lastName: {
364-
attribute: 'Last Name',
365-
claim: 'lastName',
366-
},
367-
},
368348
},
369349
samlOkta: {
370-
headerTitle: 'Configure Okta Workforce',
371-
attributeMapping: {
372-
columns: {
373-
name: 'Name',
374-
value: 'Value',
375-
},
376-
rows: {
377-
email: { name: 'mail', value: 'user.profile.mail' },
378-
firstName: { name: 'firstName', value: 'user.profile.firstName' },
379-
lastName: { name: 'lastName', value: 'user.profile.lastName' },
350+
mainHeaderTitle: 'Configure Okta Workforce',
351+
createAppStep: {
352+
headerSubtitle: 'Create a new enterprise application in your Okta Dashboard',
353+
createAppInstructions: {
354+
title: 'Create a new enterprise application in Okta',
355+
step1: 'Sign in to Okta and go to <bold>Admin → Applications.</bold>',
356+
step2: 'Click <bold>Create App Integration.</bold>',
357+
step3: 'Select <bold>SAML 2.0.</bold>',
358+
step4: 'Fill in the General Settings (App name is required).',
359+
step5: 'Click <bold>Next</bold> to complete creating the application.',
380360
},
381-
},
382-
spFields: {
383-
acsUrl: {
384-
label: 'Single sign-on URL',
361+
serviceProviderInstructions: {
362+
title: 'Configure service provider',
363+
paragraph1:
364+
'Once you have moved forward from the General Settings instructions, you will be presented with the Configure SAML page.',
365+
paragraph2:
366+
'To configure your service provider (Clerk), you must add these two fields to your Okta application:',
367+
serviceProviderFields: {
368+
acsUrl: {
369+
label: 'Single sign-on URL',
370+
},
371+
spEntityId: {
372+
label: 'Audience URI (SP Entity ID)',
373+
},
374+
},
385375
},
386-
spEntityId: {
387-
label: 'Audience URI (SP Entity ID)',
376+
completeSamlIntegrationInstructions: {
377+
title: 'Complete SAML integration',
378+
step1: 'Select <bold>This is an internal app that we have created</bold> from the options menu.',
379+
step2: 'Complete the form with any comments and select <bold>"Finish"</bold>.',
388380
},
389381
},
390-
createApp: {
391-
headerSubtitle: 'Create a new enterprise application in your Okta Dashboard',
392-
title: 'Create a new enterprise application in Okta',
393-
step1: 'Sign in to Okta and go to <bold>Admin → Applications.</bold>',
394-
step2: 'Click <bold>Create App Integration.</bold>',
395-
step3: 'Select <bold>SAML 2.0.</bold>',
396-
step4: 'Fill in the General Settings (App name is required).',
397-
step5: 'Click <bold>Next</bold> to complete creating the application.',
398-
},
399-
serviceProvider: {
400-
title: 'Configure service provider',
401-
paragraph1:
402-
'Once you have moved forward from the General Settings instructions, you will be presented with the Configure SAML page.',
403-
paragraph2:
404-
'To configure your service provider (Clerk), you must add these two fields to your Okta application:',
405-
},
406-
completeSamlIntegration: {
407-
title: 'Complete SAML integration',
408-
step1: 'Select <bold>This is an internal app</bold> that we have created from the options menu.',
409-
step2: 'Complete the form with any comments and select <bold>Finish</bold>.',
410-
},
411-
configureAttributes: {
412-
headerSubtitle: 'Map user attributes from Okta to Clerk',
382+
attributeMappingStep: {
383+
headerSubtitle: 'Map user attributes from Okta to your application',
384+
paragraph: 'We expect your SAML responses to have the following specific attributes:',
413385
step1:
414386
'Open the <bold>Sign On</bold> tab of your Okta application and locate the <bold>Attribute Statements</bold> section. If you don’t see it, click <bold>Show legacy configuration</bold>, then <bold>Edit</bold>.',
415387
step2: 'Select <bold>Add Expression</bold> for each row below, then enter the matching name and value:',
416-
pairs: {
417-
conjunction: ' and ',
418-
email: {
419-
name: 'mail',
420-
expression: 'user.profile.mail',
388+
attributeMappingTable: {
389+
columns: {
390+
name: 'Name',
391+
expression: 'Expression',
421392
},
422-
firstName: {
423-
name: 'firstName',
424-
expression: 'user.profile.firstName',
425-
},
426-
lastName: {
427-
name: 'lastName',
428-
expression: 'user.profile.lastName',
393+
rows: {
394+
email: { name: 'mail', expression: 'user.mail' },
395+
firstName: { name: 'firstName', expression: 'user.firstName' },
396+
lastName: { name: 'lastName', expression: 'user.lastName' },
429397
},
430398
},
431399
},
432-
assignUsers: {
433-
headerSubtitle: 'Assign users to the enterprise app',
434-
title: 'Assign selected user or group in Okta',
435-
paragraph: 'You need to assign users or groups to your enterprise app before they can use it to sign in.',
436-
step1: 'In the Okta dashboard, select the <bold>Assignments</bold> tab.',
437-
step2:
438-
'Select the <bold>Assign</bold> dropdown. You can either select <bold>Assign to people</bold> or <bold>Assign to groups</bold>.',
439-
step3: 'In the search field, enter the user or group of users that you want to assign to the application.',
440-
step4: 'Select the <bold>Assign</bold> button next to the user or group that you want to assign.',
441-
step5: 'Select the <bold>Done</bold> button to complete the assignment.',
400+
assignUsersStep: {
401+
headerSubtitle: 'Assign users to the enterprise application',
402+
assignUsersInstructions: {
403+
title: 'Assign selected user or group in Okta',
404+
paragraph:
405+
'You need to assign users or groups to your enterprise application before they can use it to sign in.',
406+
step1: 'In the Okta dashboard, select the <bold>Assignments</bold> tab.',
407+
step2:
408+
'Select the <bold>Assign</bold> dropdown. You can either select <bold>Assign to people</bold> or <bold>Assign to groups</bold>.',
409+
step3: 'In the search field, enter the user or group of users that you want to assign to the application.',
410+
step4: 'Select the <bold>Assign</bold> button next to the user or group that you want to assign.',
411+
step5: 'Select the <bold>Done</bold> button to complete the assignment.',
412+
},
442413
},
443-
metadataUrl: {
414+
identityProviderMetadataStep: {
444415
headerSubtitle: 'Configure identity provider metadata',
445-
label: 'Metadata URL',
446-
placeholder: 'Paste URL here...',
447-
description: 'In your Okta SAML app, go to the Sign On tab and retrieve the metadata URL. Paste it below.',
448-
},
449-
modes: {
450-
ariaLabel: 'Configuration mode',
451-
metadataUrl: 'Add via metadata',
452-
manual: 'Configure manually',
453-
},
454-
submitSamlConfig: {
455-
title: 'Fill in your Okta SAML application details',
456-
},
457-
manual: {
458-
description: 'In your Okta SAML app, go to the Sign On tab and retrieve these values.',
459-
signOnUrl: {
460-
label: 'Sign on URL',
461-
placeholder: 'Paste URL here...',
416+
modes: {
417+
title: 'Fill in your Okta SAML application details',
418+
ariaLabel: 'Configuration ',
419+
metadataUrl: 'Add via metadata',
420+
manual: 'Configure manually',
462421
},
463-
issuer: {
464-
label: 'Issuer',
422+
metadataUrl: {
423+
label: 'Metadata URL',
465424
placeholder: 'Paste URL here...',
425+
description: 'In your Okta SAML app, go to the Sign On tab and retrieve the metadata URL. Paste it below.',
466426
},
467-
signingCertificate: {
468-
label: 'Signing certificate',
469-
uploadFile: 'Upload file',
470-
replaceFile: 'Replace file',
471-
removeFile: 'Remove file',
472-
fileUploaded: 'File uploaded',
427+
manual: {
428+
description: 'In your Okta SAML app, go to the Sign On tab and retrieve these values.',
429+
signOnUrl: {
430+
label: 'Single Sign-On URL',
431+
placeholder: 'Paste URL here...',
432+
},
433+
issuer: {
434+
label: 'Issuer',
435+
placeholder: 'Paste URL here...',
436+
},
437+
signingCertificate: {
438+
label: 'X.509 certificate',
439+
uploadFile: 'Upload file',
440+
replaceFile: 'Replace file',
441+
removeFile: 'Remove file',
442+
fileUploaded: 'File uploaded',
443+
},
473444
},
474445
},
475446
},
476447
samlCustom: {
477-
headerTitle: 'Configure your identity provider (IdP)',
478-
attributeMapping: {
479-
columns: {
480-
userProfile: 'Identity Provider User Profile',
481-
attributeName: 'Attribute Name',
448+
mainHeaderTitle: 'Configure your identity provider (IdP)',
449+
createAppStep: {
450+
headerSubtitle: 'Create a new enterprise application in your identity provider’s admin dashboard',
451+
createAppInstructions: {
452+
title: 'Create a SAML application on your identity provider',
453+
paragraph:
454+
'In your identity provider’s admin dashboard, create a new SAML 2.0 application and use the following service provider details:',
482455
},
483-
rows: {
484-
id: { userProfile: 'Unique identifier representing a user', attributeName: 'id' },
485-
email: { userProfile: 'User’s email address', attributeName: 'email' },
486-
firstName: { userProfile: 'User’s first name', attributeName: 'firstName' },
487-
lastName: { userProfile: 'User’s last name', attributeName: 'lastName' },
456+
serviceProviderFields: {
457+
acsUrl: {
458+
label: 'Assertion consumer service (ACS) URL',
459+
},
460+
spEntityId: {
461+
label: 'Service provider entity ID',
462+
},
488463
},
489464
},
490-
spFields: {
491-
acsUrl: {
492-
label: 'Assertion consumer service (ACS) URL',
493-
},
494-
spEntityId: {
495-
label: 'Service provider entity ID',
465+
attributeMappingStep: {
466+
headerSubtitle: 'Map user attributes from your identity provider to your application.',
467+
paragraph: 'We expect your SAML response to return the user’s email, first name and last name.',
468+
attributeMappingTable: {
469+
columns: {
470+
userProfile: 'Identity Provider User Profile',
471+
attributeName: 'Attribute Name',
472+
},
473+
rows: {
474+
email: { userProfile: 'Primary email', attributeName: 'email' },
475+
firstName: { userProfile: 'First name', attributeName: 'firstName' },
476+
lastName: { userProfile: 'Last name', attributeName: 'lastName' },
477+
},
496478
},
497479
},
498-
createApp: {
499-
headerSubtitle:
500-
'Register Clerk as a service provider in your IdP, then add your identity provider configuration.',
501-
title: 'Create a SAML application on your identity provider',
502-
subtitle:
503-
'In your identity provider’s admin dashboard, create a new SAML 2.0 application and use the following service provider details:',
504-
},
505-
configureAttributes: {
506-
headerSubtitle: 'Map user attributes from your identity provider to Clerk.',
507-
title: 'We expect your SAML responses to have the following specific attributes:',
508-
},
509-
assignUsers: {
510-
headerSubtitle: 'Assign users to the enterprise app',
480+
assignUsersStep: {
481+
headerSubtitle: 'Assign users to the enterprise application',
511482
title: 'Assign selected user or group',
512-
paragraph: 'You need to assign users or groups to your enterprise app before they can use it to sign in.',
483+
paragraph:
484+
'You need to assign users or groups to your enterprise application before they can use it to sign in.',
513485
},
514-
metadataUrl: {
486+
identityProviderMetadataStep: {
515487
headerSubtitle: 'Configure identity provider metadata',
516-
label: 'Metadata URL',
517-
placeholder: 'Paste URL here...',
518-
description: 'In your enterprise app, retrieve the metadata URL. Paste it below.',
519-
},
520-
modes: {
521-
ariaLabel: 'Configuration mode',
522-
metadataUrl: 'Add via metadata',
523-
manual: 'Configure manually',
524-
},
525-
submitSamlConfig: {
526-
title: 'Fill in your SAML application details',
527-
},
528-
manual: {
529-
description: 'In your SAML app, retrieve these values.',
530-
signOnUrl: {
531-
label: 'Sign on URL',
532-
placeholder: 'Paste URL here...',
488+
modes: {
489+
title: 'Fill in your SAML application details',
490+
ariaLabel: 'Configuration ',
491+
metadataUrl: 'Add via metadata',
492+
manual: 'Configure manually',
533493
},
534-
issuer: {
535-
label: 'Issuer',
494+
metadataUrl: {
495+
label: 'Metadata URL',
536496
placeholder: 'Paste URL here...',
497+
description: 'In your enterprise application, retrieve the metadata URL. Paste it below.',
537498
},
538-
signingCertificate: {
539-
label: 'Signing certificate',
540-
uploadFile: 'Upload file',
541-
replaceFile: 'Replace file',
542-
removeFile: 'Remove file',
543-
fileUploaded: 'File uploaded',
499+
manual: {
500+
description: 'In your SAML application, retrieve these values.',
501+
signOnUrl: {
502+
label: 'Single Sign-On URL',
503+
placeholder: 'Paste URL here...',
504+
},
505+
issuer: {
506+
label: 'Issuer',
507+
placeholder: 'Paste URL here...',
508+
},
509+
signingCertificate: {
510+
label: 'X.509 certificate',
511+
uploadFile: 'Upload file',
512+
replaceFile: 'Replace file',
513+
removeFile: 'Remove file',
514+
fileUploaded: 'File uploaded',
515+
},
544516
},
545517
},
546518
},

0 commit comments

Comments
 (0)