Richiedere il consenso dell'utente
Importante
A giugno 2022 è stata introdotta l'autenticazione a più fattori come requisito per Bing Ads. Potrebbe comunque essere necessario apportare una modifica al codice per essere conforme a questo requisito. Microsoft Advertising esegue controlli tecnici all'inizio di ottobre.
Questo post di blog descrive i passaggi da eseguire per garantire la conformità.
Per altre informazioni, vedere la guida ai requisiti di autenticazione a più fattori .
Dopo aver registrato un'applicazione, è necessario ottenere il consenso dell'utente per gestire il proprio account Microsoft Advertising.
Consiglio
Per la guida alla risoluzione dei problemi, vedere la guida agli errori OAuth comuni .
Importante
Ogni utente deve essere richiesto e fornire il consenso tramite un controllo web browser almeno una volta per consentire all'applicazione di gestire i propri account Microsoft Advertising. Si tratta di un flusso OAuth 2.0 standard ed è definito in dettaglio nella sezione Concessione del codice di autorizzazione della specifica OAuth 2.0.
Il flusso del codice di autorizzazione inizia con il client che indirizza l'utente all'endpoint /authorize
. In questa richiesta il client indica le autorizzazioni necessarie per acquisire dall'utente:
Nota
Sostituire your_client_id seguente con l'ID applicazione (client) assegnato all'app dal portale di Azure - Portale registrazioni app.
// Line breaks for legibility only
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=your_client_id
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=query
&scope=openid%20offline_access%20https%3A%2F%2Fads.microsoft.com%2Fmsads.manage
&state=12345
- Copiare l'URL seguente e incollarlo nel browser per eseguire questa richiesta di esempio per il consenso dell'utente.
Nota
Sostituire your_client_id nell'URL seguente con l'ID applicazione (client) assegnato all'app dal portale di Azure - Portale registrazioni app.
<https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=your_client_id&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F&response_mode=query&scope=openid%20offline_access%20https%3A%2F%2Fads.microsoft.com%2Fmsads.manage&state=12345>
- Accedere con le credenziali dell'account Microsoft e concedere il consenso dell'app per gestire gli account Microsoft Advertising.
- Dopo l'accesso, il browser deve essere reindirizzato a
https://localhost/myapp/
con nellacode
barra degli indirizzi. È possibile ignorare il messaggio di errore nella pagina. - Successivamente si userà il codice per ottenere l'accesso e aggiornare i token.
L'endpoint di Microsoft Identity Platform garantisce inoltre che l'utente abbia acconsentito alle autorizzazioni indicate nel parametro di scope
query. Se l'utente non ha acconsentito a nessuna di queste autorizzazioni, chiederà all'utente di fornire il consenso alle autorizzazioni necessarie. Anche se questa guida è incentrata principalmente sulla gestione degli account Microsoft Advertising tramite scope=https://ads.microsoft.com/msads.manage
, qui sono disponibili altri dettagli sulle autorizzazioni e il consenso in Microsoft Identity Platform.
Dopo che l'utente ha autenticato e concesso il consenso, l'endpoint di Microsoft Identity Platform restituirà una risposta all'app all'indirizzo indicato redirect_uri
, usando il metodo specificato nel response_mode
parametro . Ad esempio, l'URI di callback include un codice di autorizzazione come indicato di seguito se l'utente ha concesso all'applicazione le autorizzazioni per gestire i propri account Microsoft Advertising: http://localhost/myapp/?code=CodeGoesHere& state=12345.
Se l'utente ha concesso all'applicazione le autorizzazioni per gestire i propri account Microsoft Advertising, è consigliabile usare il codice immediatamente nel passaggio successivo. La breve durata del codice di autorizzazione, circa 5 minuti, è soggetta a modifiche. Se l'utente ha negato le autorizzazioni dell'applicazione per gestire gli account Microsoft Advertising, l'URI di callback include un campo di descrizione degli errori e degli errori come indicato di seguito: http://localhost/myapp/?error=access_denied& error_description=ERROR_DESCRIPTION&state=ClientStateGoesHere. Per altre informazioni sugli errori OAuth, vedere Errori OAuth comuni e Codici di errore di autenticazione e autorizzazione.
La tabella seguente include i parametri che i client API Bing Ads possono includere nella richiesta di consenso. Per altre informazioni sui parametri facoltativi, vedere la documentazione del flusso di codice di autorizzazione di Microsoft Identity Platform OAuth 2.0 .
Parametro | Obbligatorio/Facoltativo | Descrizione |
---|---|---|
client_id |
Obbligatorio | ID applicazione (client) assegnato all'app dal portale di Azure - Portale registrazioni app. |
code_challenge |
raccomandato | Usato per proteggere le concessioni di codice di autorizzazione tramite Proof Key for Code Exchange (PKCE). Obbligatorio se code_challenge_method è incluso. Per altre informazioni, vedere PKCE RFC. Questa opzione è ora consigliata per tutti i tipi di applicazione: app native, spa e client riservati, ad esempio app Web. |
code_challenge_method |
raccomandato | Metodo utilizzato per codificare l'oggetto code_verifier per il code_challenge parametro . Può essere uno dei valori seguenti:- plain - S256 Se escluso, code_challenge si presuppone che sia testo non crittografato se code_challenge è incluso. Microsoft Identity Platform supporta sia che plain S256 . Per altre informazioni, vedere PKCE RFC. |
prompt |
opzionale | Indica il tipo di interazione utente richiesto dall'applicazione. I valori supportati includono: - prompt=login forza l'utente a immettere le credenziali su tale richiesta, negando l'accesso Single Sign-On.- prompt=none è l'opposto di "login", ovvero garantisce che all'utente non venga presentato alcun prompt interattivo. Se la richiesta non può essere completata in modo invisibile all'utente tramite single sign-on, l'endpoint di Microsoft Identity Platform restituirà un errore di interaction_required.- prompt=consent attiverà la finestra di dialogo di consenso OAuth dopo l'accesso dell'utente, chiedendo all'utente di concedere le autorizzazioni all'app.- prompt=select_account interromperà l'accesso Single Sign-On e fornirà l'esperienza di selezione dell'account, elencando tutti gli account nella sessione o qualsiasi account memorizzato o un'opzione per scegliere di usare completamente un account diverso. |
redirect_uri |
Obbligatorio | Il redirect_uri dell'app, in cui le risposte di autenticazione possono essere inviate e ricevute dall'app. Deve corrispondere esattamente a uno dei redirect_uris registrati nel portale, ad eccezione del fatto che deve essere codificato in URL. Per le app per dispositivi mobili & native, è necessario usare il valore predefinito di https://login.microsoftonline.com/common/oauth2/nativeclient . |
response_mode |
raccomandato | Specifica il metodo che deve essere usato per inviare il token risultante all'app. Le possibili impostazioni sono: - query - fragment - form_post query fornisce il codice come parametro della stringa di query nell'URI di reindirizzamento. Se si richiede un token ID usando il flusso implicito, non è possibile usare query come specificato nella specifica OpenID. Se si richiede solo il codice, è possibile usare query , fragment o form_post .
form_post esegue un POST contenente il codice nell'URI di reindirizzamento. Per altre info, vedi Protocollo OpenID Connect. |
response_type |
Obbligatorio | Deve includere code per il flusso del codice di autorizzazione. |
scope |
Obbligatorio | Elenco di ambiti separati da spazi a cui si vuole che l'utente acconsenta. Assicurarsi di includere https://ads.microsoft.com/msads.manage per richiedere all'utente l'accesso a Microsoft Advertising. Includere offline_access per assicurarsi che nella risposta sia incluso un token di aggiornamento. |
state |
raccomandato | Valore incluso nella richiesta che verrà restituito anche nella risposta del token. Può essere una stringa di qualsiasi contenuto desiderato. Un valore univoco generato in modo casuale viene in genere usato per impedire attacchi di falsificazione di richieste tra siti. Il valore può anche codificare le informazioni sullo stato dell'utente nell'app prima che si verificasse la richiesta di autenticazione, ad esempio la pagina o la visualizzazione in cui si trovava. |
tenant |
Obbligatorio | Il {tenant} valore nel percorso della richiesta può essere usato per controllare chi può accedere all'applicazione. Per assicurarsi che l'applicazione supporti sia gli account personali del servizio gestito che gli account aziendali o dell'istituto di istruzione di Azure AD, è consigliabile usare common come tenant per l'autenticazione dell'API Bing Ads.Nel caso in cui l'applicazione richieda un altro tenant, vedere Endpoint di Microsoft Identity Platform per altre informazioni. |