Защита приложения SaaS IoT с помощью платформы удостоверений МайкрософтSecure your IoT SaaS app with the Microsoft identity platform

Производители устройств IoT создают пользовательские приложения и службы, чтобы лучше обслуживать потребности своих клиентов в управлении устройствами.IoT device manufacturers are creating custom apps and services to better serve their customers’ device management needs. Разработчики, создавая ioT-приложения и службы, хотят обеспечить безопасный, беспрепятственный доступ к облачным устройствам и телеметрическим данным, отправляемым этими устройствами в облако.Developers building IoT apps and services want to provide secure, frictionless access to cloud-connected devices and the telemetry data sent by these devices to the cloud.

В этой статье мы объясняем, как разработчик может воспользоваться преимуществами Azure Active Directory и платформы идентификации Майкрософт для создания безопасного приложения SaaS.In this article we explain how a developer can take advantage of Azure Active Directory and the Microsoft identity platform to create a secure SaaS app. Мы рассмотрим основные способы и преимущества интеграции вашего приложения с Azure AD, а также два общих сценария клиентов, с которыми могут столкнуться разработчики IoT.We'll cover the basic how-tos and benefits of integrating your app with Azure AD , as well as two common customer scenarios IoT developers may encounter.

Интегрируясь с платформой идентификации Майкрософт и настраивая приложение на мультитенант,разработчики могут:By integrating with the Microsoft identity platform and configuring the app to be multi-tenant, developers can:

  • Обеспечить изоляцию ресурсов и данных клиентов.Ensure isolation of customer resources and data.
  • Включите контроль доступа, применяя организационные политики и условия в зависимости от времени, местоположения и многое другое.Enable access control by enforcing organizational policies and conditions based on time, location, and more.
  • Поддержка аудита и отчетности о доступе.Support auditing and reporting of access.
  • Разрешить пользователям войти в систему с существующими работой и социальными учетными записями, что, в свою очередь, позволяет один опыт вхождения, так что пользователи войти в один раз и имеют доступ к другим корпоративным ресурсам и приложениям без вхождения снова.Allow users to sign in with existing work and social accounts, which in turn allows a single sign-on experience so that users sign in once and are able to access other corporate resources and apps without signing in again.

Чтобы узнать больше о темах, охватываемых в этой статье, ознакомьтесь с домашней страницей платформы идентификации Майкрософт.To learn more about the topics covered in this article, check out the Microsoft identity platform homepage. Руководства по быстрому запуску помогут вам быстро настроить приложение для интеграции вашего приложения с нашей платформой.The quickstart guides there will help you get set up quickly to integrate your app with our platform.

Примечание

Пожалуйста, оставьте отзыв ы на документ ели вы нашли его полезным или нет!Please leave feedback on the document whether you found it helpful or not! Ваш вклад имеет значение, помогая нам создавать полезный контент.Your input matters in helping us to create useful content.

Пример сценарияExample scenario

Contoso является производителем IoT-готовых охладителей и насосов, которые они продают географически распределенным клиентам.Contoso is a manufacturer of IoT-ready chillers and pumps which they sell to geographically distributed customers. Разработчику Contoso поручено создать приложение, которое клиенты Contoso будут использовать для управления охладителями и насосами, которые будут подключены к облаку через Azure IoT.An in-house developer at Contoso is tasked with creating an app that customers of Contoso will use to manage the chillers and pumps that will be connected to the cloud via Azure IoT. Эти устройства будут отправлять данные телеметрии в Azure, который затем используется для прогностического обслуживания этих устройств.These devices will send telemetry data to Azure which is then used for predictive maintenance of these devices. IoT приложение будет продаваться вместе с промышленными охладителями и насосами для двух различных типов клиентов, представленных на следующих примерах:The IoT app will be sold along with the industrial chillers and pumps to two different types of customers represented by the following examples:

  • Fabrikam, крупный корпоративный клиент, у которого есть собственный клиент Azure AD, и он хотел бы, чтобы их сотрудники вошли в приложение, используя свои рабочие учетные записи Azure AD.Fabrikam, a large enterprise customer who has their own Azure AD tenant and would like their employees to sign into the app using their Azure AD work accounts. ИТ-отдел Fabrikam будет управлять доступом и применять организационные системы для доступа к приложению, а также устройствами/ресурсами IoT и данными, которыми управляет ioT приложение IoT.The Fabrikam IT department will manage access and apply organizational polices for access to the app as well as the IoT devices/resources and data the IoT app manages.

  • Woodgrove, клиент, у которого нет арендатора Azure AD и который хотел бы, чтобы пользователи ввезло с помощью существующих учетных записей электронной почты, таких как Gmail или учетные записи Майкрософт.Woodgrove, a customer who does not have an Azure AD tenant and would like users to log in using existing email accounts such Gmail or Microsoft accounts.

