Sdílet prostřednictvím


Zabezpečení rozhraní API používaného konektorem ROZHRANÍ API v Microsoft Entra Externí ID tocích uživatelů samoobslužné registrace

Platí pro: Zelený kruh s bílým symbolem zaškrtnutí Tenanti pracovních sil – externí tenanti Bílý kruh se šedým symbolem X. (další informace)

Při integraci rozhraní REST API v rámci Microsoft Entra Externí ID toku uživatele samoobslužné registrace musíte chránit koncový bod rozhraní REST API pomocí ověřování. Ověřování rozhraní REST API zajišťuje, že do koncového bodu můžou volat jenom služby, které mají správné přihlašovací údaje, například ID Microsoft Entra. Tento článek popisuje, jak zabezpečit rozhraní REST API.

Požadavky

Dokončete kroky v návodu: Přidání konektoru rozhraní API do průvodce tokem registrace uživatele.

Koncový bod rozhraní API můžete chránit pomocí základního ověřování HTTP nebo ověřování pomocí klientského certifikátu HTTPS. V obou případech zadáte přihlašovací údaje, které Microsoft Entra ID používá při volání koncového bodu rozhraní API. Koncový bod rozhraní API pak zkontroluje přihlašovací údaje a provede rozhodnutí o autorizaci.

Základní ověřování HTTP

Tip

Postup v tomto článku se může mírně lišit v závislosti na portálu, od který začínáte.

Základní ověřování HTTP je definováno v DOKUMENTU RFC 2617. Základní ověřování funguje takto: Microsoft Entra ID odešle požadavek HTTP s přihlašovacími údaji klienta (username a password) v Authorization hlavičce. Přihlašovací údaje jsou formátovány jako řetězec username:passwordkódovaný v base64 . Vaše rozhraní API pak zodpovídá za kontrolu těchto hodnot za provádění dalších rozhodnutí o autorizaci.

Pokud chcete nakonfigurovat konektor rozhraní API se základním ověřováním HTTP, postupujte takto:

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce uživatelů.
  2. Přejděte na >Přehled externích>identit identit.
  3. Vyberte Všechny konektory rozhraní API a pak vyberte konektor rozhraní API, který chcete nakonfigurovat.
  4. Jako typ Ověřování vyberte Základní.
  5. Zadejte uživatelské jméno a heslo koncového bodu rozhraní REST API. Snímek obrazovky se základní konfigurací ověřování pro konektor rozhraní API
  6. Zvolte Uložit.

Ověřování klientským certifikátem HTTPS

Ověřování klientských certifikátů je vzájemné ověřování založené na certifikátech, kde klient, Microsoft Entra ID, poskytuje jeho klientský certifikát serveru k prokázání své identity. K tomu dochází jako součást metody handshake PROTOKOLU SSL. Vaše rozhraní API zodpovídá za ověření certifikátů, které patří platnému klientovi, jako je ID Microsoft Entra, a provádí rozhodnutí o autorizaci. Klientský certifikát je digitální certifikát X.509.

Důležité

V produkčních prostředích musí být certifikát podepsaný certifikační autoritou.

Vytvoření certifikátu

K vytvoření certifikátu můžete použít Službu Azure Key Vault, která má možnosti pro certifikáty podepsané svým držitelem a integraci s poskytovateli vystavitelů certifikátů pro podepsané certifikáty. Mezi doporučená nastavení patří:

  • Předmět: CN=<yourapiname>.<tenantname>.onmicrosoft.com
  • Typ obsahu: PKCS #12
  • Typ actonu životnosti: Email all contacts at a given percentage lifetime nebo Email all contacts a given number of days before expiry
  • Typ klíče: RSA
  • Velikost klíče: 2048
  • Exportovatelný privátní klíč: Yes (aby bylo možné exportovat .pfx soubor)

Pak můžete certifikát exportovat.

Možnost 2: Příprava certifikátu podepsaného svým držitelem pomocí PowerShellu

Pokud ještě certifikát nemáte, můžete použít certifikát podepsaný svým držitelem. Certifikát podepsaný svým držitelem je certifikát zabezpečení, který není podepsaný certifikační autoritou (CA) a neposkytuje záruky zabezpečení certifikátu podepsaného certifikační autoritou.

