AD B2C Azure: protocolli di autenticazioneAzure AD B2C: Authentication protocols

Azure Active Directory B2C (Azure AD B2C) fornisce l'identità come servizio per le app grazie al supporto di due protocolli standard del settore, OpenID Connect e OAuth 2.0.Azure Active Directory B2C (Azure AD B2C) provides identity as a service for your apps by supporting two industry standard protocols: OpenID Connect and OAuth 2.0. Anche se il servizio è conforme agli standard, possono esistere sottili differenze tra le implementazioni di questi protocolli.The service is standards-compliant, but any two implementations of these protocols can have subtle differences.

Le informazioni in questa guida sono utili se si scrive codice inviando e gestendo direttamente le richieste HTTP, anziché usando una raccolta open source.The information in this guide is useful if you write your code by directly sending and handling HTTP requests, rather than by using an open source library. Si consiglia di leggere questa pagina prima di approfondire i dettagli dei protocolli specifici.We recommend that you read this page before you dive into the details of each specific protocol. Se si ha già familiarità con Azure AD B2C, è possibile passare direttamente alle guide di riferimento dei protocolli.But if you're already familiar with Azure AD B2C, you can go straight to the protocol reference guides.

Nozioni di baseThe basics

Ogni app che usa Azure AD B2C deve essere registrata nella directory B2C del portale di Azure.Every app that uses Azure AD B2C needs to be registered in your B2C directory in the Azure portal. Il processo di registrazione app raccoglie e assegna all'app alcuni valori:The app registration process collects and assigns a few values to your app:

  • Un ID applicazione che identifica l'app in modo univoco.An Application ID that uniquely identifies your app.
  • Un URI di reindirizzamento o un identificatore di pacchetto che possono essere usati per indirizzare le risposte all'app.A Redirect URI or package identifier that can be used to direct responses back to your app.
  • Altri valori specifici dello scenarioA few other scenario-specific values. Per maggiori informazioni, vedere Come registrare l'applicazione.For more information, learn how to register your application.

Dopo la registrazione, l'app comunica con Azure Active Directory (Azure AD) inviando richieste all'endpoint:After you register your app, it communicates with Azure Active Directory (Azure AD) by sending requests to the endpoint:

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token

In quasi tutti i flussi di OAuth e OpenID Connect sono coinvolte nello scambio quattro parti:In nearly all OAuth and OpenID Connect flows, four parties are involved in the exchange:

Ruoli di OAuth 2.0

  • Il server di autorizzazione è l'endpoint di Azure AD.The authorization server is the Azure AD endpoint. Gestisce in modo sicuro tutto ciò che ha a che fare con l'accesso e le informazioni sull'utente,It securely handles anything related to user information and access. nonché le relazioni di trust tra le parti in un flusso.It also handles the trust relationships between the parties in a flow. Verifica l'identità dell'utente, concede e revoca l'accesso alle risorse e rilascia i token.It is responsible for verifying the user's identity, granting and revoking access to resources, and issuing tokens. È anche noto come provider di identità.It is also known as the identity provider.

  • Il proprietario della risorsa è in genere l'utente finale.The resource owner is typically the end user. È la parte che possiede i dati e può consentire a terze parti di accedere a tali dati o risorse.It is the party that owns the data, and it has the power to allow third parties to access that data or resource.

  • Il client OAuth è l'appThe OAuth client is your app. ed è identificato dal relativo ID applicazione.It's identified by its Application ID. Si tratta in genere dell’entità con cui interagiscono gli utenti finali.It's usually the party that end users interact with. Richiede i token dal server di autorizzazione.It also requests tokens from the authorization server. Il proprietario della risorsa deve concedere al client l'autorizzazione ad accedere alla risorsa.The resource owner must grant the client permission to access the resource.

  • Il server delle risorse è la posizione in cui si trova la risorsa o i dati.The resource server is where the resource or data resides. Considera attendibile il server di autorizzazione per autenticare e autorizzare il client OAuth in modo sicuro.It trusts the authorization server to securely authenticate and authorize the OAuth client. Usa i token di accesso di connessione per fare in modo che sia possibile concedere l'accesso a una risorsa.It also uses bearer access tokens to ensure that access to a resource can be granted.

CriteriPolicies

