Обзор потоков OIDC
Познакомьтесь с различными потоками OIDC: кодом авторизации, неявным и гибридным, а также узнайте, когда использовать каждый из них.
«Обзор потоков OIDC» — бесплатный урок OAuth2 & OpenID Connect Deep Dive на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения OAuth2 & OpenID Connect Deep Dive, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс OAuth2 & OpenID Connect Deep Dive содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Welcome to OIDC Flows!
In this lesson, we'll explore the main flows (or grant types) used in OpenID Connect (OIDC). These flows define how your application (the Client) interacts with an OpenID Provider (like Google or Auth0) to get identity information about a user.
OIDC builds directly on top of OAuth2, so these flows will look familiar if you've studied OAuth2 grant types.
OIDC's Foundation: OAuth2 Flows
Remember, OIDC is an identity layer built on OAuth2. This means it reuses OAuth2's authorization flows, but with a crucial addition: the ID Token.
- ID Token: A JSON Web Token (JWT) containing information (claims) about the authenticated user.
- The choice of flow determines how this ID Token (and an Access Token) is delivered to your client application.
1. Authorization Code Flow (OIDC)
This is the most secure and recommended flow for OIDC, especially for web applications with a backend (confidential clients).
- How it works: The client exchanges an authorization code for tokens (ID Token and Access Token) directly with the OpenID Provider's token endpoint.
- This exchange happens over a secure, server-to-server (back-channel) connection.
Auth Code Flow: Why it's Best
The Authorization Code Flow is preferred because the tokens are never exposed in the user's browser or URL.
- Security: Tokens are exchanged directly between servers, reducing the risk of interception.
- Client Type: Ideal for web applications with a backend.
- PKCE: Often paired with Proof Key for Code Exchange (PKCE) for public clients (like mobile apps) to prevent code interception.
2. Implicit Flow (OIDC)
The Implicit Flow delivers tokens directly to the client via the browser's URL fragment after user authentication. It was historically used for single-page applications (SPAs).
Important: Due to security concerns (like token leakage via browser history or referrer headers), the Implicit Flow is largely deprecated by the OAuth2.0 and OIDC specifications.
Implicit Flow: Deprecated, Why?
While simpler to implement for browser-based apps, its security drawbacks are significant:
- No Code Exchange: Tokens are granted directly, without a secure back-channel exchange.
- Front-Channel Exposure: Tokens appear in the browser's URL, making them vulnerable.
- No Refresh Tokens: Typically, this flow doesn't issue refresh tokens, requiring re-authentication.
Modern SPAs should use the Authorization Code Flow with PKCE instead.
3. Hybrid Flow (OIDC)
The Hybrid Flow combines elements of both the Authorization Code and Implicit flows. It allows the client to receive some tokens via the front-channel (browser) and others via the back-channel (server-to-server).
- For example, an ID Token might be returned directly in the URL, while an Access Token is obtained via a code exchange.
Hybrid Flow: Flexibility & Trade-offs
This flow offers flexibility but comes with increased complexity and potential security trade-offs, depending on what tokens are delivered via the front-channel.
- Use Cases: Can be used when a client needs immediate access to an ID Token (e.g., for UI updates) but wants to fetch the Access Token more securely.
- Considerations: Carefully weigh the security implications of any tokens returned directly to the browser.
Choosing the Right OIDC Flow
When selecting an OIDC flow for your application, always prioritize security:
- Web Apps (Confidential Clients): Use Authorization Code Flow with PKCE.
- Mobile/Desktop Apps (Public Clients): Use Authorization Code Flow with PKCE.
- SPAs (Public Clients): Use Authorization Code Flow with PKCE.
- Implicit Flow: Avoid using it for new applications due to security risks.
- Hybrid Flow: Use with caution and a clear understanding of its security implications.
Flows Quick Check
Which of the following statements about OpenID Connect (OIDC) flows are TRUE?
OIDC Flows: Recap & Next Steps
You've now got an overview of the primary OIDC flows:
- Authorization Code Flow: The most secure, recommended for most applications, especially with PKCE.
- Implicit Flow: Largely deprecated due to security concerns.
- Hybrid Flow: A flexible but more complex option combining elements of both.
Understanding these flows is crucial for implementing secure identity solutions. Next, we'll dive deeper into implementing specific OIDC flows.
Часто задаваемые вопросы
Урок «Обзор потоков OIDC» бесплатный?
Да — полный текст урока «Обзор потоков OIDC» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс OAuth2 & OpenID Connect Deep Dive, подпишись на CoddyKit PRO. Курс OAuth2 & OpenID Connect Deep Dive содержит 4 уроков всего.
Чему я научусь в уроке «Обзор потоков OIDC»?
Познакомьтесь с различными потоками OIDC: кодом авторизации, неявным и гибридным, а также узнайте, когда использовать каждый из них. Ты практикуешь OAuth2 & OpenID Connect Deep Dive с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать OAuth2 & OpenID Connect Deep Dive?
Предыдущий опыт не требуется. OAuth2 & OpenID Connect Deep Dive на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Обзор потоков OIDC»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке OAuth2 & OpenID Connect Deep Dive?
Да. Каждый урок OAuth2 & OpenID Connect Deep Dive включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- OIDC: уровень идентификации поверх OAuth2
- Токены ID и утверждения
- Обзор потоков OIDC
- Конечная точка UserInfo