Autorizace přístupu k vyhledávací aplikaci pomocí Microsoft Entra ID
Vyhledávací aplikace, které jsou založené na službě Azure AI Search, teď můžou k ověřenému a autorizovanému přístupu používat platformu Microsoft Identity Platform . V Azure je zprostředkovatel identity Microsoft Entra ID. Klíčovou výhodou používání Microsoft Entra ID je to, že vaše přihlašovací údaje a klíče rozhraní API už nemusí být uložené ve vašem kódu. Microsoft Entra ověřuje objekt zabezpečení (uživatel, skupina nebo služba) spuštěnou aplikaci. Pokud ověřování proběhne úspěšně, vrátí Microsoft Entra ID přístupový token do aplikace a aplikace pak může přístupový token použít k autorizaci požadavků na Azure AI Search.
V tomto článku se dozvíte, jak nakonfigurovat klienta pro ID Microsoft Entra:
Pro ověřování vytvořte spravovanou identitu pro vaši aplikaci. Můžete použít jiný typ objektu zabezpečení, ale tento článek používá spravované identity, protože eliminují potřebu správy přihlašovacích údajů.
Pro autorizaci přiřaďte spravované identitě roli Azure, která uděluje oprávnění ke spouštění dotazů nebo správě úloh indexování.
Aktualizujte kód klienta tak, aby volal
TokenCredential()
. Můžete například začít s novým SearchClient(koncový bod, novýDefaultAzureCredential()
) a ověřit se prostřednictvím ID Microsoft Entra pomocí Azure.Identity.
Konfigurace přístupu na základě role pro rovinu dat
Platí pro: Přispěvatel dat indexu Vyhledávání, Čtenář dat indexu vyhledávání, Přispěvatel vyhledávací služby
V tomto kroku nakonfigurujte vyhledávací službu tak, aby rozpoznala autorizační hlavičku požadavků na data, která poskytují přístupový token OAuth2.
Přihlaste se k webu Azure Portal a otevřete stránku vyhledávací služby.
V levém navigačním podokně vyberte Klávesy .
Zvolte možnost řízení přístupu k rozhraní API. Pokud potřebujete flexibilitu nebo potřebujete migrovat aplikace, doporučujeme obojí .
Možnost Popis Klíč rozhraní API (výchozí) Vyžaduje klíče rozhraní API pro správce nebo dotaz na hlavičku požadavku pro autorizaci. Nepoužívají se žádné role. Řízení přístupu na základě role Vyžaduje členství v přiřazení role k dokončení úkolu popsaného v dalším kroku. Vyžaduje také autorizační hlavičku. Oba Požadavky jsou platné pomocí klíče rozhraní API nebo řízení přístupu na základě role.
Změna je efektivní okamžitě, ale před testováním počkejte několik sekund.
Všechna síťová volání pro operace vyhledávací služby a obsah respektují možnost, kterou vyberete: klíče rozhraní API, nosný token nebo jeden, pokud vyberete Obě.
Pokud na portálu povolíte řízení přístupu na základě role, režim selhání je http401WithBearerChallenge, pokud se autorizace nezdaří.
Vytvoření spravované identity
V tomto kroku vytvořte spravovanou identitu pro klientskou aplikaci.
Přihlaste se k portálu Azure.
Vyhledejte spravované identity.
Vyberte Vytvořit.
Zadejte název spravované identity a vyberte oblast. Potom vyberte Vytvořit.
Přiřazení role ke spravované identitě
Dále je potřeba udělit spravované identitě klienta přístup k vaší vyhledávací službě. Azure AI Search má různé předdefinované role. Můžete také vytvořit vlastní roli.
Osvědčeným postupem je udělit minimální oprávnění. Pokud vaše aplikace potřebuje zpracovávat pouze dotazy, měli byste přiřadit roli Čtenář dat indexu vyhledávání. Případně pokud klient potřebuje přístup ke čtení i zápisu v indexu vyhledávání, měli byste použít roli Přispěvatel dat indexu vyhledávání.
Přihlaste se k portálu Azure.
Přejděte do vyhledávací služby.
V levém navigačním podokně vyberte Řízení přístupu (IAM ).
Vyberte + Přidat>Přidat přiřazení role.
Vyberte příslušnou roli:
Vlastník
Přispěvatel
Čtenář
Přispěvatel vyhledávací služby
Přispěvatel dat indexu vyhledávání
Čtečka dat indexu vyhledávání
Poznámka:
Vlastník, Přispěvatel, Čtenář a Přispěvatel vyhledávací služby jsou role řídicí roviny a neudělují vám přístup k datům v indexu vyhledávání. Pro přístup k datům zvolte roli Přispěvatel dat indexu vyhledávání nebo Čtenář dat indexu vyhledávání. Další informace o rozsahu a účelu jednotlivých rolí najdete v tématu Předdefinované role používané ve službě Search.
Na kartě Členové vyberte spravovanou identitu, kterou chcete udělit přístup ke službě Search.
Na kartě Zkontrolovat a přiřadit vyberte možnost Zkontrolovat a přiřadit a přiřaďte roli.
Pokud vaše aplikace potřebuje komplexní přístup k vyhledávacím službám, objektům a obsahu, můžete přiřadit více rolí, jako je Přispěvatel vyhledávacích služeb a Přispěvatel dat indexu vyhledávání.
Role můžete přiřadit také pomocí PowerShellu.
Nastavení ověřování Microsoft Entra v klientovi
Jakmile máte spravovanou identitu a přiřazení role ve vyhledávací službě, můžete do aplikace přidat kód pro ověření objektu zabezpečení a získání tokenu OAuth 2.0.
Pro řízení přístupu na základě role použijte následující klientské knihovny:
- azure.search.documents (Azure SDK pro .NET)
- azure-search-documents (Azure SDK pro Javu)
- azure/search-documents (Azure SDK pro JavaScript)
- azure.search.documents (Azure SDK pro Python)
Poznámka:
Další informace o toku udělení kódu OAuth 2.0, který používá ID Microsoft Entra, najdete v tématu Autorizace přístupu k webovým aplikacím Microsoft Entra pomocí toku udělení kódu OAuth 2.0.
Následující pokyny odkazují na existující ukázku jazyka C#, která demonstruje změny kódu.
Jako výchozí bod naklonujte zdrojový kód pro oddíl C# rychlého startu : Fulltextové vyhledávání pomocí sad Azure SDK.
Ukázka v současné době používá ověřování založené na klíčích a
AzureKeyCredential
k vytvořeníSearchClient
ověřování,SearchIndexClient
ale můžete provést malou změnu, která se přepne na ověřování na základě rolí.Aktualizujte balíček NuGet Azure.Search.Documents na verzi 11.4 nebo novější.
Naimportujte knihovnu Azure.Identity , abyste získali přístup k jiným technikám ověřování.
Místo použití
AzureKeyCredential
na začátkuMain()
Program.cs použijteDefaultAzureCredential
jako v následujícím fragmentu kódu:// Create a SearchIndexClient to send create/delete index commands SearchIndexClient adminClient = new SearchIndexClient(serviceEndpoint, new DefaultAzureCredential()); // Create a SearchClient to load and query documents SearchClient srchclient = new SearchClient(serviceEndpoint, indexName, new DefaultAzureCredential());
Místní testování
Spravované identity přiřazené uživatelem fungují jenom v prostředích Azure. Pokud tento kód spustíte místně, DefaultAzureCredential
vrátí se zpět k ověřování pomocí vašich přihlašovacích údajů. Pokud plánujete spustit kód místně, ujistěte se, že máte v úmyslu zadat požadovaný přístup k vyhledávací službě.
Ověřte, že váš účet má přiřazení rolí ke spuštění všech operací v ukázce rychlého startu. K vytvoření indexu a dotazování indexu použijte "Search Index Data Reader" a "Search Index Data Contributor".
Přejděte na Možnosti služby Azure Options>>a zvolte svůj přihlašovací účet Azure.
Teď byste měli být schopni spustit projekt ze sady Visual Studio v místním systému pomocí řízení přístupu na základě role pro autorizaci.
Poznámka:
Dokumentace k Azure.Identity obsahuje další podrobnosti o DefaultAzureCredential
ověřování Microsoft Entra pomocí sady Azure SDK pro .NET. DefaultAzureCredential
účelem je zjednodušit zahájení práce se sadou SDK tím, že zpracovává běžné scénáře s rozumným výchozím chováním. Vývojáři, kteří chtějí mít větší kontrolu nebo jejichž scénář není ve výchozím nastavení obsluhován, by měli používat jiné typy přihlašovacích údajů.
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro