Megosztás a következőn keresztül:


API-összekötőkhöz használt biztonságos API-k a Azure AD B2C

Fontos

2025. május 1-jére az Azure AD B2C már nem lesz elérhető az új ügyfelek számára. További információ a GYIK-ben.

Amikor egy 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 a Azure AD B2C hívhassák meg a végpontot. Ez a cikk bemutatja, hogyan lehet biztonságossá tenni a REST API-t.

Előfeltételek

Kövesse az API-összekötő hozzáadása regisztrációs felhasználói folyamathoz útmutató lépéseit.

Az API-végpontot HTTP-alapszintű vagy HTTPS-ügyféltanúsítvány-hitelesítéssel védheti. Mindkét esetben meg kell adnia azokat a hitelesítő adatokat, amelyeket a Azure AD B2C használ az API-végpont meghívásakor. 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:

  • Azure AD B2C HTTP-kérést küld az ügyfél hitelesítő adataival, amelyek a `username` fejlécben vannak (password és 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-összekötő http-alapszintű hitelesítéssel való konfigurálásához kövesse az alábbi lépéseket:

  1. Jelentkezzen be a Azure portalra.
  2. Az Azure-szolgáltatások alatt válassza a Azure AD B2C lehetőséget, vagy keresse meg és válassza a Azure AD B2C.
  3. Válassza az API-összekötők lehetőséget, majd válassza ki a konfigurálni kívánt API-összekötőt .
  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 . Alapszintű hitelesítési konfiguráció biztosítása API-összekötőhöz.
  6. Válassza az Mentésgombot.

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

Ha alapszintű HTTP-hitelesítéssel szeretne konfigurálni egy REST API technikai profilt, 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 a Azure portalra.
  2. Ha több bérlőhöz is hozzáférése van, a felső menüben a Beállítások ikont választva váltson az Azure AD B2C-bérlőre 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 a Identity Experience Framework-et.
  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 következőt: RestApiUsername. Előfordulhat, hogy az előtag B2C_1A_ 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 Create gombot.
  11. Válassza ki ismét a Házirendkulcsok lehetőséget.
  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 következőt: RestApiPassword. Előfordulhat, hogy az előtag B2C_1A_ automatikusan hozzáadódik.
  15. A Titkos kód mezőbe írja be a REST API jelszót.
  16. Kulcshasználat esetén válassza a Titkosítás lehetőséget.
  17. Válassza a Create gombot.

A REST API technikai profil konfigurálása alapszintű HTTP-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 kiterjesztés házirend fájlt (TrustFrameworkExtensions.xml).
  2. Keresse meg a REST API technikai profilt. Például REST-ValidateProfile, vagy REST-GetProfile.
  3. Keresse meg a <Metadata> elemet.
  4. Módosítsa az AuthenticationType értéket Basic.
  5. Módosítsa az AllowInsecureAuthInProduction értéket .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 egy alapszintű HTTP-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 egy kölcsönös tanúsítványalapú hitelesítés, ahol az ügyfél, Azure AD B2C, megadja az ügyféltanúsítványát a kiszolgálónak az identitás igazolására. Ez az SSL-kézfogás részeként történik. Az API felelős az érvényes ügyfélhez tartozó tanúsítványok ellenőrzéséért, például Azure AD B2C, és az engedélyezési döntések végrehajtásáért. 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
  • Tartalom típusa: 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 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élyestanúsítványok>> lehetőséget.

  4. Jelölje ki a tanúsítványt, majd válassza az Összes tevékenység> 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 Következő>Befejezéslehetőséget.

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-összekötő konfigurálása

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

  1. Jelentkezzen be a Azure portalra.
  2. Az Azure-szolgáltatások területen válassza az Azure AD B2C-t.
  3. Válassza az API-összekötők lehetőséget, majd válassza ki a konfigurálni kívánt API-összekötőt .
  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. Tanúsítványhitelesítési konfiguráció biztosítása API-összekötőhöz.
  7. Válassza az Mentésgombot.

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 állítson be emlékeztető figyelmeztetéseket a tanúsítvány lejáratára. Létre kell hoznia egy új tanúsítványt, és meg kell ismételnie a fenti lépéseket, ha 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, majd kattintson az Új tanúsítvány feltöltése elemre. A legutóbb feltöltött tanúsítványt, amely még nem járt le, és amelynek kezdő dátuma lejárt, a Azure AD B2C automatikusan használni fogja.

Új tanúsítvány biztosítása egy API-összekötőnek, ha már létezik.

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

  1. Jelentkezzen be a Azure portalra.
  2. Ha több bérlőhöz is hozzáférése van, a felső menüben a Beállítások ikont választva váltson az Azure AD B2C-bérlőre 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 a Identity Experience Framework-et.
  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 következőt: RestApiClientCertificate. 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 Create gombot.

A REST API technikai profil 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 kiterjesztés házirend fájlt (TrustFrameworkExtensions.xml).
  2. Keresse meg a REST API technikai profilt. Például REST-ValidateProfile, vagy REST-GetProfile.
  3. Keresse meg a <Metadata> elemet.
  4. Módosítsa az AuthenticationType értéket ClientCertificate.
  5. Módosítsa az AllowInsecureAuthInProduction értéket .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 profilt mutat be:

<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 tulajdonosi hitelesítés

A tulajdonosi jogkivonat hitelesítését az OAuth2.0 engedélyezési keretrendszer: Tulajdonosi jogkivonat használata (RFC 6750) határozza meg. A tulajdonosi jogkivonat-hitelesítés során a Azure AD B2C HTTP-kérést küld egy jogkivonattal az engedélyezési fejlécben.

Authorization: Bearer <token>

A tulajdonosi token egy átlátszatlan karakterlánc. Ez lehet egy JWT hozzáférési jogkivonat vagy bármilyen sztring, amelyet a REST API elvár, hogy Azure AD B2C küldjön az engedélyezési fejlécben. Azure AD B2C a következő típusokat támogatja:

  • Tulajdonosi jogkivonat. Ahhoz, hogy elküldhesse a tulajdonosi jogkivonatot a RESTful technikai profilban, a szabályzatnak először be kell szereznie a tulajdonosi jogkivonatot, majd a RESTful technikai profilban kell használnia.
  • Statikus tulajdonosi jogkivonat. Ezt a megközelítést 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 technikai profilból a szabályzatkulcsra.

Az OAuth2 Bearer használata

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

Jogcím definiálása a hozzáférési token tárolására

A "claim" ideiglenes adattárolást biztosít 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 jogcímben kell tárolni a későbbi használathoz.

  1. Nyissa meg a szabályzat bővítményfájlját. Például: 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éleképpen is beszerezheti, egy összevont identitásszolgáltatótól, egy hozzáférési jogkivonatot visszaadó REST API hívásával, egy ROPC-folyamat használatával vagy az ügyfél hitelesítő adatainak folyamatával. Az ügyfél hitelesítő adatainak folyamatát általában olyan kiszolgálók közötti interakciókhoz használják, amelyeknek a háttérben kell futniuk, a felhasználóval való azonnali interakció nélkül.

Figyelmeztetés

A Microsoft azt javasolja, hogy ne használja a ROPC-folyamatot. Ez a folyamat nagyon nagyfokú bizalmat igényel az alkalmazásban, és olyan kockázatokat hordoz magában, amelyek más folyamatokban nincsenek jelen. Ezt a folyamatot csak akkor érdemes használni, ha más biztonságosabb folyamatok nem életképesek.

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

Az alábbi példa egy REST API technikai profilt használ, hogy kérést küldjön a Microsoft Entra tokenvégpontja felé a kliens hitelesítő adatokat alapszintű HTTP-hitelesítésként átadva. További információ: Microsoft Identitásplatform és az OAuth 2.0 ügyfél hitelesítő adatainak folyamata.

Ahhoz, hogy a technikai profil kommunikálhasson a Microsoft Entra ID-val a hozzáférési jogkivonat beszerzéséhez, regisztrálnia kell egy alkalmazást. Azure AD B2C a Microsoft Entra platformra támaszkodik. Az alkalmazást létrehozhatja a Azure AD B2C bérlőben vagy bármely Ön által felügyelt Microsoft Entra-bérlőben. Alkalmazás regisztrálása:

  1. Jelentkezzen be a Azure portalra.
  2. Ha több bérlőhöz is hozzáférése van, a felső menüben a Beállítások ikont választva váltson az Azure AD B2C-bérlőre a Címtárak + előfizetések menüből.
  3. A bal oldali menüben válassza a Microsoft Entra ID lehetőséget. Vagy válassza a Minden szolgáltatás lehetőséget, és keresse meg és válassza ki a Microsoft Entra azonosítót.
  4. Válassza Alkalmazásregisztrációklehetőséget, majd válassza Új regisztrációslehetőséget.
  5. Adja meg az alkalmazás nevét. Például Client_Credentials_Auth_app.
  6. A támogatott fióktípusokalatt válassza a csak a jelen szervezeti könyvtárban található fiókokat.
  7. Válassza a Regisztrálás lehetőséget.
  8. Jegyezze fel az alkalmazás (ügyfél) azonosítóját.

Az ügyfél hitelesítő adatainak folyamatához létre kell hoznia egy titkos alkalmazáskulcsot. Az ügyfél titkos kulcsát alkalmazásjelszónak is nevezik. Az alkalmazás a titkos kódot használja a hozzáférési jogkivonat beszerzéséhez.

  1. A Microsoft Entra azonosító – 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 kódok lehetőséget.
  3. Válassza az Új titkos ügyfélkód lehetőséget.
  4. Adja meg az ügyfél titkos kódjának leírását a Leírás mezőben. 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

Tárolnia kell az ügyfél-azonosítót és az ügyfél titkos kulcs értékét, amelyet korábban rögzített az Azure AD B2C bérlőjében.

  1. Jelentkezzen be a Azure portalra.
  2. Ha több bérlőhöz is hozzáférése van, a felső menüben a Beállítások ikont választva váltson az Azure AD B2C-bérlőre 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 a Identity Experience Framework-et.
  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 házirendkulcs 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óját.
  9. Kulcshasználat esetén válassza a Signaturelehetőséget.
  10. Válassza a Create gombot.
  11. Hozzon létre egy másik házirendkulcsot a következő beállításokkal:
    • Név: SecureRESTClientSecret.
    • Titkos: adja meg a korábban rögzített titkos ügyfélkódot

A ServiceUrl mezőben cserélje le a your-tenant-name kifejezést a Microsoft Entra-bérlő nevére. Az összes elérhető opciót lásd a RESTful technikai profilreferenciájában .

<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 technikai profilokban használja a grant_type vagy scope jogcímeket, javasoljuk, hogy azok is megadják DefaultValue és használják AlwaysUseDefaultValue="true" , hogy elkerüljék a helytelen értékkel való kötés esetleges ütközéseit.

A REST technikai 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 profilt az alábbi lépésekkel:

  1. A munkakönyvtárban nyissa meg a TrustFrameworkExtensions.xml bővítmény házirendfájlját.

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

  3. Keresse meg a <Metadata> elemet.

  4. Az AuthenticationType-t módosítsa Bearer-re az alábbiak szerint:

    <Item Key="AuthenticationType">Bearer</Item>
    
  5. Módosítsa vagy adja hozzá a UseClaimAsBearerToken értéket a bearerToken értékhez az alábbiak szerint. A bearerToken annak az igénynek a neve, amelyből a hordozó tokent lekéri (a kimeneti igény REST-AcquireAccessToken szerint).

    <Item Key="UseClaimAsBearerToken">bearerToken</Item>
    
  6. Adja hozzá az előző lépésből származó jogcímet 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>

Hívja meg a REST technikai profilt

A REST-GetProfile technikai profil meghívásához először a REST-AcquireAccessToken technikai profil használatával kell megszereznie egy Microsoft Entra hozzáférési tokent. Az alábbi példa bemutatja, hogyan hívhatja meg a technikai profilt REST-GetProfile egy érvényesítési technikai 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 útról vagy egy alútvonalró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-hordozó használata

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

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

  1. Jelentkezzen be a Azure portalra.
  2. Ha több bérlőhöz is hozzáférése van, a felső menüben a Beállítások ikont választva váltson az Azure AD B2C-bérlőre 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 a Identity Experience Framework-et.
  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. Adjon meg egy nevet a házirendkulcshoz. Például: 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 Create gombot.

A REST API technikai profil 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 kiterjesztés házirend fájlt (TrustFrameworkExtensions.xml).
  2. Keresse meg a REST API technikai profilt. Például REST-ValidateProfile, vagy REST-GetProfile.
  3. Keresse meg a <Metadata> elemet.
  4. Módosítsa az AuthenticationType értéket Bearer.
  5. Módosítsa az AllowInsecureAuthInProduction értéket .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 példa egy tulajdonosi jogkivonat-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">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 technikai profil hivatkozását a regisztrációs technikai profilhoz, amely a REST-AcquireAccessToken-t meghívja. Ez a viselkedés azt jelenti, hogy Azure AD B2C csak a 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ébencodeszerepel a 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 a termelésben. 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 hitelesítési módszert implementálni (nem ajánlott), kiválaszthatja az "alapszintű" hitelesítést az API-összekötő konfigurációjában, és ideiglenes értékeket usernamepassword használhat, amelyeket 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ó, amely a felhasználó hitelesítésére szolgál egy REST API-végpont eléréséhez. A kulcsot a rendszer egy egyéni HTTP-fejlécben küldi el. A Azure Functions HTTP-eseményindító például a x-functions-key HTTP-fejlécet használja a kérelmező azonosításához.

API-kulcs házirendkulcsok hozzáadása

Ha API-kulcsos hitelesítéssel szeretne konfigurálni egy REST API technikai profilt, hozza létre a következő titkosítási kulcsot az API-kulcs tárolásához:

  1. Jelentkezzen be a Azure portalra.
  2. Ha több bérlőhöz is hozzáférése van, a felső menüben a Beállítások ikont választva váltson az Azure AD B2C-bérlőre 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 a Identity Experience Framework-et.
  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 következőt: RestApiKey. Előfordulhat, hogy az előtag B2C_1A_ 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 Create gombot.

A REST API technikai profil 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 kiterjesztés házirend fájlt (TrustFrameworkExtensions.xml).
  2. Keresse meg a REST API technikai profilt. Például REST-ValidateProfile, vagy REST-GetProfile.
  3. Keresse meg a <Metadata> elemet.
  4. Módosítsa az AuthenticationType értéket ApiKeyHeader.
  5. Módosítsa az AllowInsecureAuthInProduction értéket .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-key néven küldi el a rendszer.

Az alábbi XML-kódrészlet egy példa egy RESTful technikai profilra, amely úgy van konfigurálva, hogy API-kulcsos hitelesítéssel hívjon meg egy Azure-függvényt:

<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>