- Ga naar de Okta van de klant, en open de pagina van de gebruiker
- Open Developer Tools in je browser
- Ga naar console en plak daar onderstaande code
- Druk op [enter]
- Zodra het gelukt is ontvang je een bericht dat het gelukt is met de nieuwe vraag en antwoord.
// let's set the answer to today
const date = new Date();
const options = {
year: 'numeric',
month: 'long',
day: 'numeric'
};
const formatter1 = new Intl.DateTimeFormat('nl-nl', options);
today = formatter1.format(date);
// find the user ID from the URL
var href = window.location.href.split('/')
var userID = href[href.length-1];
var domain = href[2];
// set up the request
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("PUT", "https://"+domain+"/api/v1/users/"+userID);
xmlhttp.setRequestHeader("Content-Type", "application/json");
xmlhttp.setRequestHeader("Accept", "application/json");
xmlhttp.setRequestHeader("x-requested-with", "XMLHttpRequest");
xmlhttp.setRequestHeader("x-okta-xsrftoken", document.querySelector('#_xsrfToken').innerText);
// set the new security question by sending it
xmlhttp.send(JSON.stringify({
"credentials": {
"recovery_question": {
"question": "Wat is de datum van vandaag?",
"answer": today
}
}
}));
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState === 4) {
console.log('succesvol, de nieuwe security question is:');
console.log('Wat is de datum van vandaag?');
console.log(today);
}
}
Indien bovenstaande niet werkt, staan hier de stappen om het handmatig te doen.
Om Okta via de API te benaderen is er een hele goede tool beschikbaar.
Postman kan calls doen op API en de responses direct teruggeven
Zie hier voor meer info over Postman
Om te zorgen dat je een Okta org via de API kan aanpassen heb je diverse zaken nodig:
- Postman (of vergelijkbare tool)
- Okta tenant environment
- API collection(s)
Volg deze pagina voor de standaard setup en benodigd heden
https://developer.okta.com/code/rest/
Omdat we te maken hebben met API calls met veel mogelijkheden is de volgende regel van belang:
Na elke handeling via Postman, moet de API key verwijderd worden uit de betreffende Okta tenant.
Dit zodat dit goed gelogd wordt en er geen onverhoopte acties gedaan worden.
Resetten Security Question
Om een Security question te resetten zal uit de User API collection de 'set recovery question' PUT action uitgevoerd moeten worden, deze is onder credential Operations te vinden.
Zodra je de PUT actie selecteert wordt de API call in de parameter balk geplaatst worden.
Om te zorgen dat je de juiste USERID hebt zal je bij de gebruiker in Okta de USERID moeten opzoeken in de adresbalk:
Deze USERID kan je dan in postman invoeren:
Nadat je dit gedaan is de PUT actie live en kan je nu de securit question en antwoord wijzigen.
Omdat we willen dat de gebruiker zijn SQ wijzigt creeeren we een tijdelijke credentie set zodat de gebruiker wel moet aanpassen.
Ga in Postman naar de body en wijzig de payload van de API call in het volgende:
vervang de question en answer door:
Wat is de datum van vandaag?
19 februari 2018
Zodat de body er als volgt uitziet:
{
"credentials": {
"recovery_question": {
"question": "Wat is de datum van vandaag?",
"answer": "19 februari 2018"
}
}
}
Klik nu op SEND en de API call zal verstuurd worden waarbij de users Security Question en Answer veranderd worden.
Update de user
Geef aan de gebruiker door dat de aanpassing is gedaan en wat het juiste antwoord is. Omdat het antwoord gerelateerd is aan de datum, is deze moeilijk te onthouden voor een volgende keer. Een advies die gegeven moet worden in het bericht aan de gebruiker is om direct bij aanmelding de Security Question en Answer te wijzigen in iets wat ze kunnen onthouden voor de volgende keer.