Az Azure AD B2C API-összekötőihez használt biztonságos API-k

Amikor rest API-t integrál egy Azure AD B2C felhasználói folyamatba, hitelesítéssel kell védenie a REST API-végpontot. A REST API-hitelesítés biztosítja, hogy csak a megfelelő hitelesítő adatokkal rendelkező szolgáltatások, például az Azure AD B2C kezdeményezhessenek hívásokat a végpont felé. Ez a cikk bemutatja, hogyan lehet biztonságossá tenni a REST API-t.

Előfeltételek

Hajtsa végre az API-összekötő hozzáadása a regisztrációs felhasználói folyamat útmutatójában leírt lépéseket.

Az API-végpontot HTTP-alapszintű vagy HTTPS-ügyféltanúsítvány-hitelesítéssel védheti. Mindkét esetben meg kell adnia az Azure AD B2C által az API-végpont hívásához használt hitelesítő adatokat. Az API-végpont ezután ellenőrzi a hitelesítő adatokat, és engedélyezési döntéseket hoz.

ALAPSZINTŰ HTTP-hitelesítés

A HTTP alapszintű hitelesítés az RFC 2617-ben van definiálva. Az alapszintű hitelesítés a következőképpen működik:

  • Az Azure AD B2C http-kérést küld a fejlécben található ügyfél-hitelesítő adatokkal (username és password) együtt Authorization .

  • A hitelesítő adatok alap64 kódolású sztringként username:passwordvannak formázva.

  • Ezután az API feladata, hogy ellenőrizze ezeket az értékeket más engedélyezési döntések végrehajtásához.

Az API-Csatlakozás or http alapszintű hitelesítéssel való konfigurálásához kövesse az alábbi lépéseket:

  1. Jelentkezzen be az Azure Portalra.
  2. Az Azure-szolgáltatások területen válassza az Azure AD B2C-t, vagy keressen rá és válassza ki az Azure AD B2C-t.
  3. Válassza ki az API-összekötőket, majd válassza ki a konfigurálni kívánt API-Csatlakozás ort.
  4. A hitelesítés típusához válassza az Alapszintű lehetőséget.
  5. Adja meg a REST API-végpont felhasználónevét és jelszavát . Providing basic authentication configuration for an API connector.
  6. Válassza a Mentés parancsot.

REST API-felhasználónév és jelszóházirend-kulcsok hozzáadása

A REST API technikai profiljának HTTP alapszintű hitelesítéssel való konfigurálásához hozza létre a következő titkosítási kulcsokat a felhasználónév és a jelszó tárolásához:

  1. Jelentkezzen be az Azure Portalra.
  2. Ha több bérlőhöz is hozzáfér, a felső menüben válassza a Gépház ikont az Azure AD B2C-bérlőre való váltáshoz a Címtárak + előfizetések menüből.
  3. Válassza az Összes szolgáltatást az Azure Portal bal felső sarkában, majd keresse meg és válassza az Azure AD B2C-t.
  4. Az Áttekintés lapon válassza az Identity Experience Framework lehetőséget.
  5. Válassza a Házirendkulcsok lehetőséget, majd válassza a Hozzáadás lehetőséget.
  6. A Beállítások beállításnál válassza a Manuális lehetőséget.
  7. A Név mezőbe írja be a RestApiUsername nevet. Előfordulhat, hogy a B2C_1A_ előtag automatikusan hozzáadódik.
  8. A Titkos kód mezőbe írja be a REST API-felhasználónevet.
  9. Kulcshasználat esetén válassza a Titkosítás lehetőséget.
  10. Válassza a Létrehozás lehetőséget.
  11. Válassza újra a házirendkulcsokat .
  12. Válassza a Hozzáadás lehetőséget.
  13. A Beállítások beállításnál válassza a Manuális lehetőséget.
  14. A Név mezőbe írja be a RestApiPassword parancsot. Előfordulhat, hogy a B2C_1A_ előtag automatikusan hozzáadódik.
  15. A Titkos kód mezőbe írja be a REST API jelszavát.
  16. Kulcshasználat esetén válassza a Titkosítás lehetőséget.
  17. Válassza a Létrehozás lehetőséget.

A REST API technikai profiljának konfigurálása a HTTP alapszintű hitelesítés használatára

