Поделиться через


Создание проверяемых удостоверений для маркеров идентификации

Определение правил, использующее аттестацию idTokens, создает поток выдачи, в котором требуется выполнить интерактивный вход в поставщик удостоверений OpenID Connect (OIDC) через Microsoft Authenticator. Утверждения в маркере идентификации, возвращаемые поставщиком удостоверений, могут использоваться для заполнения выданных проверяемых удостоверений. В разделе сопоставления утверждений в определении правил указываются используемые утверждения.

Создание пользовательских удостоверений с типом аттестации "маркеры идентификации"

После нажатия кнопки Добавить учетные данные на портале Azure вы получите возможность открыть два кратких руководства. Выберите пользовательские учетные данные и щелкните Далее.

Снимок экрана: краткое руководство по созданию пользовательских учетных данных.

На странице Создать новые учетные данные введите код JSON для отображения и определения правил. В поле Имя учетных данных присвойте имя типа учетным данным. Выберите команду Создать, чтобы создать учетные данные.

Снимок экрана: страница

Примеры определений отображения JSON

Определения отображения JSON почти неизменны для любого типа аттестации. Вам остается лишь изменить метки в соответствии с тем, какие утверждения есть в вашем проверяемом удостоверении. Ожидаемый файл JSON для определений отображения — это внутреннее содержимое коллекции дисплеев. JSON — это коллекция, поэтому если требуется поддержка нескольких языковых стандартов, добавьте несколько записей, используя запятую в качестве разделителя.

{
    "locale": "en-US",
    "card": {
      "title": "Verified Credential Expert",
      "issuedBy": "Microsoft",
      "backgroundColor": "#000000",
      "textColor": "#ffffff",
      "logo": {
        "uri": "https://didcustomerplayground.z13.web.core.windows.net/VerifiedCredentialExpert_icon.png",
        "description": "Verified Credential Expert Logo"
      },
      "description": "Use your verified credential to prove to anyone that you know all about verifiable credentials."
    },
    "consent": {
      "title": "Do you want to get your Verified Credential?",
      "instructions": "Sign in with your account to get your card."
    },
    "claims": [
      {
        "claim": "vc.credentialSubject.userName",
        "label": "User name",
        "type": "String"
      },
      {
        "claim": "vc.credentialSubject.displayName",
        "label": "Display name",
        "type": "String"
      },
      {
        "claim": "vc.credentialSubject.firstName",
        "label": "First name",
        "type": "String"
      },
      {
        "claim": "vc.credentialSubject.lastName",
        "label": "Last name",
        "type": "String"
      }
    ]
}

Примеры определений правил JSON

Определение аттестации JSON должно содержать имя idTokens, сведения о конфигурации OIDC (идентификатор клиента, конфигурацию, URI перенаправления и область) и раздел сопоставления утверждений. Ожидаемый файл JSON для определений правил — это внутреннее содержимое атрибута правил, которое начинается с атрибута аттестации.

Для сопоставления утверждений в следующем примере нужно настроить маркер, как описано в разделе Утверждения в токене идентификации от поставщика удостоверений.

{
  "attestations": {
    "idTokens": [
      {
        "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
        "configuration": "https://didplayground.b2clogin.com/didplayground.onmicrosoft.com/B2C_1_sisu/v2.0/.well-known/openid-configuration",
        "redirectUri": "vcclient://openid/",
        "scope": "openid profile email",
        "mapping": [
          {
            "outputClaim": "userName",
            "required": true,
            "inputClaim": "$.upn",
            "indexed": true
          },
          {
            "outputClaim": "displayName",
            "required": true,
            "inputClaim": "$.name",
            "indexed": false
          },
          {
            "outputClaim": "firstName",
            "required": true,
            "inputClaim": "$.given_name",
            "indexed": false
          },
          {
            "outputClaim": "lastName",
            "required": true,
            "inputClaim": "$.family_name",
            "indexed": false
          }
        ],
        "required": false
      }
    ]
  },
  "validityInterval": 2592000,
  "vc": {
    "type": [
      "VerifiedCredentialExpert"
    ]
  }
}

Регистрация приложения

