in functions/saml-backend/index.js [24:81]
function(err, result) {
if (err) {
callback(null, {
"statusCode": 400,
"headers": {},
"body": JSON.stringify(err['message']),
"isBase64Encoded": false
})
console.error(err['message'])
} else {
var attrs = result.Response.Assertion[0].AttributeStatement[0].Attribute
var domainId
var userId
attrs.forEach(attr => {
switch (attr.$.Name) {
case 'domain-id':
console.log('DOMAIN: ' + attr.AttributeValue[0]._)
domainId = attr.AttributeValue[0]._
break;
case 'username':
console.log('USER: ' + attr.AttributeValue[0]._)
userId = attr.AttributeValue[0]._
break;
default:
console.log(`No Match`);
}
});
var sagemaker = new AWS.SageMaker({ apiVersion: '2017-07-24' });
var params = {
DomainId: domainId,
UserProfileName: userId,
ExpiresInSeconds: 5,
};
sagemaker.createPresignedDomainUrl(params, function(err, data) {
if (err) {
callback(null, {
"statusCode": err['statusCode'],
"headers": {},
"body": JSON.stringify(err['message']),
"isBase64Encoded": false
})
console.error(err['message'])
} else {
var url = data.AuthorizedUrl
var response = {
"statusCode": 302,
"headers": {
"Location": url
},
"isBase64Encoded": false
};
callback(null, response)
}
});
}
});