A szükséges kulcsok létrehozása után konfigurálja a REST API technikai profil metaadatait a hitelesítő adatokra való hivatkozáshoz.

  1. A munkakönyvtárban nyissa meg a bővítményházirend-fájlt (TrustFrameworkExtensions.xml).
  2. Keresse meg a REST API technikai profilját. Például REST-ValidateProfile, vagy REST-GetProfile.
  3. Keresse meg az <Metadata> elemet.
  4. Módosítsa az AuthenticationType értékét a következőre Basic: .
  5. Módosítsa az AllowInsecureAuthInProduction parancsot a következőre false: .
  6. Közvetlenül a záró </Metadata> elem után adja hozzá a következő XML-kódrészletet:
    <CryptographicKeys>
        <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_RestApiUsername" />
        <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_RestApiPassword" />
    </CryptographicKeys>
    

Az alábbi XML-kódrészlet egy példa a HTTP alapszintű hitelesítéssel konfigurált RESTful technikai profilra:

<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-GetProfile">
      <DisplayName>Get user extended profile Azure Function web hook</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
        <Item Key="SendClaimsIn">Body</Item>
        <Item Key="AuthenticationType">Basic</Item>
        <Item Key="AllowInsecureAuthInProduction">false</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_RestApiUsername" />
        <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_RestApiPassword" />
      </CryptographicKeys>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

HTTPS-ügyféltanúsítvány-hitelesítés

Az ügyféltanúsítvány-hitelesítés kölcsönös tanúsítványalapú hitelesítés, ahol az ügyfél, az Azure AD B2C biztosítja az ügyféltanúsítványát a kiszolgálónak az identitás igazolása érdekében. Ez az SSL-kézfogás részeként történik. Az API feladata, hogy érvényes ügyfélhez tartozó tanúsítványokat érvényesítsen, például az Azure AD B2C-t, és engedélyezési döntéseket hajt végre. Az ügyféltanúsítvány egy X.509 digitális tanúsítvány.

Fontos

Éles környezetben a tanúsítványt egy hitelesítésszolgáltatónak kell aláírnia.

Tanúsítvány létrehozása

Tanúsítvány létrehozásához használhatja az Azure Key Vaultot, amely önaláírt tanúsítványokra és az aláírt tanúsítványok tanúsítványkibocsátó szolgáltatóival való integrációra vonatkozó lehetőségekkel rendelkezik. Az ajánlott beállítások a következők:

  • Tárgy: CN=<yourapiname>.<tenantname>.onmicrosoft.com
  • Tartalomtípus: PKCS #12
  • Élettartam acton típusa: Email all contacts at a given percentage lifetime vagy Email all contacts a given number of days before expiry
  • Kulcs típusa: RSA
  • Kulcsméret: 2048
  • Exportálható titkos kulcs: Yes (a fájl exportálásához .pfx )

Ezután exportálhatja a tanúsítványt.

2. lehetőség: önaláírt tanúsítvány előkészítése a PowerShell-modullal

Ha még nem rendelkezik tanúsítvánnyal, használhat önaláírt tanúsítványt. Az önaláírt tanúsítvány olyan biztonsági tanúsítvány, amelyet nem egy hitelesítésszolgáltató (CA) ír alá, és nem biztosítja a hitelesítésszolgáltató által aláírt tanúsítvány biztonsági garanciáit.

