Dela via


Skapa verifierbara autentiseringsuppgifter för ID-token

En regeldefinition som använder idTokens-attesteringen skapar ett utfärdandeflöde där du måste göra en interaktiv inloggning till en OpenID Anslut-identitetsprovider (OIDC) i Microsoft Authenticator. Anspråk i ID-token som identitetsprovidern returnerar kan användas för att fylla i den utfärdade verifierbara autentiseringsuppgiften. Avsnittet för anspråksmappning i regeldefinitionen anger vilka anspråk som används.

Skapa en anpassad autentiseringsuppgift med idTokens-attesteringstypen

När du väljer Lägg till autentiseringsuppgifter i Azure-portalen får du alternativet att starta två snabbstarter. Välj anpassade autentiseringsuppgifter och välj sedan Nästa.

Skärmbild av snabbstarten för problemautentiseringsuppgifter för att skapa en anpassad autentiseringsuppgift.

På sidan Skapa en ny autentiseringsuppgift anger du JSON-koden för visningen och regeldefinitionerna. I rutan Namnautentiseringsuppgifter ger du autentiseringsuppgifterna ett typnamn. Om du vill skapa autentiseringsuppgifterna väljer du Skapa.

Skärmbild av sidan Skapa en ny autentiseringsuppgift med JSON-exempel för visnings- och regelfilerna.

Exempel på JSON-visningsdefinitioner

JSON-visningsdefinitionen är nästan densamma, oavsett attesteringstyp. Du behöver bara justera etiketterna enligt de anspråk som dina verifierbara autentiseringsuppgifter har. Förväntad JSON för visningsdefinitionerna är det inre innehållet i visningssamlingen. JSON är en samling, så om du vill stödja flera nationella inställningar lägger du till flera poster med kommatecken som avgränsare.

{
    "locale": "en-US",
    "card": {
      "title": "Verified Credential Expert",
      "issuedBy": "Microsoft",
      "backgroundColor": "#000000",
      "textColor": "#ffffff",
      "logo": {
        "uri": "https://didcustomerplayground.blob.core.windows.net/public/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"
      }
    ]
}

Exempel på JSON-regeldefinitioner

JSON-attesteringsdefinitionen bör innehålla idTokens-namnet, OIDC-konfigurationsinformationen (clientId, konfiguration, redirectUri och omfång) och avsnittet för anspråksmappning. Den förväntade JSON för regeldefinitionerna är det inre innehållet i regelattributet, som börjar med attesteringsattributet.

Anspråksmappningen i följande exempel kräver att du konfigurerar token enligt beskrivningen i avsnittet Anspråk i ID-token från avsnittet identitetsprovider .

{
  "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"
    ]
  }
}

Programregistrering

Attributet clientId är program-ID för ett registrerat program i OIDC-identitetsprovidern. För Microsoft Entra-ID skapar du programmet genom att göra följande:

  1. Gå till Microsoft Entra-ID i Azure-portalen.

  2. Välj Appregistreringar, välj Ny registrering och ge sedan appen ett namn.

    Om du bara vill att konton i din klientorganisation ska kunna logga in kan du endast markera kryssrutan Konton i den här katalogen.

  3. I Omdirigerings-URI (valfritt) väljer du Offentlig klient/intern (mobil och skrivbord) och anger sedan vcclient://openid/.

Om du vill kunna testa vilka anspråk som finns i Microsoft Entra-token gör du följande:

  1. I den vänstra rutan väljer du Autentisering>Lägg till plattformswebb.>

  2. För Omdirigerings-URI anger du https://jwt.msoch väljer sedan ID-token (används för implicita flöden och hybridflöden)..

  3. Välj Konfigurera.

När du har testat din ID-token kan du överväga att ta bort https://jwt.ms och stöd för implicita flöden och hybridflöden.

För Microsoft Entra-ID: Du kan testa din appregistrering och om du har aktiverat stöd för omdirigering till https://jwt.mskan du hämta en ID-token genom att köra följande i webbläsaren:

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

Ersätt ditt klient-ID> med ditt klient-ID i koden<. För att få de extra anspråken måste du ha en profil som en del av omfånget.

För Azure Active Directory B2C: Appregistreringsprocessen är densamma, men B2C har inbyggt stöd i Azure-portalen för att testa dina B2C-principer via funktionen Kör användarflöde .

Anspråk i ID-token från identitetsprovidern

Anspråk måste finnas i den returnerade identitetsprovidern så att de kan fylla i dina verifierbara autentiseringsuppgifter.

Om anspråken inte finns finns det inget värde i den utfärdade verifierbara autentiseringsuppgiften. De flesta OIDC-identitetsprovidrar utfärdar inte ett anspråk i en ID-token om anspråket har ett null-värde i din profil. Se till att inkludera anspråket i ID-tokendefinitionen och se till att du har angett ett värde för anspråket i din användarprofil.

För Microsoft Entra-ID: Information om hur du konfigurerar anspråken att inkludera i din token finns i Ange valfria anspråk till din app. Konfigurationen är per program, så den här konfigurationen bör vara för den app som har det program-ID som anges i klient-ID:t i regeldefinitionen.

Om du vill matcha visnings- och regeldefinitionerna bör du få programmets optionalClaims JSON att se ut så här:

"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": []
},

För Azure Active Directory B2C: Konfigurera andra anspråk i din ID-token beror på om din B2C-princip är ett användarflöde eller en anpassad princip. Information om användarflöden finns i Konfigurera ett registrerings- och inloggningsflöde i Azure Active Directory B2C. Information om anpassad princip finns i Ange valfria anspråk till din app.

Andra identitetsprovidrar finns i relevant dokumentation.

Konfigurera exemplen för att utfärda och verifiera dina anpassade autentiseringsuppgifter

För att konfigurera exempelkoden för att utfärda och verifiera dina anpassade autentiseringsuppgifter behöver du:

  • Klientorganisationens decentraliserade identifierare (DID)
  • Typ av autentiseringsuppgifter
  • Manifest-URL:en till dina autentiseringsuppgifter

Det enklaste sättet att hitta den här informationen för en anpassad autentiseringsuppgift är att gå till dina autentiseringsuppgifter i Azure-portalen. Välj Problemautentiseringsuppgifter. Sedan har du åtkomst till en textruta med en JSON-nyttolast för API:et för begärandetjänsten. Ersätt platshållarvärdena med din miljöinformation. Utfärdarens DID är utfärdarvärdet.

Skärmbild av problemet med anpassade autentiseringsuppgifter i snabbstarten.

Nästa steg

Se referensen regler och visningsdefinitioner.