Io non odio Oauth, ma mi odio per non essere in grado di avvolgere la mia mente attorno al concetto. Detto questo, ecco la mia domanda: sto cercando di chiamare l'API di Office Graph REST da vanilla javascript. Quindi eseguo regolarmente XMLHttpRequest su graph.microsoft.com da una pagina che viene eseguita sul mio sito di SharePoint Online (pertanto il codice deve essere eseguito dal mio contesto di sicurezza, poiché sono connesso). La chiamata restituisce 403 Autenticazione richiesta. Suppongo di dover registrare un'applicazione in Azure AD e l'ho fatto, quindi ho un ID cliente e un segreto. Tuttavia, non riesco a trovare cosa fare a livello di programmazione (I penso Capisco il concetto, devo ottenere un token che devo fornire quando si chiama il grafico api). Sembra che ci sia un sacco di codice di esempio per qualsiasi cosa, ad eccezione di javascript. Qualcuno ha dei suggerimenti?office 365 graph api da javascript: come autenticare correttamente
Aggiornamento: Conosco il coinvolgimento del token e questa è la parte che non riesco a comprendere (vedi domanda/commento originale); Ho un ID cliente, ho un segreto, e non ho questo codice (molto comune):
function graphRead(whatToRead) {
switch(whatToRead) {
case "userinfo" :
officeUser = JSON.Parse(loadXMLDoc("GET","https://graph.microsoft.com/v1.0/me"));
break;
default:
};
};
function loadXMLDoc(mMethod,uURL) {
var xmlhttp;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == XMLHttpRequest.DONE) {
if(xmlhttp.status == 200){
return(xmlhttp.responseText);
}
else if(xmlhttp.status == 400) {
alert('There was an error 400')
}
else {
alert('something else other than 200 was returned')
}
}
};
xmlhttp.open(mMethod, uURL, true);
xmlhttp.send();
};
domanda è: che cosa devo fare per stabilire il token e inviarlo al API?
Vedo dove stai andando, ma sono confuso. Questo è davvero completamente client-side, ma ecco la cosa: questo è su un sito di SharePoint, quindi l'utente è già loggato. Non capisco completamente perché avrei bisogno di un altro contesto di sicurezza, ma se lo faccio, non lo faccio vedere come alimentare le informazioni rilevanti con l'api del grafico. –
È necessario ottenere un token e ottenere un token * may * richiede all'utente di immettere le credenziali, ma se è già connesso a O365 potrebbe non farlo; ma dal tuo punto di vista la richiesta e la risposta sono le stesse. Una volta ottenuto un token, lo aggiungi come intestazione Authorization che inizia con Bearer, seguito dal tuo token, come 'Bearer eyJ0eXAiO ...' – lgaud
Grazie per il tuo feedback. Ho elaborato la mia domanda dal momento che mi manca il punto. –