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')}
-
-
-
+
+ Claim Mapping, Current Version: {version}
+
+
+ Please use go template syntax:
+
+ Examples
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{fieldErrors('claimMappings')}