Создание мультитенантного приложенияBuilding a multi-tenant app

Разработчик Contoso создает приложение SaaS, и они хотят, чтобы сотрудники компаний, которые покупают приложение, чтобы иметь возможность войти в систему с существующими учетными данными и только данные доступа, которые принадлежат их собственной компании.Contoso's developer is building a SaaS app and they want the employees at the companies that purchase the app to be able to sign in with existing credentials and only access data that belongs to their own company. Это можно сделать, нанастройки приложения как мультитенантного в Azure AD.This can be done by configuring the app to be multi-tenant in Azure AD.

Мультитенантные приложения настроены для приема ввестов от нескольких атмонат Azure AD.Multi-tenant apps are configured to accept sign-ins from multiple Azure AD tenants. Пользователи любого арендатора Azure AD смогут войти в приложение после согласия на использование своей учетной записи в приложении.Users in any Azure AD tenant will be able to sign in to the application after consenting to use their account with the application. Для большинства разработчиков IoT конечные пользователи приложения будут принадлежать компании с учетной записью Azure AD.For most IoT developers, the end users of the app will belong to a company with an Azure AD account. Однако в случае, если у их компании нет арендатора Azure AD, возможности B2B, описанные в сценарии Woodgrove ниже, позволят пользователям войти в систему с использованием существующих учетных записей электронной почты, таких как Gmail или Microsoft.However, in the case that their company does not have an Azure AD tenant, the B2B capabilities described in the Woodgrove scenario below will allow users to sign in using existing email accounts such Gmail or Microsoft accounts.

Для того, чтобы шаг за шагом инструкции по созданию приложения мультитенант, проверьте, как: Войти в любой пользователь Azure Active Directory, используя шаблон мультитенантных приложений или этот пример мультитенантного приложения SaaS, доступного на GitHub.For step by step instructions on making an app multi-tenant, check out How to: Sign in any Azure Active Directory user using the multi-tenant application pattern or this example multi-tenant SaaS application available on GitHub. Основные процесс и преимущества интеграции с Azure AD и создания мультитенантного приложения IoT включены здесь.The basic process and benefits of integrating with Azure AD and making your IoT app multi-tenant are included here.

Предварительные требованияPrerequisites

Для начала разработчик приложения должен принадлежать арендатору Azure AD.To get started, the developer of the app must belong to an Azure AD tenant. Если у них нет существующего арендатора, они могут создать нового арендатора Azure AD.If they don't have an existing tenant, they can create a new Azure AD tenant. Кроме того, разработчику необходимо получить разрешение на регистрацию приложения в своем арендаторе Azure AD.Additionally, the developer needs to have permission to register an app in their Azure AD tenant. Вы можете проверить, достаточно ли разрешений на портале Azure.You can check if you have sufficient permissions in the Azure portal.

Регистрация приложенияRegister the app

