Ověřování a autorizace pro Azure Spatial Anchors

V tomto článku se dozvíte o různých způsobech ověřování ve službě Azure Spatial Anchors z vaší aplikace nebo webové služby. Dozvíte se také o způsobech použití řízení přístupu na základě role v Azure (Azure RBAC) v Microsoft Entra ID k řízení přístupu k účtům Spatial Anchors.

Upozorňující

K rychlému onboardingu doporučujeme používat klíče účtu, ale pouze během vývoje a vytváření prototypů. Nedoporučujeme dodávat aplikaci do produkčního prostředí s vloženým klíčem účtu. Místo toho použijte přístupy k ověřování Microsoft Entra založené na uživatelích nebo službách popsané dále.

Přehled

Diagram that shows an overview of authentication to Azure Spatial Anchors.

Pokud chcete získat přístup k danému účtu Azure Spatial Anchors, musí klienti nejprve získat přístupový token ze služby tokenů zabezpečení Hybridní reality (STS). Tokeny získané ze služby STS mají životnost 24 hodin. Obsahují informace, které služby Spatial Anchors používají k rozhodování o autorizaci účtu a zajišťují, že k účtu mají přístup jenom autorizované objekty zabezpečení.

Přístupové tokeny je možné získat výměnou za klíče účtu nebo tokeny vydané id Microsoft Entra.

Klíče účtu umožňují rychle začít používat službu Azure Spatial Anchors. Než ale nasadíte aplikaci do produkčního prostředí, doporučujeme aplikaci aktualizovat tak, aby používala ověřování Microsoft Entra.

Ověřovací tokeny Microsoft Entra můžete získat dvěma způsoby:

  • Pokud vytváříte podnikovou aplikaci a vaše společnost jako svůj systém identit používá Microsoft Entra ID, můžete ve své aplikaci použít ověřování Microsoft Entra založené na uživatelích. Pak udělíte přístup k účtům Spatial Anchors pomocí stávajících skupin zabezpečení Microsoft Entra. Můžete také udělit přístup přímo uživatelům ve vaší organizaci.
  • Jinak doporučujeme získat tokeny Microsoft Entra z webové služby, která podporuje vaši aplikaci. Tuto metodu doporučujeme pro produkční aplikace, protože vám umožní vyhnout se vkládání přihlašovacích údajů pro přístup k Azure Spatial Anchors do klientské aplikace.

Klíče účtu

Nejjednodušší způsob, jak začít, je použít klíče účtu pro přístup k vašemu účtu Azure Spatial Anchors. Klíče účtu můžete získat na webu Azure Portal. Přejděte na svůj účet a vyberte kartu Klíče :

Screenshot that shows the Keys tab with the Copy button for the Primary key highlighted.

K dispozici jsou dva klíče. Oba jsou současně platné pro přístup k účtu Spatial Anchors. Doporučujeme pravidelně aktualizovat klíč, který používáte pro přístup k účtu. Dvě samostatné platné klíče umožňují tyto aktualizace bez výpadků. Primární klíč a sekundární klíč musíte aktualizovat jenom alternativně.

Sada SDK má integrovanou podporu ověřování prostřednictvím klíčů účtu. Stačí nastavit vlastnost objektu AccountKeycloudSession :

this.cloudSession.Configuration.AccountKey = @"MyAccountKey";

Po nastavení této vlastnosti sada SDK zpracuje výměnu klíče účtu pro přístupový token a nezbytné ukládání tokenů do mezipaměti pro vaši aplikaci.

Ověřování uživatelů Microsoft Entra

Pro aplikace, které cílí na uživatele Microsoft Entra, doporučujeme pro uživatele použít token Microsoft Entra. Tento token můžete získat pomocí knihovny MSAL. Postupujte podle kroků v rychlém startu při registraci aplikace, mezi které patří:

Na webu Azure Portal

  1. Zaregistrujte aplikaci v Microsoft Entra ID jako nativní aplikaci. V rámci registrace budete muset určit, jestli má být vaše aplikace víceklientských. Budete také muset zadat adresy URL pro přesměrování povolené pro vaši aplikaci.

  2. Přejděte na kartu Oprávnění rozhraní API.

  3. Vyberte Přidat oprávnění.

    1. Na kartě Rozhraní API, která používá moje organizace, vyberte poskytovatele prostředků hybridní reality.
    2. Vyberte Delegovaná oprávnění.
    3. V části mixedreality vyberte mixedreality.signin.
    4. Vyberte Přidat oprávnění.
  4. Vyberte Udělit souhlas správce.

  5. Přiřaďte aplikaci nebo uživatele, kterým chcete udělit přístup k vašemu prostředku, roli ASA RBAC. Pokud chcete, aby uživatelé vaší aplikace měli různé role vůči účtu ASA, zaregistrujte více aplikací v MICROSOFT Entra ID a přiřaďte jednotlivým aplikacím samostatnou roli. Pak implementujte autorizační logiku, která bude používat správnou roli pro uživatele. Podrobné kroky přiřazení rolí najdete v tématu Přiřazení rolí Azure pomocí webu Azure Portal.