Атрибут clientId представляет собой идентификатор зарегистрированного приложения в поставщике удостоверений OIDC. Для идентификатора Microsoft Entra необходимо создать приложение, выполнив следующие действия:

  1. В портал Azure перейдите к идентификатору Microsoft Entra.

  2. Выберите Регистрация приложений и нажмите кнопку Новая регистрация, затем укажите имя приложения.

    Если вы хотите, чтобы входить могли только учетные записи из вашего клиента, сохраните флажок Учетные записи только в этом каталоге.

  3. В URI перенаправления (необязательно) выберите общедоступный клиент или собственный (мобильный и классический) и введите vcclient://openid/.

Если вы хотите проверить, какие утверждения находятся в токене Microsoft Entra, сделайте следующее:

  1. На панели слева последовательно выберите Проверка подлинности>Добавление платформы>Интернет.

  2. Введите https://jwt.ms в качестве URI перенаправления и выберите Маркеры идентификации (используемые для неявных и гибридных потоков).

  3. Выберите Настроить.

Когда вы завершите тестирование маркера идентификации, лучше всего удалить https://jwt.ms и поддержку неявных и гибридных потоков.

Для идентификатора Microsoft Entra: вы можете проверить регистрацию приложения и, если вы включили поддержку перенаправления https://jwt.ms, вы можете получить маркер идентификатора, выполнив следующие действия в браузере:

https://login.microsoftonline.com/<your-tenantId>/oauth2/v2.0/authorize?client_id=<your-appId>&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid%20profile&response_type=id_token&prompt=login

В этом коде замените заполнитель <your-tenantId> реальным идентификатором клиента. Чтобы получить дополнительные утверждения, вам потребуется профиль в рамках области.

Для Azure Active Directory B2C процесс регистрации приложений аналогичен, но в B2C есть встроенная поддержка тестирования политик B2C на портале Azure с помощью функции Запуск потока пользователя.

Утверждения в маркере идентификатора, полученном от поставщика удостоверений

Для успешного заполнения проверяемого удостоверения утверждения должны находиться в возвращенном поставщике удостоверений.

Если утверждения отсутствуют, выданное проверяемое удостоверение не приносит никакой пользы. Большинство поставщиков удостоверений OIDC не выдают утверждение в маркере идентификации, если утверждение имеет значение NULL в вашем профиле. Обязательно включите утверждение в определение маркера идентификатора и введите значение для утверждения в профиле пользователя.

Идентификатор Microsoft Entra: чтобы настроить утверждения для включения в маркер, см. дополнительные утверждения для приложения. Конфигурация создается отдельно для каждого приложения, поэтому в этой конфигурации нужно указать идентификатор приложения из определения правил.

Чтобы соблюсти требования определений правил и отображения, код JSON для параметров optionalClaims в приложении должен выглядеть следующим образом:

"optionalClaims": {
    "idToken": [
        {
            "name": "upn",
            "source": null,
            "essential": false,
            "additionalProperties": []
        },
        {
            "name": "family_name",
            "source": null,
            "essential": false,
            "additionalProperties": []
        },
        {
            "name": "given_name",
            "source": null,
            "essential": false,
            "additionalProperties": []
        },
        {
            "name": "preferred_username",
            "source": null,
            "essential": false,
            "additionalProperties": []
        }
    ],
    "accessToken": [],
    "saml2Token": []
},

Для Azure Active Directory B2C параметры других утверждений в маркере идентификации зависит от того, является ли политика B2C потоком пользователя или настраиваемой политикой. Сведения о потоках пользователя можно найти в статье Настройка потока регистрации и входа в Azure Active Directory B2C. Сведения о настраиваемой политике см. в статье Предоставление дополнительных утверждений для приложения.

Для других поставщиков удостоверений обратитесь к соответствующей документации.

Настройка примеров для выдачи и проверки пользовательских учетных данных

Чтобы настроить пример кода для выдачи и проверки с помощью пользовательских учетных данных, вам потребуется следующее:

  • Децентрализованный идентификатор издателя (DID) для вашего арендатора
  • Тип учетных данных
  • URL-адрес манифеста для учетных данных

Самый простой способ найти эти сведения для пользовательских учетных данных — перейти к нужным учетным данным на портале Azure. Выберите Выдать учетные данные. После этого вы получите доступ к текстовому полю с полезными данными JSON для API службы запросов. Замените значения заполнителей на данные для вашей среды. DID издателя — это значение центра.

Снимок экрана: краткое руководство по проблемам с пользовательскими учетными данными.

Следующие шаги

См. Справку по определению отображения и правил.