Hitelesítés és engedélyezés az alkalmazásban
A biztonság kritikus fontosságú a modern webalkalmazások számára. Dinamikus keretrendszer a webalkalmazás-architektúra részeként a biztonságos infrastruktúra fontos része. Dinamikus keretrendszer egy rétegzett architektúra, és a hitelesítéssel kapcsolatos fogalmak az általa összekapcsolt Fluid-szolgáltatáson alapulnak. Ez azt jelenti, hogy bár az összes Fluid-szolgáltatásban vannak gyakori hitelesítési témák, a részletek és a részletek minden szolgáltatás esetében eltérőek lesznek.
Azure Fluid Relay szolgáltatás
Minden létrehozott Azure Fluid Relay-szolgáltatás bérlői azonosítót és saját egyedi bérlői titkos kulcsot kap.
A titkos kulcs egy megosztott titkos kód. Az alkalmazás/szolgáltatás tudja, és az Azure Fluid Relay szolgáltatás is ismeri. Mivel a bérlő titkos kulcsa egyedileg a bérlőhöz van kötve, a kérések aláírására használt kulcs garantálja az Azure Fluid Relay szolgáltatásnak, hogy a kérések a bérlő egy jogosult felhasználójától érkeznek.
A titkos kulcs az, ahogyan az Azure Fluid Relay szolgáltatás tudja, hogy a kérések az alkalmazásból vagy szolgáltatásból érkeznek. Ez kritikus fontosságú, mert ha az Azure Fluid Relay szolgáltatás megbízik abban, hogy az alkalmazás intézi a kéréseket, megbízhatóvá teheti a küldött adatokat. Ezért is fontos, hogy a titkos kulcs biztonságosan legyen kezelve.
Figyelmeztetés
Bárki, aki hozzáfér a titkos kódhoz, megszemélyesítheti az alkalmazást az Azure Fluid Relay szolgáltatással folytatott kommunikáció során.
JSON Web Tokens és Azure Fluid Relay szolgáltatás
Az Azure Fluid Relay JSON webes jogkivonatokat (JWT-ket) használ a titkos kulccsal aláírt adatok kódolásához és ellenőrzéséhez. A JSON webes jogkivonatok aláírt JSON-bitek, amelyek további információkat tartalmazhatnak a jogosultságokról és engedélyekről.
Megjegyzés:
A JWT-k jellemzői túlmutatnak a jelen cikk hatókörén. A JWT szabványról további információt a JSON webes jogkivonatok bemutatása című témakörben talál.
Bár a hitelesítés részletei különböznek a Fluid-szolgáltatásoktól, több értéknek mindig jelen kell lennie.
- containerId A Fluid szolgáltatásnak szüksége van a tárolóazonosítóra annak azonosításához, hogy melyik szolgáltatás felel meg a hívó tárolónak. Megjegyzés: A JWT meghívja ezt a mező documentId azonosítóját, de a Fluid szolgáltatás tárolóazonosítót vár ebben a mezőben.
- tenantId: Az Azure Fluid Relay szolgáltatás a bérlőazonosítóval kéri le a kérés hitelesítéséhez használni kívánt megosztott titkos kulcsot.
- hatókörök: A hatókörök határozzák meg a hívó tároló engedélyeit. A hatókörök mező tartalma rugalmas, így saját egyéni engedélyeket hozhat létre.
{
"alg": "HS256",
"typ": "JWT"
}.{
"documentId": "azureFluidDocumentId",
"scopes": [ "doc:read", "doc:write", "summary:write" ],
"user": {
"name": "TestUser",
"id": "Test-Id-123"
},
"iat": 1599098963,
"exp": 1599098963,
"tenantId": "AzureFluidTenantId",
"ver": "1.0"
}.[Signature]
A felhasználó üzemmódja jelzi, hogy a kapcsolat olvasási vagy olvasási/írási módban van-e. Ez a mezőből tekinthető meg a connections
következőben AzureAudience
: . A jogkivonat-hatókör engedélyei frissíthetők a kiszolgáló nélküli Azure-függvényben a generateToken
függvény alatt.
const token = generateToken(
tenantId,
documentId,
key,
scopes ?? [ "Token Scope" ],
user
);
A token hatókörei, valamint a tároló viselkedése és módjai a következők:
Jogkivonat hatóköre | Saját dokumentum viselkedése | Célközönség dokumentumának viselkedése |
---|---|---|
DocRead | Olvasás és írás a dokumentumba. A dokumentum módosításai nem jelennek meg más célközönségdokumentumokban. Mód: Olvasás |
Olvasás és írás a dokumentumba. A módosítások nem jelennek meg más célközönségdokumentumokban. Mód: Írás |
DocWrite | Olvasás és írás a dokumentumba. A végrehajtott módosítások az összes többi célközönségdokumentumban is megjelennek. Mód: Írás |
Olvasás és írás a dokumentumba. A végrehajtott módosítások az összes többi célközönségdokumentumban is megjelennek. Mód: Írás |
DocRead, DocWrite | Olvasás és írás a dokumentumba. A végrehajtott módosítások az összes többi célközönségdokumentumban is megjelennek. Mód: Írás |
Olvasás és írás a dokumentumba. A végrehajtott módosítások az összes többi célközönségdokumentumban is megjelennek. Mód: Írás |
Megjegyzés:
Vegye figyelembe, hogy a jogkivonat felhasználói adatokat is tartalmaz (lásd a fenti 7–9. sort). Ezzel bővítheti azokat a felhasználói adatokat, amelyek automatikusan elérhetővé válnak a Fluid Code számára a célközönség funkció használatával. További információ: Egyéni adatok hozzáadása jogkivonatokhoz .
A jogkivonat-szolgáltató
Az Azure Fluid Relay felé irányuló minden kérést érvényes JWT-vel kell aláírni. A Fluid delegálja a jogkivonatok létrehozásának és aláírásának felelősségét a jogkivonat-szolgáltatóknak.
A jogkivonat-szolgáltató feladata olyan jogkivonatok létrehozása és aláírása, amelyeket az @fluidframework/azure-client
Azure Fluid Relay szolgáltatáshoz való kérésekhez használnak. Saját biztonságos jogkivonat-szolgáltatói implementációt kell biztosítania. A Fluid azonban olyan fájlt InsecureTokenProvider
biztosít, amely elfogadja a bérlői titkos kulcsot, majd helyileg létrehoz és visszaad egy aláírt jogkivonatot. Ez a jogkivonat-szolgáltató teszteléshez hasznos, éles környezetben azonban nem használható.
Biztonságos kiszolgáló nélküli jogkivonat-szolgáltató
A biztonságos jogkivonat-szolgáltató létrehozásának egyik lehetősége egy kiszolgáló nélküli Azure-függvény létrehozása és jogkivonat-szolgáltatóként való elérhetővé tétele. Ez lehetővé teszi a bérlő titkos kulcsának biztonságos kiszolgálón való tárolását. Az alkalmazás ezután meghívja az Azure-függvényt, hogy hozzon létre jogkivonatokat ahelyett, hogy helyileg aláírná őket, ahogyan azt tenné InsecureTokenProvider
. További információ : TokenProvider írása Azure-függvényekkel.
Csatlakozás felhasználói hitelesítést a Fluid service-hitelesítéshez
A Fluid Services megosztott ügyfélkód használatával hitelesíti a bejövő hívásokat, ami nem egy adott felhasználóhoz van kötve. A felhasználóhitelesítés a Fluid szolgáltatás adatai alapján adható hozzá.
A felhasználói hitelesítés egyik egyszerű lehetősége az lenne, ha egyszerűen egy Azure-függvényt használna jogkivonat-szolgáltatóként, és kényszerítené a felhasználói hitelesítést a jogkivonat beszerzésének feltételeként. Ha egy alkalmazás megpróbálja meghívni a függvényt, az sikertelen lenne, hacsak nem hitelesíti a hitelesítést a hitelesítési rendszerrel. Ha például Microsoft Entra-azonosítót használ, létrehozhat egy Microsoft Entra-alkalmazást az Azure-függvényhez, és összekapcsolhatja azt a szervezet hitelesítési rendszeréhez.
Ebben az esetben a felhasználó Microsoft Entra-azonosítóval jelentkezik be az alkalmazásba, amelyen keresztül lekért egy jogkivonatot az Azure-függvény meghívásához. Maga az Azure-függvény is ugyanúgy viselkedik, de most már csak azok számára érhető el, akik a Microsoft Entra-azonosítóval is hitelesítettek.
Mivel az Azure-függvény most már a belépési pontja egy érvényes jogkivonat beszerzésének, csak azok a felhasználók tudják majd ezt a jogkivonatot biztosítani az Azure Fluid Relay szolgáltatásnak az ügyfélalkalmazásukból, akik megfelelően hitelesítették a függvényt. Ez a kétlépéses megközelítés lehetővé teszi, hogy saját egyéni hitelesítési folyamatot használjon az Azure Fluid Relay szolgáltatással együtt.