in resources/add_federation_configuration_lambda/handler.js [101:139]
async function createJwksAddToSecrets(tenantId) {
return new Promise(async (resolve, reject) => {
console.log(`REQUEST RECEIVED:\n${JSON.stringify(tenantId)}`);
const keystore = new KeyStore();
keystore.generateSync('EC', 'P-256');
keystore.generateSync('EC', 'P-384');
keystore.generateSync('EC', 'P-521');
keystore.generateSync('RSA', 1024);
let responseData; let
responseStatus;
try {
console.log('Creating JWKS as secret in AWS Secrets Manager...');
const params = {
Description: `JWKS for ${tenantId}`,
Name: `/mysaasapp/${tenantId}/jwks`,
SecretString: JSON.stringify(keystore.toJWKS(true)),
};
const secretResponse = await secretsmanager.createSecret(params).promise();
responseData = {
SecretArn: secretResponse.ARN,
SecretName: secretResponse.Name,
SecretVersionId: secretResponse.secretVersionId,
};
console.log(`Create secret response data: ${JSON.stringify(responseData)}`);
responseStatus = 'SUCCESS';
resolve(responseData);
} catch (err) {
responseStatus = 'FAILED';
responseData = { Error: 'Update of tenant jwks secret failed.' };
console.log(`${responseData.Error}:\n`, err);
reject(responseStatus, err);
}
});
}