Ve Windows použijte rutinu New-SelfSignedCertificate v PowerShellu k vygenerování certifikátu.

  1. Spuštěním následujícího příkazu PowerShellu vygenerujte certifikát podepsaný svým držitelem. -Subject Upravte argument podle potřeby pro vaši aplikaci a název tenanta Azure AD B2C, například contosowebapp.contoso.onmicrosoft.com. Můžete také upravit -NotAfter datum a určit jiné vypršení platnosti certifikátu.

    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. Na počítači s Windows vyhledejte a vyberte Spravovat uživatelské certifikáty.

  3. V části Certifikáty – Aktuální uživatel vyberte osobní>certifikáty>yourappname.yourtenant.onmicrosoft.com.

  4. Vyberte certifikát a pak vyberte Akce>Všechny úkoly>exportu.

  5. Vyberte Další>ano, exportujte privátní klíč>Další.

  6. Přijměte výchozí hodnoty formátu exportu souboru a pak vyberte Další.

  7. Povolte možnost Heslo , zadejte heslo pro certifikát a pak vyberte Další.

  8. Pokud chcete zadat umístění pro uložení certifikátu, vyberte Procházet a přejděte do libovolného adresáře.

  9. V okně Uložit jako zadejte název souboru a pak vyberte Uložit.

  10. Vyberte Další>Dokončit.

Aby služba Azure AD B2C přijala heslo k souboru .pfx, musí být heslo zašifrované pomocí možnosti TripleDES-SHA1 v nástroji Pro export z Úložiště certifikátů windows, a ne pomocí AES256-SHA256.

Konfigurace konektoru rozhraní API

Pokud chcete nakonfigurovat konektor rozhraní API s ověřováním klientských certifikátů, postupujte takto:

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce uživatelů.
  2. Přejděte na >Přehled externích>identit identit.
  3. Vyberte Všechny konektory rozhraní API a pak vyberte konektor rozhraní API, který chcete nakonfigurovat.
  4. Jako typ ověřování vyberte Certifikát.
  5. V poli Nahrát certifikát vyberte soubor .pfx vašeho certifikátu s privátním klíčem.
  6. Do pole Zadat heslo zadejte heslo certifikátu. Snímek obrazovky s konfigurací ověřování certifikátů pro konektor rozhraní API
  7. Zvolte Uložit.

Provádění rozhodnutí o autorizaci

Vaše rozhraní API musí implementovat autorizaci na základě odeslaných klientských certifikátů, aby bylo možné chránit koncové body rozhraní API. Informace o tom, jak povolit a ověřit certifikát z kódu rozhraní API, najdete v tématu konfigurace vzájemného ověřování TLS pro Aplikace Azure Service a Azure Functions. Azure API Management můžete alternativně použít jako vrstvu před libovolnou službou API a zkontrolovat vlastnosti klientského certifikátu s požadovanými hodnotami.

Obnovení certifikátů

Doporučujeme nastavit upozornění na připomenutí, když vyprší platnost certifikátu. Při vypršení platnosti použitých certifikátů budete muset vygenerovat nový certifikát a zopakovat výše uvedené kroky. Pokud chcete "vrátit" používání nového certifikátu, může vaše služba ROZHRANÍ API dál přijímat staré a nové certifikáty po dočasnou dobu během nasazení nového certifikátu.

Pokud chcete nahrát nový certifikát do existujícího konektoru rozhraní API, vyberte konektor rozhraní API v části Konektory rozhraní API a vyberte nahrání nového certifikátu. Naposledy nahraný certifikát, jehož platnost nevypršela a jehož počáteční datum uplynulo, bude automaticky používáno ID Microsoft Entra.

Snímek obrazovky s novým certifikátem, pokud už existuje

Ověřování pomocí klíče rozhraní API

Některé služby používají mechanismus "klíč rozhraní API" k obfukování přístupu ke koncovým bodům HTTP během vývoje tím, že volající vyžaduje, aby jako hlavičku HTTP nebo parametr dotazu HTTP zahrnul jedinečný klíč. U Azure Functions toho můžete dosáhnout zahrnutím parametru code dotazu do adresy URL koncového bodu konektoru rozhraní API. Například https://contoso.azurewebsites.net/api/endpoint?code=0123456789).

Nejedná se o mechanismus, který by se měl používat samostatně v produkčním prostředí. Proto se vždy vyžaduje konfigurace základního ověřování nebo ověřování certifikátů. Pokud nechcete implementovat žádnou metodu ověřování (nedoporučuje se) pro účely vývoje, můžete v konfiguraci konektoru rozhraní API vybrat základní ověřování a použít dočasné hodnoty username a password že vaše rozhraní API může ignorovat při implementaci správné autorizace.

Další kroky

  • Začínáme s našimi ukázkami rychlého startu