I criteri di Azure AD B2C sono probabilmente la caratteristica più importante del servizio.Arguably, Azure AD B2C policies are the most important features of the service. Azure AD B2C estende i protocolli OAuth 2.0 e OpenID Connect standard con l'introduzione dei criteri.Azure AD B2C extends the standard OAuth 2.0 and OpenID Connect protocols by introducing policies. Questi consentono ad Azure AD B2C di andare oltre la semplice autenticazione e autorizzazione.These allow Azure AD B2C to perform much more than simple authentication and authorization.

I criteri descrivono in modo completo le esperienze di identità dell'utente, inclusi l'iscrizione, l'accesso e la modifica del profilo.Policies fully describe consumer identity experiences, including sign-up, sign-in, and profile editing. I criteri possono essere definiti in un'interfaccia utente amministrativaPolicies can be defined in an administrative UI. ed eseguiti usando un parametro di query speciale nelle richieste di autenticazione HTTP.They can be executed by using a special query parameter in HTTP authentication requests.

I criteri non sono una funzionalità standard di OAuth 2.0 e OpenID Connect, è quindi consigliabile cercare di approfondirli.Policies are not standard features of OAuth 2.0 and OpenID Connect, so you should take the time to understand them. Per altre informazioni, vedere la guida di riferimento dei criteri di Azure AD B2C.For more information, see the Azure AD B2C policy reference guide.

TokensTokens

L'implementazione di OAuth 2.0 e OpenID Connect in Azure AD B2C fa un uso intensivo dei token di connessione, inclusi quelli rappresentati come token Web JSON (JWT).The Azure AD B2C implementation of OAuth 2.0 and OpenID Connect makes extensive use of bearer tokens, including bearer tokens that are represented as JSON web tokens (JWTs). Un token di connessione è un token di sicurezza leggero che consente al "portatore" di accedere a una risorsa protetta.A bearer token is a lightweight security token that grants the "bearer" access to a protected resource.

Per "portatore" si intende qualsiasi parte che possa presentare il token.The bearer is any party that can present the token. Per poter ricevere un token di connessione, Azure AD deve prima autenticare una parte.Azure AD must first authenticate a party before it can receive a bearer token. Se non vengono adottate le misure necessarie per proteggere il token durante la trasmissione e l'archiviazione, potrebbe essere intercettato e usato da parti non autorizzate.But if the required steps are not taken to secure the token in transmission and storage, it can be intercepted and used by an unintended party.

Alcuni token di sicurezza hanno meccanismi predefiniti che ne impediscono l'uso da parti non autorizzate, ma i token di connessione non presentano questo meccanismo.Some security tokens have built-in mechanisms that prevent unauthorized parties from using them, but bearer tokens do not have this mechanism. Devono essere trasportati usando un canale protetto, ad esempio un protocollo Transport Layer Security (HTTPS).They must be transported in a secure channel, such as a transport layer security (HTTPS).

Se un token di connessione viene trasmesso al di fuori di un canale protetto, un utente malintenzionato potrebbe usare un attacco man-in-the-middle per acquisire il token e usarlo per l'accesso non autorizzato a una risorsa protetta.If a bearer token is transmitted outside a secure channel, a malicious party can use a man-in-the-middle attack to acquire the token and use it to gain unauthorized access to a protected resource. Gli stessi principi di sicurezza si applicano quando i token di connessione vengono archiviati o memorizzati nella cache per un uso futuro.The same security principles apply when bearer tokens are stored or cached for later use. Assicurarsi sempre che l'app trasmetta e archivi i token di connessione in modo sicuro.Always ensure that your app transmits and stores bearer tokens in a secure manner.

Per altre considerazioni sulla sicurezza dei token di connessione, vedere la RFC 6750 Section 5.For additional bearer token security considerations, see RFC 6750 Section 5.

Maggiori informazioni sui diversi tipi di token usati in Azure AD B2C sono disponibili nelle informazioni di riferimento sui token in Azure AD B2C.More information about the different types of tokens that are used in Azure AD B2C are available in the Azure AD token reference.

ProtocolliProtocols

Per esaminare alcuni esempi di richieste, è possibile iniziare con una delle esercitazioni indicate di seguito.When you're ready to review some example requests, you can start with one of the following tutorials. Ognuna corrisponde a uno scenario di autenticazione specifico.Each corresponds to a particular authentication scenario. Per determinare quale sia il flusso più adatto alle proprie esigenze, vedere i tipi di app che è possibile compilare con Azure AD B2C.If you need help determining which flow is right for you, check out the types of apps you can build by using Azure AD B2C.