V kódu

  1. Nezapomeňte použít ID aplikace a identifikátor URI přesměrování vlastní aplikace Microsoft Entra pro id klienta a parametry RedirectUri v msAL.
  2. Nastavení informací o tenantovi:
    1. Pokud vaše aplikace podporuje jenom moji organizaci, nahraďte tuto hodnotu ID tenanta nebo názvem tenanta. Například contoso.microsoft.com.
    2. Pokud vaše aplikace podporuje účty v libovolném adresáři organizace, nahraďte tuto hodnotu organizací.
    3. Pokud vaše aplikace podporuje všechny uživatele účtu Microsoft, nahraďte tuto hodnotu hodnotou Common.
  3. V žádosti o token nastavte obor na https://sts.mixedreality.azure.com//.defaulthodnotu . Tento obor bude indikovat Microsoft Entra ID, že vaše aplikace požaduje token pro službu tokenů zabezpečení hybridní reality (STS).

Po dokončení těchto kroků by vaše aplikace měla být schopna získat z MSAL token Microsoft Entra. Tento token Microsoft Entra můžete nastavit jako authenticationToken token pro konfiguraci cloudové relace:

this.cloudSession.Configuration.AuthenticationToken = @"MyAuthenticationToken";

Ověřování služby Microsoft Entra

Pokud chcete nasadit aplikace, které používají Azure Spatial Anchors do produkčního prostředí, doporučujeme použít back-endovou službu, která zprostředkuje požadavky na ověřování. Tady je přehled tohoto procesu:

Diagram that provides an overview of authentication to Azure Spatial Anchors.

Předpokládá se, že vaše aplikace používá k ověření ve své back-endové službě vlastní mechanismus. (Například účet Microsoft, PlayFab, Facebook, Google ID nebo vlastní uživatelské jméno a heslo.) Po ověření uživatelů ve vaší back-endové službě může tato služba načíst token Microsoft Entra, vyměnit ho za přístupový token pro Azure Spatial Anchors a vrátit ho zpět do klientské aplikace.

Přístupový token Microsoft Entra se načte prostřednictvím knihovny MSAL. Postupujte podle kroků v rychlém startu registrace aplikace, mezi které patří:

Na webu Azure Portal

  1. Zaregistrujte aplikaci v Microsoft Entra ID:
    1. Na webu Azure Portal vyberte ID Microsoft Entra a pak vyberte Registrace aplikací.
    2. Vyberte Nová registrace.
    3. Zadejte název aplikace, vyberte jako typ aplikace webovou aplikaci nebo rozhraní API a zadejte adresu URL ověřování pro vaši službu. Vyberte Vytvořit.
  2. V aplikaci vyberte Nastavení a pak vyberte kartu Certifikáty a tajné kódy. Vytvořte nový tajný klíč klienta, vyberte dobu trvání a pak vyberte Přidat. Nezapomeňte uložit hodnotu tajného kódu. Budete ho muset zahrnout do kódu webové služby.
  3. Přiřaďte aplikaci nebo uživatele, kterým chcete udělit přístup k vašemu prostředku, roli ASA RBAC. Pokud chcete, aby uživatelé vaší aplikace měli různé role vůči účtu ASA, zaregistrujte více aplikací v MICROSOFT Entra ID a přiřaďte jednotlivým aplikacím samostatnou roli. Pak implementujte autorizační logiku, která bude používat správnou roli pro uživatele. Podrobné kroky přiřazení rolí najdete v tématu Přiřazení rolí Azure pomocí webu Azure Portal.

V kódu

Poznámka:

Ukázku služby , která je dostupná jako součást ukázkových aplikací Spatial Anchors, můžete použít.

  1. Nezapomeňte použít ID aplikace, tajný klíč aplikace a identifikátor URI přesměrování vaší vlastní aplikace Microsoft Entra jako ID klienta, tajný klíč a RedirectUri parametry msAL.
  2. Nastavte ID tenanta na vlastní ID tenanta Microsoft Entra v parametru autority v MSAL.
  3. V žádosti o token nastavte obor na https://sts.mixedreality.azure.com//.defaulthodnotu .

Po dokončení těchto kroků může vaše back-endová služba načíst token Microsoft Entra. Pak ho může vyměnit za token MR, který se vrátí zpět klientovi. Použití tokenu Microsoft Entra k načtení tokenu MR se provádí prostřednictvím volání REST. Tady je ukázkové volání:

