Anton Sidorov homepage

Bookmark this to keep an eye on my project updates!

Follow me on GitHub

OpenID Connect (OIDC)

OpenID Сonnect процесс

Термины:

  • OpenID Connect Provider (OP) - Identity Provider
  • User
  • Client - ИС
    • Confidential
    • Public
  • Claims -
  • Scope - права Client
  • OAuth2
    • Authorization Server
    • Resource Server
    • Resource Owner

Flow-Grant

Client type — тип клиента, от которого зависит способ взаимодействия с ним. Тип клиента определяется его возможностью безопасно хранить свои учётные данные для авторизации — токен. Поэтому существует всего 2 типа клиентов:

  • Confidential — клиент, который может безопасно хранить свои учётные данные. Например, к такому типу клиентов относят web-приложения, имеющие backend.
  • Public — не может безопасно хранить свои учётные данные. Этот клиент работает на устройстве владельца ресурса, например, это браузерные или мобильные приложения.

Flow also called Grants:

Параметры Flow

Основные параметры Flow

  • Аутентификация Client через OpenID Connect Provider (IDP)
    • IdToken - IdentityToken (формат JWT обязателен) (OIDC) - for authenticating a user. A JWT token used to represent the identity of the user.
    • TokenEndpoint - получаем IdentityToken
    • ClientId
    • ClientSecret
      • Хранится на BackEnd и передается в Authentication Flow
      • в Implicit Flow не хранится в SPA, JS и не передается

Песочница

Identity Token

tokens id, acccess

Структура Payload:

  • обязательные
    • iss: “http://my-domain.auth0.com” - идентификатор эмитента (сервера авторизации), источника ответа; реги-строзависимый URL-адрес, использующий схему https; содержит схему, хост и опционально компоненты номера порта и пути, но не компоненты запроса или фрагмента
    • sub: “auth0 123456” - Уникальный идентификатор пользователя
    • aud: “1234abcdef” - равно client_id - ИС запращивающая доступ, аудитория, для которой предназначен данный ID токен, должна содержать идентификатор client_id;
    • exp: 1311281970 - срок действия (UNIX format)
    • iat: 1311280970 - дата время выдачи токена (UNIX format)
    • scope: openid - These are the scopes that bind to user attributes(claims). You can use OIDC scopes to limit access user’s attributes. – nonce: - равно значению параметра nonce, в запросе аутентификации. Серверу авторизации следует включать этот параметр, если значение параметра nonce присутствует в соответствующем запросе аутентификации
  • опциональные
    • Custom User Claims – azp: идентификатор клиента стороны, для которого был выпущен ID токен.

Deployment

Deployment models:

Технологии

TODO