Создание проверяемых учетных данных с несколькими аттестациями
Определение правил, использующее несколько типов аттестаций, создает поток выдачи, в котором утверждения исходят из нескольких источников. Например, может потребоваться представить существующие учетные данные, а также вручную ввести значения утверждений в Microsoft Authenticator.
В этом руководстве мы расширим пример аттестации маркера идентификатора, добавив самоотверяемое утверждение о том, что пользователь должен войти в Authenticator во время выдачи. Запрос на выдачу проверенному идентификатору содержит указание маркера идентификатора со значениями given_name
утверждений и family_name
типом самозадающейся аттестации для утверждения displayName
о том, что пользователь вводит себя.
Создание пользовательских учетных данных с несколькими типами аттестации
После нажатия кнопки Добавить учетные данные на портале Azure вы получите возможность открыть два кратких руководства. Выберите пользовательские учетные данные и щелкните Далее.
На странице Создать новые учетные данные введите код JSON для отображения и определения правил. В поле Имя учетных данных присвойте имя типа учетным данным. Выберите команду Создать, чтобы создать учетные данные.
Примеры определений отображения JSON
Определение отображения JSON имеет одно дополнительное утверждение displayName по сравнению с определением отображения маркера идентификатора.
{
"locale": "en-US",
"card": {
"title": "Verified Credential Expert",
"issuedBy": "Microsoft",
"backgroundColor": "#507090",
"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.displayName",
"label": "Name",
"type": "String"
},
{
"claim": "vc.credentialSubject.firstName",
"label": "First name",
"type": "String"
},
{
"claim": "vc.credentialSubject.lastName",
"label": "Last name",
"type": "String"
}
]
}
Примеры определений правил JSON
Определение правил JSON содержит две разные аттестации, которые указывают Authenticator получать значения утверждений из двух разных источников. Запрос на выдачу API службы запросов предоставляет значения для утверждений given_name и family_name для удовлетворения аттестации idTokenHints . Пользователю предлагается ввести значение утверждения для displayName в Authenticator во время выдачи.
{
"attestations": {
"idTokenHints": [
{
"mapping": [
{
"outputClaim": "firstName",
"required": true,
"inputClaim": "$.given_name",
"indexed": false
},
{
"outputClaim": "lastName",
"required": true,
"inputClaim": "$.family_name",
"indexed": false
}
],
"required": false
}
],
"selfIssued": {
"mapping": [
{
"outputClaim": "displayName",
"required": true,
"inputClaim": "displayName",
"indexed": false
}
],
"required": false
}
},
"validityInterval": 2592000,
"vc": {
"type": [
"VerifiedCredentialExpert"
]
}
}
Ввод утверждений во время выдачи
Во время выдачи Authenticator предложит пользователю ввести значения для указанных утверждений. Данные, вводимые пользователем, не проверяются.
Утверждения в выданных учетных данных
Выданные учетные данные имеют три утверждения в общей сложности, где First
и Last name
поступили из аттестации маркера идентификатора и Name
пришли от самоотдаемой аттестации.
Настройка примеров для выдачи и проверки пользовательских учетных данных
Чтобы настроить пример кода для выдачи и проверки с помощью пользовательских учетных данных, вам потребуется следующее:
- Децентрализованный идентификатор издателя (DID) для вашего арендатора
- Тип учетных данных
- URL-адрес манифеста для учетных данных
Самый простой способ найти эти сведения для пользовательских учетных данных — перейти к нужным учетным данным на портале Azure. Выберите Выдать учетные данные. После этого вы получите доступ к текстовому полю с полезными данными JSON для API службы запросов. Замените значения заполнителей на данные для вашей среды. DID издателя — это значение центра.