Windows rendszeren a PowerShell New-SelfSignedCertificate parancsmagja segítségével hozzon létre tanúsítványt.

  1. Futtassa a következő PowerShell-parancsot egy önaláírt tanúsítvány létrehozásához. Módosítsa az argumentumot az -Subject alkalmazáshoz és az Azure AD B2C-bérlő nevéhez, például contosowebapp.contoso.onmicrosoft.com. A dátumot úgy is módosíthatja -NotAfter , hogy a tanúsítvány lejárata eltérő legyen.

    New-SelfSignedCertificate `
        -KeyExportPolicy Exportable `
        -Subject "CN=yourappname.yourtenant.onmicrosoft.com" `
        -KeyAlgorithm RSA `
        -KeyLength 2048 `
        -KeyUsage DigitalSignature `
        -NotAfter (Get-Date).AddMonths(12) `
        -CertStoreLocation "Cert:\CurrentUser\My"
    
  2. Windows rendszerű számítógépen keresse meg és válassza a Felhasználói tanúsítványok kezelése lehetőséget

  3. A Tanúsítványok – Aktuális felhasználó csoportban válassza a Személyes>tanúsítványok>yourappname.yourtenant.onmicrosoft.com lehetőséget.

  4. Jelölje ki a tanúsítványt, majd válassza az Összes tevékenység>exportálása művelet>lehetőséget.

  5. Válassza a Következő>igen lehetőséget, exportálja a Következő titkos kulcsot.>

  6. Fogadja el a fájlformátum exportálásának alapértelmezett értékét, majd válassza a Tovább gombot.

  7. Engedélyezze a Jelszó beállítást, adjon meg egy jelszót a tanúsítványhoz, majd válassza a Tovább gombot.

  8. A tanúsítvány mentési helyének megadásához válassza a Tallózás lehetőséget , és keresse meg a kívánt könyvtárat.

  9. A Mentés másként ablakban adjon meg egy fájlnevet, majd válassza a Mentés lehetőséget.

  10. Válassza a Next>Finish (Tovább > Befejezés) elemet.

Ahhoz, hogy az Azure AD B2C elfogadja a .pfx fájljelszót, a jelszót az AES256-SHA256 helyett a Windows Tanúsítványtár exportálási segédprogram TripleDES-SHA1 beállításával kell titkosítani.

Az API-Csatlakozás or konfigurálása

Az API-Csatlakozás or ügyféltanúsítvány-hitelesítéssel való konfigurálásához kövesse az alábbi lépéseket:

  1. Jelentkezzen be az Azure Portalra.
  2. Az Azure-szolgáltatások területen válassza az Azure AD B2C-t.
  3. Válassza ki az API-összekötőket, majd válassza ki a konfigurálni kívánt API-Csatlakozás ort.
  4. A hitelesítés típusához válassza a Tanúsítvány lehetőséget.
  5. A Tanúsítvány feltöltése mezőben válassza ki a tanúsítvány .pfx fájlját egy titkos kulccsal.
  6. Az Enter Password (Jelszó megadása) mezőbe írja be a tanúsítvány jelszavát. Providing certificate authentication configuration for an API connector.
  7. Válassza a Mentés parancsot.

Engedélyezési döntések végrehajtása

Az API-nak az elküldött ügyféltanúsítványok alapján kell implementálnia az engedélyezést az API-végpontok védelme érdekében. A szolgáltatás és az Azure Functions Azure-alkalmazás a TLS kölcsönös hitelesítésének konfigurálását ismertető cikkben megtudhatja, hogyan engedélyezheti és ellenőrizheti a tanúsítványt az API-kódból. Az Azure API Managementet bármely API-szolgáltatás előtti rétegként használhatja az ügyféltanúsítvány-tulajdonságok kívánt értékeken való ellenőrzéséhez.

Tanúsítványok megújítása

Javasoljuk, hogy emlékeztető riasztásokat állítson be arra az időpontra, amikor a tanúsítvány lejár. Új tanúsítványt kell létrehoznia, és meg kell ismételnie a fenti lépéseket, amikor a használt tanúsítványok hamarosan lejárnak. Az új tanúsítvány használatának "gördítéséhez" az API-szolgáltatás az új tanúsítvány üzembe helyezése során ideiglenesen továbbra is elfogadhatja a régi és az új tanúsítványokat.

Ha új tanúsítványt szeretne feltölteni egy meglévő API-összekötőbe, válassza ki az API-összekötőt az API-összekötők alatt, és kattintson az Új tanúsítvány feltöltése elemre. Az Azure AD B2C automatikusan használja a legutóbb feltöltött tanúsítványt, amely még nem járt le, és amelynek a kezdő dátuma lejárt.

Providing a new certificate to an API connector when one already exists.

Ügyféltanúsítvány-házirendkulcs hozzáadása

  1. Jelentkezzen be az Azure Portalra.
  2. Ha több bérlőhöz is hozzáfér, a felső menüben válassza a Gépház ikont az Azure AD B2C-bérlőre való váltáshoz a Címtárak + előfizetések menüből.
  3. Válassza az Összes szolgáltatást az Azure Portal bal felső sarkában, majd keresse meg és válassza az Azure AD B2C-t.
  4. Az Áttekintés lapon válassza az Identity Experience Framework lehetőséget.
  5. Válassza a Házirendkulcsok lehetőséget, majd válassza a Hozzáadás lehetőséget.
  6. A Beállítások mezőben válassza a Feltöltés lehetőséget.
  7. A Név mezőbe írja be a RestApiClientCertificate kifejezést. A B2C_1A_ előtag automatikusan hozzáadódik.
  8. A Fájlfeltöltés mezőben válassza ki a tanúsítvány .pfx fájlját egy titkos kulccsal.
  9. A Jelszó mezőbe írja be a tanúsítvány jelszavát.
  10. Válassza a Létrehozás lehetőséget.

A REST API technikai profiljának konfigurálása ügyféltanúsítvány-hitelesítés használatára

A szükséges kulcs létrehozása után konfigurálja a REST API technikai profil metaadatait az ügyféltanúsítványra való hivatkozáshoz.

  1. A munkakönyvtárban nyissa meg a bővítményházirend-fájlt (TrustFrameworkExtensions.xml).
  2. Keresse meg a REST API technikai profilját. Például REST-ValidateProfile, vagy REST-GetProfile.
  3. Keresse meg az <Metadata> elemet.
  4. Módosítsa az AuthenticationType értékét a következőre ClientCertificate: .
  5. Módosítsa az AllowInsecureAuthInProduction parancsot a következőre false: .
  6. Közvetlenül a záró </Metadata> elem után adja hozzá a következő XML-kódrészletet:
    <CryptographicKeys>
       <Key Id="ClientCertificate" StorageReferenceId="B2C_1A_RestApiClientCertificate" />
    </CryptographicKeys>
    

Az alábbi XML-kódrészlet egy HTTP-ügyféltanúsítvánnyal konfigurált RESTful technikai profilra mutat példát:

<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-GetProfile">
      <DisplayName>Get user extended profile Azure Function web hook</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
        <Item Key="SendClaimsIn">Body</Item>
        <Item Key="AuthenticationType">ClientCertificate</Item>
        <Item Key="AllowInsecureAuthInProduction">false</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="ClientCertificate" StorageReferenceId="B2C_1A_RestApiClientCertificate" />
      </CryptographicKeys>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

OAuth2-tulajdonos hitelesítése

A tulajdonosi jogkivonat-hitelesítés az OAuth2.0 engedélyezési keretrendszerben van definiálva: Tulajdonosi jogkivonat-használat (RFC 6750). A tulajdonosi jogkivonat-hitelesítés során az Azure AD B2C egy HTTP-kérést küld egy jogkivonattal az engedélyezési fejlécben.

Authorization: Bearer <token>

A tulajdonosi jogkivonat egy átlátszatlan sztring. Ez lehet JWT hozzáférési jogkivonat vagy bármely olyan sztring, amelyet a REST API elvár az Azure AD B2C-nek az engedélyezési fejlécben való elküldéséhez. Az Azure AD B2C a következő típusokat támogatja:

  • Tulajdonosi jogkivonat. Ahhoz, hogy a tulajdonosi jogkivonatot elküldhesse a Restful műszaki profilban, a szabályzatnak először be kell szereznie a tulajdonosi jogkivonatot, majd azt a RESTful műszaki profilban kell használnia.
  • Statikus tulajdonosi jogkivonat. Ezt a módszert akkor használja, ha a REST API hosszú távú hozzáférési jogkivonatot ad ki. Statikus tulajdonosi jogkivonat használatához hozzon létre egy szabályzatkulcsot, és hivatkozzon a RESTful műszaki profilból a szabályzatkulcsra.

Az OAuth2 Bearer használata

Az alábbi lépések bemutatják, hogyan szerezhet be egy tulajdonosi jogkivonatot az ügyfél hitelesítő adataival, és hogyan adhatja át a REST API-hívások engedélyezési fejlécébe.

A tulajdonosi jogkivonat tárolására vonatkozó jogcím meghatározása

A jogcímek ideiglenes adattárolást biztosítanak az Azure AD B2C-szabályzat végrehajtása során. A jogcímséma az a hely, ahol a jogcímeket deklarálja. A hozzáférési jogkivonatot egy később használni kívánt jogcímben kell tárolni.

  1. Nyissa meg a szabályzat bővítményfájlját. For example, SocialAndLocalAccounts/TrustFrameworkExtensions.xml.
  2. Keresse meg a BuildingBlocks elemet. Ha az elem nem létezik, adja hozzá.
  3. Keresse meg a ClaimsSchema elemet. Ha az elem nem létezik, adja hozzá.
  4. Adja hozzá a következő jogcímeket a ClaimsSchema elemhez.
<ClaimType Id="bearerToken">
  <DisplayName>Bearer token</DisplayName>
  <DataType>string</DataType>
</ClaimType>
<ClaimType Id="grant_type">
  <DisplayName>Grant type</DisplayName>
  <DataType>string</DataType>
</ClaimType>
<ClaimType Id="scope">
  <DisplayName>scope</DisplayName>
  <DataType>string</DataType>
</ClaimType>

Hozzáférési jogkivonat beszerzése

A hozzáférési jogkivonatot többféle módon is beszerezheti egy összevont identitásszolgáltatótól, ha meghív egy REST API-t, amely hozzáférési jogkivonatot ad vissza, ROPC-folyamat használatával vagy az ügyfél hitelesítő adatainak folyamatával. Az ügyfél hitelesítő adatainak folyamatát gyakran használják olyan kiszolgáló–kiszolgáló interakciókhoz, amelyeknek a háttérben kell futniuk anélkül, hogy azonnali interakciót kell végeznie egy felhasználóval.

Microsoft Entra hozzáférési jogkivonat beszerzése

Az alábbi példa egy REST API technikai profilt használ a Microsoft Entra-jogkivonat végpontjának kéréséhez a HTTP-alaphitelesítésként átadott ügyfél-hitelesítő adatok használatával. További információ: Microsoft Identitásplatform és az OAuth 2.0 ügyfél hitelesítő adatainak folyamata.

Ahhoz, hogy a technikai profil kapcsolatba léphessen a Microsoft Entra-azonosítóval egy hozzáférési jogkivonat beszerzéséhez, regisztrálnia kell egy alkalmazást. Az Azure AD B2C a Microsoft Entra platformra támaszkodik. Az alkalmazást létrehozhatja az Azure AD B2C-bérlőben vagy bármely Felügyelt Microsoft Entra-bérlőben. Alkalmazás regisztrálása:

  1. Jelentkezzen be az Azure Portalra.
  2. Ha több bérlőhöz is hozzáfér, a felső menüben válassza a Gépház ikont az Azure AD B2C-bérlőre való váltáshoz a Címtárak + előfizetések menüből.
  3. A bal oldali menüben válassza a Microsoft Entra-azonosítót. Vagy válassza a Minden szolgáltatás lehetőséget , és keresse meg és válassza a Microsoft Entra-azonosítót.
  4. Válassza a Alkalmazásregisztrációk, majd az Új regisztráció lehetőséget.
  5. Adja meg az alkalmazás nevét. Például Client_Credentials_Auth_app.
  6. A Támogatott fióktípusok csoportban válassza a Csak ebben a szervezeti címtárban lévő Fiókok lehetőséget.
  7. Válassza ki a pénztárgépet.
  8. Rögzítse az alkalmazás (ügyfél) azonosítóját.

Az ügyfél hitelesítő adatainak folyamatához létre kell hoznia egy alkalmazáskulcsot. Az ügyfélkulcsot alkalmazásjelszónak is nevezik. Az alkalmazás a titkos kód használatával szerez be egy hozzáférési jogkivonatot.

  1. A Microsoft Entra ID – Alkalmazásregisztrációk lapon válassza ki a létrehozott alkalmazást, például Client_Credentials_Auth_app.
  2. A bal oldali menü Kezelés területén válassza a Tanúsítványok titkos kulcsok& lehetőséget.
  3. Válassza az Új titkos ügyfélkód lehetőséget.
  4. Írja be az ügyfél titkos kódjának leírását a Leírás mezőbe. Például: clientsecret1.
  5. A Lejáratok csoportban válassza ki azt az időtartamot, amelyre érvényes a titkos kód, majd válassza a Hozzáadás lehetőséget.
  6. Jegyezze fel a titkos kód értékét az ügyfélalkalmazás kódjában való használatra. Ez a titkos érték soha többé nem jelenik meg a lap elhagyása után. Ezt az értéket használja alkalmazáskulcsként az alkalmazás kódjában.

Azure AD B2C szabályzatkulcsok létrehozása

El kell tárolnia az ügyfél-azonosítót és a korábban az Azure AD B2C-bérlőben rögzített titkos ügyfélkulcs-értéket.

  1. Jelentkezzen be az Azure Portalra.
  2. Ha több bérlőhöz is hozzáfér, a felső menüben válassza a Gépház ikont az Azure AD B2C-bérlőre való váltáshoz a Címtárak + előfizetések menüből.
  3. Válassza az Összes szolgáltatást az Azure Portal bal felső sarkában, majd keresse meg és válassza az Azure AD B2C-t.
  4. Az Áttekintés lapon válassza az Identity Experience Framework lehetőséget.
  5. Válassza a Házirendkulcsok lehetőséget, majd válassza a Hozzáadás lehetőséget.
  6. A Beállítások beállításnál válassza a Manuallehetőséget.
  7. Adja meg a szabályzatkulcs nevét. SecureRESTClientId A rendszer automatikusan hozzáadja az előtagot B2C_1A_ a kulcs nevéhez.
  8. A Titkos kód mezőben adja meg a korábban rögzített ügyfél-azonosítót.
  9. Kulcshasználat esetén válassza a Signaturelehetőséget.
  10. Válassza a Létrehozás lehetőséget.
  11. Hozzon létre egy másik szabályzatkulcsot a következő beállításokkal:
    • Név: SecureRESTClientSecret.
    • Titkos kód: adja meg a korábban rögzített ügyféltitkot

A ServiceUrl esetében cserélje le a bérlő nevét a Microsoft Entra-bérlő nevére. Tekintse meg a RESTful műszaki profilra vonatkozó referenciát az összes elérhető beállításhoz.

<TechnicalProfile Id="REST-AcquireAccessToken">
  <DisplayName></DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="ServiceUrl">https://login.microsoftonline.com/your-tenant-name.onmicrosoft.com/oauth2/v2.0/token</Item>
    <Item Key="AuthenticationType">Basic</Item>
     <Item Key="SendClaimsIn">Form</Item>
  </Metadata>
  <CryptographicKeys>
    <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_SecureRESTClientId" />
    <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_SecureRESTClientSecret" />
  </CryptographicKeys>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="grant_type" DefaultValue="client_credentials" AlwaysUseDefaultValue="true" />
    <InputClaim ClaimTypeReferenceId="scope" DefaultValue="https://graph.microsoft.com/.default" AlwaysUseDefaultValue="true" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="bearerToken" PartnerClaimType="access_token" />
  </OutputClaims>
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>

Megjegyzés:

Ha más műszaki profilokban használja a grant_type jogcímeket, scope azt javasoljuk, hogy a helytelen értékhez való kötés esetleges ütközéseinek elkerülése érdekében is megadják DefaultValue és használják AlwaysUseDefaultValue="true" őket.

A REST műszaki profil módosítása tulajdonosi jogkivonat-hitelesítés használatára

A tulajdonosi jogkivonat-hitelesítés egyéni szabályzatban való támogatásához módosítsa a REST API technikai profilját az alábbi lépések végrehajtásával:

  1. A munkakönyvtárban nyissa meg az TrustFrameworkExtensions.xml kiterjesztési házirendfájlt.

  2. Keresse meg a csomópontot, amely tartalmazzaId="REST-API-SignUp".<TechnicalProfile>

  3. Keresse meg az <Metadata> elemet.

  4. Módosítsa az AuthenticationType-t tulajdonosra az alábbiak szerint:

    <Item Key="AuthenticationType">Bearer</Item>
    
  5. Módosítsa vagy adja hozzá a UseClaimAsBearerTokent a bearerTokenhez az alábbiak szerint. A bearerToken annak a jogcímnek a neve, amelyből a tulajdonosi jogkivonatot lekéri (a kimeneti jogcím innen származik REST-AcquireAccessToken).

    <Item Key="UseClaimAsBearerToken">bearerToken</Item>
    
  6. Adja hozzá az előző lépés jogcímét bemeneti jogcímként:

    <InputClaim ClaimTypeReferenceId="bearerToken"/>
    

A szabályzat frissítése után a technikai profilnak az alábbi XML-kódhoz hasonlóan kell kinéznie:

<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-GetProfile">
      <DisplayName>Get user extended profile Azure Function web hook</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
        <Item Key="SendClaimsIn">Body</Item>
        <Item Key="AuthenticationType">Bearer</Item>
        <Item Key="UseClaimAsBearerToken">bearerToken</Item>
        <Item Key="AllowInsecureAuthInProduction">false</Item>
      </Metadata>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="bearerToken"/>
      </InputClaims>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

A REST műszaki profil meghívása

A technikai profil meghívásához REST-GetProfile először be kell szereznie egy Microsoft Entra hozzáférési jogkivonatot a REST-AcquireAccessToken technikai profil használatával. Az alábbi példa bemutatja, hogyan hívhatja meg a REST-GetProfile műszaki profilt egy érvényesítési műszaki profilból:

<ValidationTechnicalProfiles>
  <ValidationTechnicalProfile ReferenceId="REST-AcquireAccessToken" />
  <ValidationTechnicalProfile ReferenceId="REST-GetProfile" />
</ValidationTechnicalProfiles>

Az alábbi példa bemutatja, hogyan hívhatja meg a REST-GetProfile technikai profilt egy felhasználói folyamatból vagy egy alútról:

<OrchestrationSteps>
  <OrchestrationStep Order="2" Type="ClaimsExchange">
    <ClaimsExchanges>
      <ClaimsExchange Id="REST-AcquireAccessTokens" TechnicalProfileReferenceId="REST-AcquireAccessToken" />
    </ClaimsExchanges>
  </OrchestrationStep>

  <OrchestrationStep Order="3" Type="ClaimsExchange">
    <ClaimsExchanges>
      <ClaimsExchange Id="REST-GetProfile" TechnicalProfileReferenceId="REST-GetProfile" />
    </ClaimsExchanges>
  </OrchestrationStep>
</OrchestrationSteps>

Statikus OAuth2-tulajdonos használata

Az OAuth2 tulajdonosi jogkivonat szabályzatkulcsának hozzáadása

Ha oAuth2 tulajdonosi jogkivonattal szeretne konfigurálni egy REST API technikai profilt, szerezze be a hozzáférési jogkivonatot a REST API-tulajdonostól. Ezután hozza létre a következő titkosítási kulcsot a tulajdonosi jogkivonat tárolásához.

  1. Jelentkezzen be az Azure Portalra.
  2. Ha több bérlőhöz is hozzáfér, a felső menüben válassza a Gépház ikont az Azure AD B2C-bérlőre való váltáshoz a Címtárak + előfizetések menüből.
  3. Válassza az Összes szolgáltatást az Azure Portal bal felső sarkában, majd keresse meg és válassza az Azure AD B2C-t.
  4. Az Áttekintés lapon válassza az Identity Experience Framework lehetőséget.
  5. Válassza a Házirendkulcsok lehetőséget, majd válassza a Hozzáadás lehetőséget.
  6. A Beállítások beállításnál válassza a Manuallehetőséget.
  7. Adja meg a szabályzatkulcs nevét. For example, RestApiBearerToken. A rendszer automatikusan hozzáadja az előtagot B2C_1A_ a kulcs nevéhez.
  8. A Titkos kód mezőbe írja be a korábban rögzített ügyfélkulcsot.
  9. Kulcshasználat esetén válassza a Encryptionlehetőséget.
  10. Válassza a Létrehozás lehetőséget.

A REST API technikai profiljának konfigurálása a tulajdonosi jogkivonat szabályzatkulcsának használatára

A szükséges kulcs létrehozása után konfigurálja a REST API technikai profil metaadatait a tulajdonosi jogkivonatra való hivatkozáshoz.

  1. A munkakönyvtárban nyissa meg a bővítményházirend-fájlt (TrustFrameworkExtensions.xml).
  2. Keresse meg a REST API technikai profilját. Például REST-ValidateProfile, vagy REST-GetProfile.
  3. Keresse meg az <Metadata> elemet.
  4. Módosítsa az AuthenticationType értékét a következőre Bearer: .
  5. Módosítsa az AllowInsecureAuthInProduction parancsot a következőre false: .
  6. Közvetlenül a záró </Metadata> elem után adja hozzá a következő XML-kódrészletet:
    <CryptographicKeys>
       <Key Id="BearerAuthenticationToken" StorageReferenceId="B2C_1A_RestApiBearerToken" />
    </CryptographicKeys>
    

Az alábbi XML-kódrészlet egy reSTful technikai profilra mutat példát, amely tulajdonosi jogkivonat-hitelesítéssel van konfigurálva:

<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-GetProfile">
      <DisplayName>Get user extended profile Azure Function web hook</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
        <Item Key="SendClaimsIn">Body</Item>
        <Item Key="AuthenticationType">Bearer</Item>
        <Item Key="AllowInsecureAuthInProduction">false</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="BearerAuthenticationToken" StorageReferenceId="B2C_1A_RestApiBearerToken" />
      </CryptographicKeys>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

Adja hozzá az érvényesítési műszaki profilra mutató hivatkozást a regisztrációs műszaki profilhoz, amely meghívja a következőt REST-AcquireAccessToken: . Ez a viselkedés azt jelenti, hogy az Azure AD B2C csak sikeres ellenőrzés után hozza létre a fiókot a címtárban.

Például:

```XML
<ValidationTechnicalProfiles>
   ....
   <ValidationTechnicalProfile ReferenceId="REST-AcquireAccessToken" />
   ....
