overleaf/services/web/scripts/ukamf/metadata-processor.js

43 lines
1 KiB
JavaScript
Raw Normal View History

'use strict'
/**
* Run with: node metadata-processor /path/ukamf.xml http://idp/entity/id
*
* The ukamf metadata xml file can be downloaded from:
* http://metadata.ukfederation.org.uk/
*
* The entity id should be provided by the university.
*/
const UKAMFDB = require('./ukamf-db')
main().catch(err => {
console.error(err.stack)
})
async function main() {
const [, , file, entityId] = process.argv
console.log(`loading file ${file}`)
const ukamfDB = new UKAMFDB(file)
await ukamfDB.init()
const entity = ukamfDB.findByEntityID(entityId)
if (!entity) {
throw new Error(`could not find entity for ${entityId}`)
}
const samlConfig = entity.getSamlConfig()
console.log(`UPDATE universities SET
sso_entity_id = '${samlConfig.entityId}',
sso_entry_point = '${samlConfig.entryPoint}',
sso_cert = '${samlConfig.cert}',
sso_user_id_attribute = 'eduPersonPrincipalName',
sso_user_email_attribute = 'mail',
sso_license_entitlement_attribute = 'eduPersonPrincipalName',
sso_license_entitlement_matcher = '.'
WHERE id =
`)
}