Первым шагом является регистрация приложения внутри собственного арендатора Azure AD.The first step is for the developer to register the app inside their own Azure AD tenant. Это установило идентификацию приложения и позволяет разработчику указать разрешения, необходимые для выполнения своих задач в любом данном арендаторе.This established an identity for the app, and allows the developer to specify the permissions it will need to perform its tasks in any given tenant. Это также точка, когда разработчик указывает, что это мульти-арендатор приложение.This is also the point when the developer specifies that it is a multi-tenant app.

При регистрации приложения в арендаторе создаются два объекта:When the app is registered, two objects are created in the tenant:

  • Объект приложения - живет в арендаторе, где приложение было зарегистрировано ("домашний" арендатор) и служит шаблоном для общих свойств и свойств по умолчанию.Application object - lives in the tenant where the app was registered (the "home" tenant) and serves as the template for common and default properties.

  • Основной объект службы - определяет политику доступа и разрешения для приложения в текущем арендаторе.Service principal object - defines the access policy and permissions for the application in the current tenant. В каждом арендаторе, используюемом это приложение, будет создан директор службы.A service principal will be created in each tenant that uses this application.

Прямые записи пользователей в общую конечную точкуDirect user sign-ins to the common endpoint

Для мультитенантных приложений запросы на регистрацию учетных записей https://login.microsoftonline.com/commonAAD должны быть отправлены в общую конечную точку:.For multi-tenant apps, sign-in requests for AAD accounts should be sent to the common endpoint: https://login.microsoftonline.com/common. Когда платформа идентификации Майкрософт получает запрос на общей конечную точку, она входит в состав пользователя и определяет, к какому арендатору принадлежит пользователь.When the Microsoft identity platform receives a request on the common endpoint, it signs the user in and identifies which tenant the user belongs to. Он отправляет эту информацию обратно в приложение, которое может затем определить ресурсы, к которым должен иметь доступ пользователь на основе членства клиента.It sends this information back to the app, which can then determine the resources this user should have access to based on tenant membership. Таким образом, разработчик может поддерживать разделение конфиденциальной информации между компаниями.In this way, the developer can maintaining separation of proprietary information between companies.

Примечание

Попытки входной системы гостевых пользователей должны быть направлены в конечную точку для арендатора (т.е. арендатора застройщика). https://login.microsoftonline.com/{TenantId_or_Name}Guest users' sign-in attempts must be directed to a tenant-specific endpoint (i.e. the developer's tenant) https://login.microsoftonline.com/{TenantId_or_Name}. Это необходимо, когда пользователи входят в социальные счета, и мы приведив пример этого в сценарии Woodgrove Bank ниже.This is required when users are signing in with social accounts, and we provide an example of this in the Woodgrove Bank scenario below.

Диаграмма, иллюстрирующая шаги выполнения пользователь, всопданный в приложение с несколькими арендаторами.

  1. Вход пользователя в приложениеUser logs in to app

  2. AD Azure определяет клиента пользователя и выдает токен с идентификатором клиентаAzure AD determines the user's tenant and issues token with tenant ID

  3. Приложение принимает токен, и пользователь получает доступ к ресурсам, специфичным для арендаторов (обратите внимание, что разработчик приложения должен обеспечить разделение ресурсов по идентификатору клиента)App accepts the token and user gets access to tenant-specific resources (note that the app developer must enforce the separation of resources by tenant ID)

Когда пользователь (или админ) впервые входит в приложение с несколькими арендаторами, приложение должно запросить согласие на регистрацию в каталоге пользователя и данные каталога доступа, которые ему необходимо запустить.When a user (or admin) logs in to a multi-tenant application for the first time, the application must ask for consent to be registered in the user's directory and access directory data it needs to run. Например, если приложению необходимо прочитать информацию о календаре пользователя из Office 365, этот пользователь должен дать согласие на этот доступ, прежде чем приложение сможет это сделать.For example, if an application needs to read calendar information about a user from Office 365, that user is required to consent to this access before the app can do so.