</ValidationTechnicalProfiles>

API-kulcs hitelesítése

Egyes szolgáltatások egy "API-kulcs" mechanizmust használnak a HTTP-végpontokhoz való hozzáférés elhomályosítása érdekében a fejlesztés során azáltal, hogy a hívónak egy egyedi kulcsot kell tartalmaznia HTTP-fejlécként vagy HTTP-lekérdezési paraméterként. Az Azure Functions esetében ezt úgy teheti meg, hogy az API-összekötő végponti URL-címébenszerepel a code lekérdezési paraméter. Például: https://contoso.azurewebsites.net/api/endpoint?code=0123456789).

Ez nem egy olyan mechanizmus, amelyet egyedül kell használni az éles környezetben. Ezért az alapszintű vagy tanúsítványhitelesítés konfigurálásához mindig szükség van. Ha fejlesztési célokra nem szeretne (nem ajánlott) hitelesítési módszert implementálni, választhatja az "alapszintű" hitelesítést az API-összekötő konfigurációjában, és ideiglenes értékeket username használhat, amelyeket password az API figyelmen kívül hagyhat a megfelelő engedélyezés megvalósítása során.

Az API-kulcs egy egyedi azonosító, amellyel egy felhasználó hitelesíthető a REST API-végpont eléréséhez. A kulcs egy egyéni HTTP-fejlécben lesz elküldve. Az Azure Functions HTTP-eseményindítója például a x-functions-key HTTP-fejléc használatával azonosítja a kérelmezőt.

