diff --git a/cmd/devinit/main.go b/cmd/devinit/main.go index ec1d85bd2..c55feedd6 100644 --- a/cmd/devinit/main.go +++ b/cmd/devinit/main.go @@ -322,6 +322,7 @@ func createIdentityProviders(factory store.Factory, err error, orgId string, env if err != nil { return err } + idp := &types.IdentityProvider{ Name: "Fake OIDC", OrganizationID: orgId, @@ -330,7 +331,13 @@ func createIdentityProviders(factory store.Factory, err error, orgId string, env ClientSecret: envCfg.idpClientSecret, EmailDomain: "nrc.no", Scopes: "openid profile offline_access", - ClaimMappings: types.ClaimMappings{Mappings: nil, Version: "0"}, + ClaimMappings: types.ClaimMappings{ + Subject: "{{.sub}}", + DisplayName: "{{.displayName}}", + FullName: "{{.fullName}}", + Email: "{{.email}}", + EmailVerified: "{{.emailVerified}}", + Version: "0"}, } if len(idps) == 0 { _, err := idpStore.Create(context.Background(), idp, store.IdentityProviderCreateOptions{}) diff --git a/frontend/apps/core-authnz-frontend/src/components/AuthenticatedApp.tsx b/frontend/apps/core-authnz-frontend/src/components/AuthenticatedApp.tsx index 38add189c..5fea3b32a 100644 --- a/frontend/apps/core-authnz-frontend/src/components/AuthenticatedApp.tsx +++ b/frontend/apps/core-authnz-frontend/src/components/AuthenticatedApp.tsx @@ -10,7 +10,7 @@ import { Clients } from './clients/Clients'; const AuthenticatedApp: FC = () => { return ( -
+
diff --git a/frontend/apps/core-authnz-frontend/src/components/organizations/identityproviders/IdentityProviderEditor.tsx b/frontend/apps/core-authnz-frontend/src/components/organizations/identityproviders/IdentityProviderEditor.tsx index 438c62c0a..bcc67d259 100644 --- a/frontend/apps/core-authnz-frontend/src/components/organizations/identityproviders/IdentityProviderEditor.tsx +++ b/frontend/apps/core-authnz-frontend/src/components/organizations/identityproviders/IdentityProviderEditor.tsx @@ -18,7 +18,14 @@ type FormData = { organizationId: string; emailDomain: string; scopes: string; - claimMappings: { Version: string; Mappings: any }; + claimMappings: { + version: string; + subject: string; + displayName: string; + fullName: string; + email: string; + emailVerified: string; + }; }; export const IdentityProviderEditor: FC = (props) => { @@ -49,18 +56,18 @@ export const IdentityProviderEditor: FC = (props) => { setValue('emailDomain', data.emailDomain); setValue('clientSecret', ''); setValue('scopes', data.scopes); - setValue( - 'claimMappings.Mappings', - JSON.stringify(data.claimMappings.Mappings), - ); - setVersion(data.claimMappings.Version); + setValue('claimMappings.subject', data.claimMappings.subject); + setValue('claimMappings.displayName', data.claimMappings.displayName); + setValue('claimMappings.fullName', data.claimMappings.fullName); + setValue('claimMappings.email', data.claimMappings.email); + setValue('claimMappings.emailVerified', data.claimMappings.emailVerified); + setVersion(data.claimMappings.version); }; useEffect(() => { if (id) { apiClient.getIdentityProvider({ id }).then((resp) => { if (resp.response) { - console.log('RESP', resp.response); setData(resp.response); } }); @@ -81,8 +88,12 @@ export const IdentityProviderEditor: FC = (props) => { emailDomain: args.emailDomain, scopes: args.scopes, claimMappings: { - Version: newVersion, - Mappings: JSON.parse(args.claimMappings.Mappings), + version: newVersion, + subject: args.claimMappings.subject, + displayName: args.claimMappings.displayName, + fullName: args.claimMappings.fullName, + email: args.claimMappings.email, + emailVerified: args.claimMappings.emailVerified, }, }; let resp; @@ -192,20 +203,110 @@ export const IdentityProviderEditor: FC = (props) => { {fieldErrors('scopes')}
-
- -