Разработчики могут использовать платформу согласия Azure AD для получения согласия с помощью интерактивных запросов в рамках первого входа в систему.Developers can use the Azure AD consent framework to obtain consent via interactive prompts as part of the first time log in experience. Запросы гарантируют, что пользователи и администраторы точно знают, к каким данным приложение запрашивает доступ, и они могут быть уверены, что оно ведет себя не со злыми намерениями.The prompts ensure that users and administrators know exactly what data the app is requesting access to, and they can be confident that it isn't behaving with malicious intent. Платформа согласия основана на OAuth 2.0 и различных его процедурах, таких как предоставление кода авторизации и учетных данных пользователя, с помощью общедоступных или конфиденциальных клиентов.The consent framework is built on OAuth 2.0 and its various flows, such as authorization code grant and client credentials grant, using public or confidential clients. Пример процесса согласия доступен в рамочном документе о согласии Azure Active Directory, а также в этом примере мультитенантного приложения.An example of the consent process is available in the Azure Active Directory consent framework document, as well as this example multi-tenant application.

Как только пользователь соглашается, в арендаторе пользователя создается принцип службы, определяющий политику доступа и разрешения для этого приложения, и вход будет продолжен.Once the user consents, a service principal defining the access policy and permissions for this app is created in the user's tenant, and the sign-in will continue.

Диаграмма, иллюстрирующая процесс получения согласия пользователя.

  1. Приложение отправляет запрос на входе в общий для пользователяApp sends sign-in request to common for the user

  2. Пользователь отвечает на запрос о входном учете и дает любое необходимое согласие на приложениеUser responds to sign-in prompt and provides any required consent to app

  3. Azure AD создает основной сервис (SP) в клиенте-арендатореAzure AD creates service principal (SP) in customer's tenant