API-kulcskulcsok hozzáadása

A REST API technikai profil API-kulcsos hitelesítéssel való konfigurálásához hozza létre a következő titkosítási kulcsot az API-kulcs tárolásához:

  1. Jelentkezzen be az Azure Portalra.
  2. Ha több bérlőhöz is hozzáfér, a felső menüben válassza a Gépház ikont az Azure AD B2C-bérlőre való váltáshoz a Címtárak + előfizetések menüből.
  3. Válassza az Összes szolgáltatást az Azure Portal bal felső sarkában, majd keresse meg és válassza az Azure AD B2C-t.
  4. Az Áttekintés lapon válassza az Identity Experience Framework lehetőséget.
  5. Válassza a Házirendkulcsok lehetőséget, majd válassza a Hozzáadás lehetőséget.
  6. A Beállítások beállításnál válassza a Manuális lehetőséget.
  7. A Név mezőbe írja be a RestApiKey nevet. Előfordulhat, hogy a B2C_1A_ előtag automatikusan hozzáadódik.
  8. A Titkos kód mezőbe írja be a REST API-kulcsot.
  9. Kulcshasználat esetén válassza a Titkosítás lehetőséget.
  10. Válassza a Létrehozás lehetőséget.

A REST API technikai profiljának konfigurálása API-kulcsos hitelesítés használatára

