in resources/add_federation_configuration_lambda/handler.js [299:339]
async function addTenantAppClientRecordToOidcProviderTable(baseParams, tenantParams, tenantId, clientSecret) {
// setting tenant_app_client placeholders to values passed from the step function
const tenantOidcProviderAppClientUuid = uuid.v4();
const secretName = `/mysaasapp/${tenantId}/oidcappclientsecret`;
const createSecretParams = {
Name: secretName,
Description: `App client secret for app ${tenantId}`,
SecretString: clientSecret,
};
const secretResponse = await secretsmanager.createSecret(createSecretParams).promise();
const responseData = {
SecretArn: secretResponse.ARN,
SecretName: secretResponse.Name,
SecretVersionId: secretResponse.secretVersionId,
clientSecret,
};
console.log(`Update secret response data: ${JSON.stringify(responseData)}`);
console.log('About to add tenantOidcProviderAppClientUuid parmeter to ssm param store');
const putParamResponseData = await putParameterValue('tenantOidcProviderAppClientUuid', tenantOidcProviderAppClientUuid, tenantId);
console.log(`Done adding tenantOidcProviderAppClientUuid parmeter to ssm param store ${putParamResponseData}`);
console.log('About to build oidc provider tenant app client record');
tenantAppClient.id = `client:${tenantOidcProviderAppClientUuid}`;
tenantAppClient.client_id = tenantOidcProviderAppClientUuid;
tenantAppClient.client_secret = clientSecret;
tenantAppClient.client_uri = `https://cognito-idp.${getParameterValue('cognitoUserPoolRegion', baseParams)}.amazonaws.com/${getParameterValue('cognitoUserPoolId', baseParams)}`;
tenantAppClient.redirect_uris = [`https://${getParameterValue('cognitoUserPoolDomainPrefix', baseParams)}.auth.${getParameterValue('cognitoUserPoolRegion', baseParams)}.amazoncognito.com/oauth2/idpresponse`];
tenantAppClient.tenant_id = getParameterValue('tenantUuid', tenantParams);
console.log('Done setting tenant app settings', JSON.stringify(tenantAppClient));
console.log('About to add oidc provider tenant app client record to DDB');
const tenantAppClientParams = {
TableName: 'oidc-provider',
Item: tenantAppClient,
};
return documentClient.put(tenantAppClientParams).promise();
}