Кроме того, разработчик может принять решение на основе требований приложения, если ему требуется согласие пользователя (для доступа к данным, связанным с ним) или админа (чтобы обеспечить доступ ко всей организации данных), хотя некоторые арендаторы могут потребовать одобрения админа для любого нового приложения.In addition, the developer can decide based on the requirements of the app if it needs consent from the user (to access data related to them) or an admin (to allow access to the entire organization's data), although some tenants may require admin approval for any new application. Это более подробно описано в вопросе «Как: Подпишитесь на любой пользователь Azure Active Directory с помощью шаблона мультитенантных приложений.This is covered in more depth in How to: Sign in any Azure Active Directory user using the multi-tenant application pattern.

Реализация авторизации с ролями приложений Azure ADImplement authorization with Azure AD App Roles

Помимо проверки подлинности, разработчик может обеспечить авторизацию в приложении.In addition to authentication, the developer can enforce authorization within the app. Авторизация используется для обеспечения доступа пользователя к приложению, им предоставляются надлежащие привилегии для доступа к данным и ресурсам.Authorization is used to ensure once a user has access to an app, they are given proper privileges to access data and resources.

Правила авторизации могут быть приведены в исполнение с помощью требований доступа на основе ролей (RBAC) и требований о роли.Authorization rules can be enforced with Role-Based Access Control (RBAC) and Role Claims. При использовании RBAC админ-арендатор предоставляет разрешения на использование или просмотр ресурсов на основе ролей, а не отдельным пользователям или группам.When using RBAC, a tenant admin grants permissions to use or view resources based on roles, and not to individual users or groups.

Разработчик может добавить роли приложения в приложение и объявить их в манифесте приложения.The developer can add app roles to an app and declare them in the app's manifest. Когда пользователь входит в приложение, Azure AD выдает претензию для каждой роли, которую пользователь получил, индивидуально и от их членства в группе.When a user signs into the app, Azure AD emits a claim for each role that the user has been granted, individually and from their group membership. Приложение может использовать эти претензии роли с идентификатором клиента утверждают, что сделать проверку доступа.The app can use these role claims with the tenant ID claim to do an access check. Это позволит пользователю выполнять действие на определенном ресурсе, связанном с арендатором Azure AD.This will determine whether a user is allowed to perform an action on a specific resource associated with an Azure AD tenant.

Для включения ролей приложений приложению не требуется никаких дополнительных разрешений Active Directory, кроме чтения профиля пользователя.An app does not need any extra Active Directory permissions, other than reading the user's profile, to enable app roles. Менеджеры назначения ролей в каждом арендаторе могут затем назначать эти заранее определенные роли приложений пользователям и управлять тем, кто имеет доступ к какому ресурсу, следуя потребностям организации.Role assignment managers within each tenant can then assign these pre-defined app roles to users and manage who has access to which resource following their organization's needs.

Условный доступ к ресурсам IoTConditional access to IoT resources

Если у клиентов есть дополнительные требования к ограничению доступа к ресурсам IoT в зависимости от определенных условий, они могут использовать Azure AD Conditional Access в своих собственных клиентах.If customers have additional requirements to restrict access to IoT resources based on specific conditions, they can use Azure AD Conditional Access in their own tenants. Общие сигналы, которые условный доступ может принимать во внимание, включают:Common signals that Conditional Access can take into account include:

  • Пользователь или членство в группеUser or group membership
  • Информация о местоположении IPIP location information
  • Устройства, отмеченные как совместимыеDevices marked as compliant
  • Конкретные приложенияSpecific applications

Получите приложение для клиентовGet the app to customers

Наконец, разработчик может захотеть предоставить клиентам сайт электронной коммерции для покупки лицензий на приложение.Finally, the developer may want to provide an e-commerce site for customers to purchase licenses for the app. Этот сайт электронной коммерции отделен от самого приложения IoT.This e-commerce site is separate from the IoT app itself. Образец рабочей нагрузки, описывающей, как построить передний конец электронной коммерции, доступен в Центре архитектуры ссылок Azure.A sample workload describing how to build an e-commerce front-end is available on the Azure Reference Architecture Center.

Чтобы повысить прооткрываемость и принятие приложения IoT, разработчик должен опубликовать приложение в галерее Azure AD App.To increase the discoverability and adoption of your IoT app, the developer should publish the app to the Azure AD App gallery. Коллекция приложений Azure AD представляет собой хранилище приложений Azure Marketplace, в котором публикуются все соединители приложений для единого входа и подготовки пользователей.The Azure AD application gallery is in the Azure Marketplace app store, where all application connectors are published for single sign-on and user provisioning. ИТ-администраторы могут добавлять разъемы из галереи приложения, а затем настраивать и использовать разъемы для одного входного и подготовки для дополнительного удобства для конечного пользователя приложения.IT administrators can add connectors from the app gallery, and then configure and use the connectors for single sign-on and provisioning for additional convenience for the end user of the app.

Пример сценариев использования приложенияExample app usage scenarios

В первой части этого документа мы объяснили основные конфигурации, необходимые разработчику для настройки мультитенантного приложения.In the first part of this document we explained the basic configurations necessary for a developer to set up a multi-tenant app. Теперь давайте рассмотрим несколько сценариев клиентов, чтобы объяснить, как процесс проверки подлинности будет работать для приложения IoT.Now, let's explore a couple customer scenarios to explain how the authentication process will work for the IoT app. Следующие два клиента, Fabrikam, Inc. и Woodgrove Bank, будут входить в приложение нашего разработчика IoT по-разному.The following two customers, Fabrikam, Inc. and Woodgrove Bank, will sign in to our IoT developer's app in different ways. Мы просмотрим каждый сценарий и обсудим, как Azure AD помог разработчику удовлетворить потребности клиентов.We'll go through each scenario and discuss how Azure AD helped the developer meet the customers' needs.

Сценарий 1: Клиент с существующим арендатором Azure ADScenario 1: Customer with an existing Azure AD tenant

Fabrikam, Inc. является крупным корпоративным клиентом разработчика и имеет собственного арендатора Azure AD.Fabrikam, Inc. is a large enterprise customer of the developer and has its own Azure AD tenant. Fabrikam, Inc. хотела бы, чтобы ее сотрудники вошли в приложение IoT, используя свои существующие рабочие учетные записи Azure AD.Fabrikam, Inc. would like its employees to sign into the IoT app using their existing Azure AD work accounts. Кроме того, ИТ-отделы компании будут управлять доступом и применять организационные политики для доступа к приложению, устройствам IoT и данным, управляемым приложением IoT.In addition, the company's IT departments will manage access and apply organizational policies for access to the app, the IoT devices, and data the IoT app manages. Глобальный админ Fabrikam, Inc. рассмотрит разрешения, требуемые любым приложением, прежде чем разрешить его арендатору.Fabrikam, Inc.'s global admin will review the permissions required by any app before allowing it in the tenant.

Приложение разработчика поддерживает следующие требования следующим образом:The developer's app supports these requirements as follows:

Подписание в Fabrikam, Inc пользователей с их существующими учетными записями работыSigning in Fabrikam, Inc.'s users with their existing work accounts

Поскольку приложение зарегистрировано как мультитенантное приложение, пользователи Fabrikam, Inc. могут войти в приложение с помощью своих учетных данных Azure AD.Since the app has been registered as a multi-tenant app, Fabrikam, Inc. users can sign into the app with their Azure AD work credentials. Приложение должно отправить запрос на входе с этими учетными данными в общую конечную точку. https://login.microsoftonline.com/commonThe app must send the sign-in request with these credentials to the common endpoint, https://login.microsoftonline.com/common. Платформа идентификации Майкрософт обнаружит, от какого арендатора находится пользователь, и отправит маркер ответа, содержащий информацию о том, к какому арендатору принадлежит пользователь.The Microsoft identity platform will discover which tenant the user is from and send a sign-in response token that contains information on which tenant the user belongs to. Разработчик может использовать эту информацию, чтобы определить, к каким ресурсам пользователь может получить доступ.The developer can use this information to determine which resources the user can access.

Администраторы-арендаторы Fabrikam, Inc. могут настроить настройки корпоративного приложения таким образом, чтобы для того, чтобы пользователь в арендаторе мог зарегистрироваться или дать согласие на новое приложение.Fabrikam, Inc.'s tenant administrators can set the enterprise app settings so that administrator approval is required before a user in the tenant can register or provide consent to a new app. Это позволяет администраторам контролировать, какие приложения запускаются в их арендаторе.This allows the administrators to control which apps are being run in their tenant. Если пользователь заблокирован от регистрации или вступления в систему, он увидит общее сообщение об ошибке, в которое говорится, что он не имеет доступа к приложению, и он должен обратиться за помощью к своему помощнику.If a user is blocked from registering or signing in, they'll see a generic error message that says they're unauthorized to access the app and they should ask their admin for help.

Кроме того, эти приложения могут настроить клиента, требуя согласия от админа на определенные разрешения (например, возможность записывать данные арендатору Azure AD) независимо от того, могут ли обычные пользователи зарегистрироваться или дать согласие на новые приложения.In addition, the admins can set up the tenant to require admin consent for certain permissions (e.g. the ability to write data to your Azure AD tenant) regardless of whether regular users can register or consent to new apps.

Совет

Новый рабочий процесс согласия админа предоставляет админинам безопасного доступа к приложениям, требующим одобрения админ, позволяя им отключить способность своего конечномго пользователя дать согласие.The new admin consent workflow gives tenant admins a secure way to grant access to applications that require admin approval while allowing them to disable their end-user’s ability to consent. Когда пользователь пытается получить доступ к приложению, но не может дать согласие, он может использовать диалоговое окно с сообщением об ошибке для отправки запроса на утверждение админ.When a user tries to access an app but is unable to provide consent, they can use the dialog box with the error message to send a request for admin approval. Преимущества рабочего процесса согласия админа включают в себя следующие:Benefits of the admin consent workflow include the following:

  • Помогает адм-аналитикам управлять доступом к организационным данным и регулировать корпоративные приложения в рамках своей организации.Helps admins manage access to organizational data and regulate the enterprise apps within their organization.
  • Предоставляет администраторам повышенную видимость того, к чему пользователи приложения нуждаются в доступе.Gives administrators increased visibility into what app users need access to.

Новый рабочий процесс дает всем конечным пользователям возможность запрашивать доступ к приложениям, к которым они ранее не могли получить доступ из-за отсутствия разрешений.The new workflow gives all end-users the ability to request access to apps that they were previously unable to access because of a lack of permissions. Запрос отправляется по электронной почте адм-серверам, которые были назначены рецензентами.The request is sent via email to admins who have been designated as reviewers. Рецензент действует на запрос, и пользователь уведомляется об действии.A reviewer acts on the request, and the user is notified of the action.

Сценарий 2: Клиент без арендатора Azure ADScenario 2: Customer without Azure AD tenant

Большинство клиентов для разработчиков приложений IoT, скорее всего, будут более крупными компаниями, у которых есть собственные арендаторы Azure AD.Most customers for IoT app developers will likely be larger companies that have their own Azure AD tenants. Однако в случае, если есть клиенты, которые хотят использовать приложение и не имеют Azure AD, они все равно могут использовать приложение, воспользовавшись функциями, доступными с Azure AD B2B, как описано в этом сценарии.However, in the case that there are customers who want to use the app and do not have Azure AD, they can still use the app by taking advantage of features available with Azure AD B2B as described in this scenario.

Woodgrove Bank является еще одной компанией, использующей приложение разработчика.Woodgrove Bank is another company using the developer's app. Woodgrove Bank не имеет арендатора Azure AD и хотел бы, чтобы его сотрудники высывались с существующими учетными записями электронной почты, такими как Gmail или учетные записи Майкрософт.Woodgrove Bank does not have an Azure AD tenant and would like its employees to log in with existing email accounts such Gmail or Microsoft accounts. Как и в случае с другими клиентами, необходимо поддерживать изоляцию пользователей и ресурсов Woodgrove Bank от других клиентов.As with other customers, isolation of Woodgrove Bank's users and resources from other customers must be maintained. Кроме того, разработчик хотел бы, чтобы весь доступ к приложению можно было проверить и сообщить о.In addition, the developer would like to ensure all access to the app can be audited and reported on.

Для этого разработчик и ИТ-аналитики могут использовать совместное сотрудничество Azure AD B2B (бизнес-бизнес),добавляя пользователей Woodgrove Bank в качестве гостей в домашнем арендаторе приложения.To enable this, the developer and IT Admins can use Azure AD B2B (business-to-business) collaboration, adding Woodgrove Bank's users as guests in the app's home tenant. Azure AD B2B будет выполнять бизнес-требования следующим образом.Azure AD B2B will fulfill the business requirements as follows.

Добавление гостевых пользователей к арендаторуAdding guest users to a tenant

Разработчик может позволить гостям войти в систему с существующими учетными записями электронной почты, используя процесс приглашения и выкупа, который включает в себя отправку либо прямой ссылки или электронной почты гостю.The developer can enable guests to log in with existing email accounts using an invitation and redemption process that involves sending either a direct link or an email to the guest. Этот процесс можно настроить с помощью бизнес-аДИ Azure AD.The process can be customized using Azure AD business-to-business APIs.

Разработчик должен будет решить, в каком арендаторе они хотят сохранить учетные записи гостевых пользователей.The developer will need to decide which tenant they want to keep the guest user accounts in. Эти гостевые пользователи будут отображаться в каталоге, так что если это будет общий сценарий для приложения разработчик и администраторы компании могут решить, что лучше создать нового арендатора отдельно от корпоративного арендатора компании, в котором зарегистрировать приложение так, что учетные записи гостевого пользователя отслеживаются там, а не в корпоративном арендаторе компании.These guest users will show up in the directory, so if this will be a common scenario for the app the developer and company administrators may decide it is best to create a new tenant separate from the company's corporate tenant in which to register the app so that the guest user accounts are tracked there and not in the company's corporate tenant.

Проверка подлинности гостевых пользователейAuthenticating guest users

Для включения в систему гостевой системы разработчик должен убедиться, что попытки входной системы гостевых https://login.microsoftonline.com/{TenantId_or_Name}пользователей направляются в конечную точку конкретного клиента (т.е. арендатора застройщика).To enable guest sign-ins, the developer must ensure that guest users' sign-in attempts are directed to the tenant-specific endpoint (i.e. the developer's tenant) https://login.microsoftonline.com/{TenantId_or_Name}. Обратите внимание, что это отличается от точки, используемой для пользователей с существующими учетными записями Azure AD, поэтому может потребовать от разработчика реализовать отдельную страницу ввне специально для гостей.Note that this differs from the endpoint used for users with existing Azure AD accounts, so may require the developer to implement a separate sign-in page specifically for guests.

Существует несколько вариантов проверки подлинности гостей, желающих использовать учетные записи AD, не связанные с Azure, в приложении:There are several options for authenticating guests who wish to use non-Azure AD accounts with your app:

ИзоляцияIsolation

Разработчик может создать группу безопасности в своем доме арендатора, который будет выступать в качестве границы изоляции для пользователей Woodgrove Bank и их IoT устройств.The developer can create a security group in their home tenant that will act as the isolation boundary for Woodgrove Bank's users and their IoT devices. Разработчик или ИТ-аналитик в арендаторе разработчика может назначить сотрудника Woodgrove Bank владельцем группы безопасности, чтобы они могли контролировать членство в группе безопасности.The developer or IT Admin in the developer's tenant can choose to designate a Woodgrove Bank employee as the owner of the security group so that they can control security group membership. Приложение разработчика будет учитывать членство в группе гостевых пользователей при принятии решений по контролю доступа.The developer's app will factor in guest users' group memberships when making access control decisions.

Кроме того, владелец группы безопасности Woodgrove может настроить политики доступа на групповом уровне, которые будут контролировать, как члены группы могут получить доступ к приложению для обеспечения соблюдения политики компании.In addition, the Woodgrove security group owner can set group-level access policies that will control how the group members can access the app in order to enforce company policies.

Примечание

В зависимости от бизнес-логики, требуемой вашим приложением, владение и членство группы безопасности могут управляться либо менеджером по работе с оператором, который является сотрудником компании разработчика, либо гостем Woodgrove, назначенным владельцем группы.Depending on the business logic required by your app, security group ownership and membership can be managed by either an account manager who is an employee of the developer's company or by a Woodgrove guest user who is assigned as owner of the group. Чтобы узнать больше о функциональности группы безопасности Azure AD, см.To learn more about Azure AD security group functionality, see Manage app and resource access using Azure Active Directory groups.

Диаграмма, иллюстрирующая изоляцию гостей в арендаторе с группами безопасности.

Параметры выполненияRuntime
  1. Пользователь входит в приложение с помощью целевой конечной точки клиента.The user signs into the app using the targeted tenant endpoint.

  2. Azure AD выдает токен с идентификатором клиента и требованиями членства в группе.Azure AD issues a token with tenant ID and group membership claims.

  3. Приложение принимает токен, и пользователь получает доступ к ресурсам группы безопасности.The app accepts the token and user gets access to security group-specific resources.

ЗаключениеConclusion

Это был обзор того, как использовать Azure AD для защиты приложения, уделяя особое внимание общим сценариям приложений IoT.This has been an overview of how to use Azure AD to secure your application, focusing on common IoT app scenarios. Ссылки ниже предоставляют более подробную информацию по темам, обсуждаемым в настоящем документе.The links below provide more information on the topics discussed in this document.

Примечание

Пожалуйста, оставьте отзыв ы на документ ели вы нашли его полезным или нет!Please leave feedback on the document whether you found it helpful or not! Ваш вклад имеет значение, помогая нам создавать полезный контент.Your input matters in helping us to create useful content.

Другие ресурсыOther resources