A szükséges kulcs létrehozása után konfigurálja a REST API technikai profil metaadatait a hitelesítő adatokra való hivatkozáshoz.

  1. A munkakönyvtárban nyissa meg a bővítményházirend-fájlt (TrustFrameworkExtensions.xml).
  2. Keresse meg a REST API technikai profilját. Például REST-ValidateProfile, vagy REST-GetProfile.
  3. Keresse meg az <Metadata> elemet.
  4. Módosítsa az AuthenticationType értékét a következőre ApiKeyHeader: .
  5. Módosítsa az AllowInsecureAuthInProduction parancsot a következőre false: .
  6. Közvetlenül a záró </Metadata> elem után adja hozzá a következő XML-kódrészletet:
    <CryptographicKeys>
        <Key Id="x-functions-key" StorageReferenceId="B2C_1A_RestApiKey" />
    </CryptographicKeys>
    

A titkosítási kulcs azonosítója határozza meg a HTTP-fejlécet. Ebben a példában az API-kulcsot x-functions-kulcsként küldi el a rendszer.

Az alábbi XML-kódrészlet egy olyan RESTful műszaki profilra mutat példát, amely egy AZURE-függvény API-kulcsos hitelesítéssel való meghívására van konfigurálva:

<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-GetProfile">
      <DisplayName>Get user extended profile Azure Function web hook</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
        <Item Key="SendClaimsIn">Body</Item>
        <Item Key="AuthenticationType">ApiKeyHeader</Item>
        <Item Key="AllowInsecureAuthInProduction">false</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="x-functions-key" StorageReferenceId="B2C_1A_RestApiKey" />
      </CryptographicKeys>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

További lépések

  • Ismerkedés a mintákkal.