GET https://sts.mixedreality.azure.com/Accounts/35d830cb-f062-4062-9792-d6316039df56/token HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1Ni<truncated>FL8Hq5aaOqZQnJr1koaQ
Host: sts.mixedreality.azure.com
Connection: Keep-Alive

HTTP/1.1 200 OK
Date: Sun, 24 Feb 2019 08:00:00 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 1153
Accept: application/json
MS-CV: 05JLqWeKFkWpbdY944yl7A.0
{"AccessToken":"eyJhbGciOiJSUzI1NiIsImtpZCI6IjI2MzYyMTk5ZTI2NjQxOGU4ZjE3MThlM2IyMThjZTIxIiwidHlwIjoiSldUIn0.eyJqdGkiOiJmMGFiNWIyMy0wMmUxLTQ1MTQtOWEzNC0xNzkzMTA1NTc4NzAiLCJjYWkiOiIzNWQ4MzBjYi1mMDYyLTQwNjItOTc5Mi1kNjMxNjAzOWRmNTYiLCJ0aWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJhaWQiOiIzNWQ4MzBjYi1mMDYyLTQwNjItOTc5Mi1kNjMxNjAzOWRmNTYiLCJhYW8iOi0xLCJhcHIiOiJlYXN0dXMyIiwicmlkIjoiL3N1YnNjcmlwdGlvbnMvNzIzOTdlN2EtNzA4NC00ODJhLTg3MzktNjM5Y2RmNTMxNTI0L3Jlc291cmNlR3JvdXBzL3NhbXBsZV9yZXNvdXJjZV9ncm91cC9wcm92aWRlcnMvTWljcm9zb2Z0Lk1peGVkUmVhbGl0eS9TcGF0aWFsQW5jaG9yc0FjY291bnRzL2RlbW9fYWNjb3VudCIsIm5iZiI6MTU0NDU0NzkwMywiZXhwIjoxNTQ0NjM0MzAzLCJpYXQiOjE1NDQ1NDc5MDMsImlzcyI6Imh0dHBzOi8vbXJjLWF1dGgtcHJvZC50cmFmZmljbWFuYWdlci5uZXQvIiwiYXVkIjoiaHR0cHM6Ly9tcmMtYW5jaG9yLXByb2QudHJhZmZpY21hbmFnZXIubmV0LyJ9.BFdyCX9UJj0i4W3OudmNUiuaGgVrlPasNM-5VqXdNAExD8acFJnHdvSf6uLiVvPiQwY1atYyPbOnLYhEbIcxNX-YAfZ-xyxCKYb3g_dbxU2w8nX3zDz_X3XqLL8Uha-rkapKbnNgxq4GjM-EBMCill2Svluf9crDmO-SmJbxqIaWzLmlUufQMWg_r8JG7RLseK6ntUDRyDgkF4ex515l2RWqQx7cw874raKgUO4qlx0cpBAB8cRtGHC-3fA7rZPM7UQQpm-BC3suXqRgROTzrKqfn_g-qTW4jAKBIXYG7iDefV2rGMRgem06YH_bDnpkgUa1UgJRRTckkBuLkO2FvA"}

Autorizační hlavička je naformátovaná takto: Bearer <Azure_AD_token>

Odpověď obsahuje token MR ve formátu prostého textu.

Tento token MR se pak vrátí klientovi. Klientská aplikace ji pak může nastavit jako přístupový token v konfiguraci cloudové relace:

this.cloudSession.Configuration.AccessToken = @"MyAccessToken";

Řízení přístupu na základě rolí Azure

Abyste mohli řídit úroveň přístupu udělenou aplikacím, službám nebo uživatelům Microsoft Entra vaší služby, můžete těmto předem existujícím rolím přiřadit podle potřeby účty Azure Spatial Anchors:

  • Vlastník účtu Spatial Anchors. Aplikace nebo uživatelé, kteří mají tuto roli, mohou vytvářet prostorové kotvy, dotazovat se na ně a odstraňovat je. Při ověřování účtu pomocí klíčů účtu se k ověřenému objektu zabezpečení přiřadí role Vlastník účtu Spatial Anchors.
  • Přispěvatel účtu Spatial Anchors Aplikace nebo uživatelé, kteří mají tuto roli, mohou vytvářet prostorové kotvy a dotazovat se na ně, ale nemůžou je odstranit.
  • Čtenář účtu Spatial Anchors Aplikace nebo uživatelé, kteří mají tuto roli, se můžou dotazovat pouze na prostorové ukotvení. Nemůžou vytvářet nové, odstraňovat stávající ani aktualizovat metadata. Tato role se obvykle používá pro aplikace, ve kterých někteří uživatelé spravují prostředí, ale jiné si můžou vzpomenout pouze na ukotvení, která byla dříve umístěna v prostředí.

Další kroky

Vytvořte svou první aplikaci pomocí Azure Spatial Anchors:

iOS