Webové rozhraní API
Upozornění
Tento obsah je určený pro starší koncový bod Azure AD verze 1.0. Pro nové projekty použijte Microsoft identity platform.
Webové aplikace API jsou webové aplikace, které potřebují získat prostředky z webového rozhraní API. V tomto scénáři existují dva typy identit, které může webová aplikace použít k ověření a volání webového rozhraní API:
- Identita aplikace – Tento scénář používá k ověření jako aplikaci a přístupu k webovému rozhraní API udělení přihlašovacích údajů klienta OAuth 2.0. Při použití identity aplikace může webové rozhraní API pouze rozpoznat, že ji webová aplikace volá, protože webové rozhraní API nepřijímá žádné informace o uživateli. Pokud aplikace obdrží informace o uživateli, budou odeslány prostřednictvím aplikačního protokolu a nebudou podepsány Azure AD. Webové rozhraní API důvěřuje, že webová aplikace ověřila uživatele. Z tohoto důvodu se tento model nazývá důvěryhodný subsystém.
- Delegovaná identita uživatele – Tento scénář je možné provést dvěma způsoby: OpenID Connect a udělení autorizačního kódu OAuth 2.0 s důvěrným klientem. Webová aplikace získá pro uživatele přístupový token, který webovému rozhraní API prokáže, že se uživatel úspěšně ověřil ve webové aplikaci a že webová aplikace mohla získat delegovanou identitu uživatele pro volání webového rozhraní API. Tento přístupový token se odešle v požadavku do webového rozhraní API, které autorizuje uživatele a vrátí požadovaný prostředek.
Identita aplikace i delegovaná identita uživatele jsou popsány v následujícím toku. Hlavní rozdíl mezi nimi spočívá v tom, že identita delegovaného uživatele musí nejprve získat autorizační kód, aby se uživatel mohl přihlásit a získat přístup k webovému rozhraní API.
Diagram
Tok protokolu
Identita aplikace s udělením přihlašovacích údajů klienta OAuth 2.0
- Uživatel je přihlášený k Azure AD ve webové aplikaci (další informace najdete v části Webové aplikace).
- Webová aplikace musí získat přístupový token, aby se mohl ověřit ve webovém rozhraní API a načíst požadovaný prostředek. Vytvoří požadavek na koncový bod tokenu Azure AD a poskytne přihlašovací údaje, ID aplikace a identifikátor URI ID aplikace webového rozhraní API.
- Azure AD ověří aplikaci a vrátí přístupový token JWT, který se používá k volání webového rozhraní API.
- Přes HTTPS webová aplikace použije vrácený přístupový token JWT k přidání řetězce JWT s označením Nosný do autorizační hlavičky požadavku do webového rozhraní API. Webové rozhraní API pak ověří token JWT, a pokud je ověření úspěšné, vrátí požadovaný prostředek.
Delegovaná identita uživatele pomocí OpenID Connect
- Uživatel je přihlášen k webové aplikaci pomocí Azure AD (viz část Webový prohlížeč do webové aplikace výše). Pokud uživatel webové aplikace ještě neumožní webové aplikaci volat webové rozhraní API jejím jménem, bude muset vyjádřit souhlas. Aplikace zobrazí potřebná oprávnění, a pokud jsou některá z těchto oprávnění na úrovni správce, normální uživatel v adresáři nebude moct vyjádřit souhlas. Tento proces souhlasu se vztahuje pouze na aplikace s více tenanty, ne pro aplikace s jedním tenantem, protože aplikace už bude mít potřebná oprávnění. Když se uživatel přihlásil, webová aplikace obdržela token ID s informacemi o uživateli a autorizačním kódem.
- Pomocí autorizačního kódu vydaného Azure AD odešle webová aplikace do koncového bodu tokenu Azure AD požadavek, který obsahuje autorizační kód, podrobnosti o klientské aplikaci (ID aplikace a identifikátor URI přesměrování) a požadovaný prostředek (identifikátor URI id aplikace pro webové rozhraní API).
- Autorizační kód a informace o webové aplikaci a webovém rozhraní API ověřuje Azure AD. Po úspěšném ověření vrátí Azure AD dva tokeny: přístupový token JWT a obnovovací token JWT.
- Přes HTTPS webová aplikace použije vrácený přístupový token JWT k přidání řetězce JWT s označením Nosný do autorizační hlavičky požadavku do webového rozhraní API. Webové rozhraní API pak ověří token JWT, a pokud je ověření úspěšné, vrátí požadovaný prostředek.
Delegovaná identita uživatele s udělením autorizačního kódu OAuth 2.0
- Uživatel je již přihlášen k webové aplikaci, jejíž ověřovací mechanismus je nezávislý na Azure AD.
- Webová aplikace vyžaduje autorizační kód k získání přístupového tokenu, takže prostřednictvím prohlížeče vydá požadavek na koncový bod autorizace Azure AD a po úspěšném ověření poskytne id aplikace a identifikátor URI přesměrování pro webovou aplikaci. Uživatel se přihlásí k Azure AD.
- Pokud uživatel webové aplikace ještě neumožní webové aplikaci volat webové rozhraní API jejím jménem, bude muset vyjádřit souhlas. Aplikace zobrazí potřebná oprávnění, a pokud jsou některá z těchto oprávnění na úrovni správce, normální uživatel v adresáři nebude moct vyjádřit souhlas. Tento souhlas se vztahuje na aplikaci s jedním i více tenanty. V případě jednoho tenanta může správce udělit souhlas správce s vyjádřením souhlasu jménem svých uživatelů. To lze provést pomocí
Grant Permissions
tlačítka v Azure Portal. - Jakmile uživatel vyjádří souhlas, webová aplikace obdrží autorizační kód, který potřebuje k získání přístupového tokenu.
- Pomocí autorizačního kódu vydaného Azure AD odešle webová aplikace do koncového bodu tokenu Azure AD požadavek, který obsahuje autorizační kód, podrobnosti o klientské aplikaci (ID aplikace a identifikátor URI přesměrování) a požadovaný prostředek (identifikátor URI id aplikace pro webové rozhraní API).
- Autorizační kód a informace o webové aplikaci a webovém rozhraní API ověřuje Azure AD. Po úspěšném ověření vrátí Azure AD dva tokeny: přístupový token JWT a obnovovací token JWT.
- Přes HTTPS webová aplikace použije vrácený přístupový token JWT k přidání řetězce JWT s označením Nosný do autorizační hlavičky požadavku do webového rozhraní API. Webové rozhraní API pak ověří token JWT, a pokud je ověření úspěšné, vrátí požadovaný prostředek.
Ukázky kódů
Projděte si ukázky kódu pro scénáře rozhraní API pro webovou aplikaci. A často se vracáte – nové vzorky se přidávají často. Rozhraní API z webové aplikace na web
Registrace aplikace
Informace o registraci aplikace pomocí koncového bodu Azure AD v1.0 najdete v tématu Registrace aplikace.
- Jeden tenant – Pro případy identity aplikace i delegované identity uživatele musí být webová aplikace a webové rozhraní API zaregistrované ve stejném adresáři v Azure AD. Webové rozhraní API je možné nakonfigurovat tak, aby zpřístupnilo sadu oprávnění, která se používají k omezení přístupu webové aplikace k jejím prostředkům. Pokud se používá typ delegované identity uživatele, musí webová aplikace vybrat požadovaná oprávnění z rozevírací nabídky Oprávnění k jiným aplikacím v Azure Portal. Tento krok se nevyžaduje, pokud se používá typ identity aplikace.
- Víceklienti – Nejprve je webová aplikace nakonfigurovaná tak, aby označovala oprávnění, která vyžaduje, aby byla funkční. Tento seznam požadovaných oprávnění se zobrazí v dialogovém okně, když uživatel nebo správce v cílovém adresáři udělí souhlas aplikaci a zpřístupní ho jeho organizaci. Některé aplikace vyžadují jenom oprávnění na úrovni uživatele, se kterými může souhlasit každý uživatel v organizaci. Jiné aplikace vyžadují oprávnění na úrovni správce, se kterými uživatel v organizaci nemůže souhlasit. Pouze správce adresáře může udělit souhlas aplikacím, které vyžadují tuto úroveň oprávnění. Když uživatel nebo správce souhlasí, webová aplikace i webové rozhraní API jsou zaregistrované v jejich adresáři.
Vypršení platnosti tokenu
Když webová aplikace použije autorizační kód k získání přístupového tokenu JWT, obdrží také obnovovací token JWT. Po vypršení platnosti přístupového tokenu je možné použít obnovovací token k opětovnému ověření uživatele, aniž by se museli znovu přihlásit. Tento obnovovací token se pak použije k ověření uživatele, což vede k vytvoření nového přístupového tokenu a obnovovacího tokenu.
Další kroky
- Další informace o dalších typech a scénářích aplikací
- Informace o základech ověřování Azure AD