Add necessary token claim to access admin in dev mode
This commit is contained in:
parent
95b9b12a3b
commit
5d3b7c9a82
@ -39,7 +39,14 @@ export type ParsedRealmJson = {
|
|||||||
"post.logout.redirect.uris"?: string;
|
"post.logout.redirect.uris"?: string;
|
||||||
};
|
};
|
||||||
protocol?: string;
|
protocol?: string;
|
||||||
protocolMappers?: unknown[];
|
protocolMappers?: {
|
||||||
|
id: string;
|
||||||
|
name: string;
|
||||||
|
protocol: string; // "openid-connect" or something else
|
||||||
|
protocolMapper: string; // "oidc-hardcoded-claim-mapper" or something else
|
||||||
|
consentRequired: boolean;
|
||||||
|
config?: Record<string, string>;
|
||||||
|
}[];
|
||||||
}[];
|
}[];
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -89,7 +96,18 @@ const zParsedRealmJson = (() => {
|
|||||||
})
|
})
|
||||||
.optional(),
|
.optional(),
|
||||||
protocol: z.string().optional(),
|
protocol: z.string().optional(),
|
||||||
protocolMappers: z.array(z.unknown()).optional()
|
protocolMappers: z
|
||||||
|
.array(
|
||||||
|
z.object({
|
||||||
|
id: z.string(),
|
||||||
|
name: z.string(),
|
||||||
|
protocol: z.string(),
|
||||||
|
protocolMapper: z.string(),
|
||||||
|
consentRequired: z.boolean(),
|
||||||
|
config: z.record(z.string()).optional()
|
||||||
|
})
|
||||||
|
)
|
||||||
|
.optional()
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
});
|
});
|
||||||
|
@ -985,6 +985,24 @@
|
|||||||
"claim.name": "locale",
|
"claim.name": "locale",
|
||||||
"jsonType.label": "String"
|
"jsonType.label": "String"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "8fd0d584-7052-4d04-a615-d18a71050873",
|
||||||
|
"name": "allowed-origins",
|
||||||
|
"protocol": "openid-connect",
|
||||||
|
"protocolMapper": "oidc-hardcoded-claim-mapper",
|
||||||
|
"consentRequired": false,
|
||||||
|
"config": {
|
||||||
|
"introspection.token.claim": "true",
|
||||||
|
"claim.value": "[\"*\"]",
|
||||||
|
"userinfo.token.claim": "true",
|
||||||
|
"id.token.claim": "false",
|
||||||
|
"lightweight.claim": "false",
|
||||||
|
"access.token.claim": "true",
|
||||||
|
"claim.name": "allowed-origins",
|
||||||
|
"jsonType.label": "JSON",
|
||||||
|
"access.tokenResponse.claim": "false"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"defaultClientScopes": [
|
"defaultClientScopes": [
|
||||||
@ -1640,13 +1658,13 @@
|
|||||||
"config": {
|
"config": {
|
||||||
"allowed-protocol-mapper-types": [
|
"allowed-protocol-mapper-types": [
|
||||||
"oidc-usermodel-property-mapper",
|
"oidc-usermodel-property-mapper",
|
||||||
"saml-user-attribute-mapper",
|
|
||||||
"saml-user-property-mapper",
|
"saml-user-property-mapper",
|
||||||
"oidc-full-name-mapper",
|
|
||||||
"oidc-sha256-pairwise-sub-mapper",
|
|
||||||
"oidc-address-mapper",
|
"oidc-address-mapper",
|
||||||
|
"saml-user-attribute-mapper",
|
||||||
|
"saml-role-list-mapper",
|
||||||
|
"oidc-sha256-pairwise-sub-mapper",
|
||||||
"oidc-usermodel-attribute-mapper",
|
"oidc-usermodel-attribute-mapper",
|
||||||
"saml-role-list-mapper"
|
"oidc-full-name-mapper"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1676,14 +1694,14 @@
|
|||||||
"subComponents": {},
|
"subComponents": {},
|
||||||
"config": {
|
"config": {
|
||||||
"allowed-protocol-mapper-types": [
|
"allowed-protocol-mapper-types": [
|
||||||
"oidc-sha256-pairwise-sub-mapper",
|
|
||||||
"saml-user-attribute-mapper",
|
"saml-user-attribute-mapper",
|
||||||
"oidc-usermodel-property-mapper",
|
|
||||||
"oidc-full-name-mapper",
|
"oidc-full-name-mapper",
|
||||||
"saml-role-list-mapper",
|
"oidc-sha256-pairwise-sub-mapper",
|
||||||
"saml-user-property-mapper",
|
"saml-user-property-mapper",
|
||||||
"oidc-usermodel-attribute-mapper",
|
"oidc-usermodel-property-mapper",
|
||||||
"oidc-address-mapper"
|
"saml-role-list-mapper",
|
||||||
|
"oidc-address-mapper",
|
||||||
|
"oidc-usermodel-attribute-mapper"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -276,7 +276,7 @@ function editAccountConsoleAndSecurityAdminConsole(params: {
|
|||||||
}) {
|
}) {
|
||||||
const { parsedRealmJson } = params;
|
const { parsedRealmJson } = params;
|
||||||
|
|
||||||
for (const clientId of ["account-console", "security-admin-console"]) {
|
for (const clientId of ["account-console", "security-admin-console"] as const) {
|
||||||
const client = parsedRealmJson.clients.find(
|
const client = parsedRealmJson.clients.find(
|
||||||
client => client.clientId === clientId
|
client => client.clientId === clientId
|
||||||
);
|
);
|
||||||
@ -298,5 +298,68 @@ function editAccountConsoleAndSecurityAdminConsole(params: {
|
|||||||
(client.attributes ??= {})["post.logout.redirect.uris"] = "+";
|
(client.attributes ??= {})["post.logout.redirect.uris"] = "+";
|
||||||
|
|
||||||
client.webOrigins = ["*"];
|
client.webOrigins = ["*"];
|
||||||
|
|
||||||
|
admin_specific: {
|
||||||
|
if (clientId !== "security-admin-console") {
|
||||||
|
break admin_specific;
|
||||||
|
}
|
||||||
|
|
||||||
|
const protocolMapper_preexisting = client.protocolMappers?.find(
|
||||||
|
protocolMapper => {
|
||||||
|
if (protocolMapper.protocolMapper !== "oidc-hardcoded-claim-mapper") {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (protocolMapper.protocol !== "openid-connect") {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (protocolMapper.config === undefined) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (protocolMapper.config["claim.name"] !== "allowed-origins") {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
let protocolMapper: NonNullable<typeof protocolMapper_preexisting>;
|
||||||
|
|
||||||
|
const config = {
|
||||||
|
"introspection.token.claim": "true",
|
||||||
|
"claim.value": '["*"]',
|
||||||
|
"userinfo.token.claim": "true",
|
||||||
|
"id.token.claim": "false",
|
||||||
|
"lightweight.claim": "false",
|
||||||
|
"access.token.claim": "true",
|
||||||
|
"claim.name": "allowed-origins",
|
||||||
|
"jsonType.label": "JSON",
|
||||||
|
"access.tokenResponse.claim": "false"
|
||||||
|
};
|
||||||
|
|
||||||
|
if (protocolMapper_preexisting !== undefined) {
|
||||||
|
protocolMapper = protocolMapper_preexisting;
|
||||||
|
} else {
|
||||||
|
protocolMapper = {
|
||||||
|
id: "8fd0d584-7052-4d04-a615-d18a71050873",
|
||||||
|
name: "allowed-origins",
|
||||||
|
protocol: "openid-connect",
|
||||||
|
protocolMapper: "oidc-hardcoded-claim-mapper",
|
||||||
|
consentRequired: false,
|
||||||
|
config
|
||||||
|
};
|
||||||
|
|
||||||
|
(client.protocolMappers ??= []).push(protocolMapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(protocolMapper.config !== undefined);
|
||||||
|
|
||||||
|
if (config !== protocolMapper.config) {
|
||||||
|
Object.assign(protocolMapper.config, config);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user