Zabezpečení rozhraní API používaného konektorem ROZHRANÍ API v Microsoft Entra Externí ID tocích uživatelů samoobslužné registrace
Platí pro: Tenanti pracovních sil – externí tenanti (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:password
kó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:
- Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce uživatelů.
- Přejděte na >Přehled externích>identit identit.
- Vyberte Všechny konektory rozhraní API a pak vyberte konektor rozhraní API, který chcete nakonfigurovat.
- Jako typ Ověřování vyberte Základní.
- Zadejte uživatelské jméno a heslo koncového bodu rozhraní REST API.
- 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
Možnost 1: Použití služby Azure Key Vault (doporučeno)
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
neboEmail 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.
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říkladcontosowebapp.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"
Na počítači s Windows vyhledejte a vyberte Spravovat uživatelské certifikáty.
V části Certifikáty – Aktuální uživatel vyberte osobní>certifikáty>yourappname.yourtenant.onmicrosoft.com.
Vyberte certifikát a pak vyberte Akce>Všechny úkoly>exportu.
Vyberte Další>ano, exportujte privátní klíč>Další.
Přijměte výchozí hodnoty formátu exportu souboru a pak vyberte Další.
Povolte možnost Heslo , zadejte heslo pro certifikát a pak vyberte Další.
Pokud chcete zadat umístění pro uložení certifikátu, vyberte Procházet a přejděte do libovolného adresáře.
V okně Uložit jako zadejte název souboru a pak vyberte Uložit.
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:
- Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce uživatelů.
- Přejděte na >Přehled externích>identit identit.
- Vyberte Všechny konektory rozhraní API a pak vyberte konektor rozhraní API, který chcete nakonfigurovat.
- Jako typ ověřování vyberte Certifikát.
- V poli Nahrát certifikát vyberte soubor .pfx vašeho certifikátu s privátním klíčem.
- Do pole Zadat heslo zadejte heslo certifikátu.
- 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.
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