Единый вход (создание облачных приложений в реальном мире с помощью Azure)Single Sign-On (Building Real-World Cloud Apps with Azure)

Майк Уоссон, Рик Андерсон (, том Dykstra)by Mike Wasson, Rick Anderson, Tom Dykstra

Скачивание решения ИТ-проекта или Загрузка электронной книгиDownload Fix It Project or Download E-book

Создание реальных облачных приложений с помощью электронной книги Azure основано на презентации, разработанной Скотт Гатри (.The Building Real World Cloud Apps with Azure e-book is based on a presentation developed by Scott Guthrie. В нем объясняются 13 шаблонов и методик, которые могут помочь в успешной разработке веб-приложений для облака.It explains 13 patterns and practices that can help you be successful developing web apps for the cloud. Сведения о электронной книге см. в первой главе.For information about the e-book, see the first chapter.

При разработке облачного приложения существует множество проблем безопасности, но в этой серии мы рассмотрим только один вход.There are many security issues to think about when you're developing a cloud app, but for this series we'll focus on just one: single sign-on. Вопрос часто спрашивают: «я в основном создаю приложения для сотрудников моей компании; как разместить эти приложения в облаке и по-прежнему позволить им использовать ту же модель безопасности, которую мои сотрудники узнают и используете в локальной среде, когда они работают с приложениями, размещенными в брандмауэре?A question people often ask is this: "I'm primarily building apps for the employees of my company; how do I host these apps in the cloud and still enable them to use the same security model that my employees know and use in the on-premises environment when they're running apps that are hosted inside the firewall?" Один из способов включения этого сценария называется Azure Active Directory (Azure AD).One of the ways we enable this scenario is called Azure Active Directory (Azure AD). Azure AD позволяет делать корпоративные бизнес-приложения, доступные через Интернет, а также предоставлять доступ к этим приложениям для бизнес-партнеров.Azure AD enables you to make enterprise line-of-business (LOB) apps available over the Internet, and it enables you to make these apps available to business partners as well.

Введение в Azure ADIntroduction to Azure AD

Azure AD предоставляет Active Directory в облаке.Azure AD provides Active Directory in the cloud. К основным функциям относятся следующие.Key features include the following:

  • Она интегрируется с локальными Active Directory.It integrates with on-premises Active Directory.
  • Он обеспечивает единый вход в приложения.It enables single sign-on with your apps.
  • Он поддерживает открытые стандарты, такие как SAML, WS-подачаи OAuth 2,0.It supports open standards such as SAML, WS-Fed, and OAuth 2.0.
  • Он поддерживает корпоративный график REST API.It supports Enterprise Graph REST API.

Предположим, что у вас есть локальная среда Windows Server Active Directory, с помощью которой сотрудники смогут входить в приложения интрасети:Suppose you have an on-premises Windows Server Active Directory environment that you use to enable employees to sign on to Intranet apps:

Что позволяет Azure AD создать каталог в облаке.What Azure AD enables you to do is create a directory in the cloud. Это бесплатная функция, которую можно легко настроить.It's a free feature and easy to set up.

Оно может быть полностью независимым от локального Active Directory; Вы можете поместить в него всех пользователей и проверить их подлинность в приложениях Интернета.It can be entirely independent from your on-premises Active Directory; you can put anyone you want in it and authenticate them in Internet apps.

Microsoft Azure Active Directory

Вы также можете интегрировать его с локальной службой AD.Or you can integrate it with your on-premises AD.

Интеграция AD и WAAD

Теперь все сотрудники, которые могут проходить проверку подлинности в локальной среде, также могут пройти проверку подлинности через Интернет — без необходимости открывать брандмауэр или развертывать новые серверы в центре обработки данных.Now all the employees who can authenticate on-premises can also authenticate over the Internet – without you having to open up a firewall or deploy any new servers in your data center. Вы можете продолжить использовать всю имеющуюся среду Active Directory, которую вы узнаете и используете сегодня, чтобы предоставить внутренним приложениям возможность единого входа.You can continue to leverage all the existing Active Directory environment that you know and use today to give your internal apps single-sign on capability.

После создания подключения между AD и Azure AD можно также включить веб-приложения и мобильные устройства для проверки подлинности сотрудников в облаке. Кроме того, вы можете включить сторонние приложения, такие как Office 365, SalesForce.com или Google Apps, чтобы принять ваши учетные данные сотрудников.Once you've made this connection between AD and Azure AD, you can also enable your web apps and your mobile devices to authenticate your employees in the cloud, and you can enable third-party apps, such as Office 365, SalesForce.com, or Google apps, to accept your employees' credentials. Если вы используете Office 365, вы уже настроили Azure AD, так как Office 365 использует Azure AD для проверки подлинности и авторизации.If you're using Office 365, you're already set up with Azure AD because Office 365 uses Azure AD for authentication and authorization.

сторонние приложения

Преимуществом этого подхода является то, что каждый раз, когда ваша организация добавляет или удаляет пользователя или изменяет пароль, вы используете тот же процесс, который используется в локальной среде в настоящее время.The beauty of this approach is that any time your organization adds or deletes a user, or a user changes a password, you use the same process that you use today in your on-premises environment. Все локальные изменения AD автоматически распространяются в облачную среду.All of your on-premises AD changes are automatically propagated to the cloud environment.

Если ваша компания использует или переходит на Office 365, хорошая новость заключается в том, что Azure AD настроен автоматически, так как Office 365 использует Azure AD для проверки подлинности.If your company is using or moving to Office 365, the good news is that you'll have Azure AD set up automatically because Office 365 uses Azure AD for authentication. Поэтому вы можете легко использовать в собственных приложениях ту же проверку подлинности, которую использует Office 365.So you can easily use in your own apps the same authentication that Office 365 uses.

Настройка клиента Azure ADSet up an Azure AD tenant

Каталог Azure AD называется клиентомAzure AD, и Настройка клиента довольно проста.an Azure AD directory is called an Azure AD tenant, and setting up a tenant is pretty easy. Мы покажем, как это делается в портал управления Azure, чтобы продемонстрировать основные понятия, но, конечно же, с другими функциями портала, можно также использовать скрипт или API управления.We'll show you how it's done in the Azure Management Portal in order to illustrate the concepts, but of course like the other portal functions you can also do it by using a script or management API.

На портале управления перейдите на вкладку Active Directory.In the management portal click the Active Directory tab.

WAAD на портале

Вы автоматически используете один клиент Azure AD для своей учетной записи Azure, и вы можете нажать кнопку Добавить в нижней части страницы, чтобы создать дополнительные каталоги.You automatically have one Azure AD tenant for your Azure account, and you can click the Add button at the bottom of the page to create additional directories. Например, вам может потребоваться одна из них для тестовой среды, а другая — для рабочей.You might want one for a test environment and one for production, for example. Подумайте о том, что вы назначите имя нового каталога.Think carefully about what you name a new directory. Если вы используете имя каталога, а затем снова используете его имя для одного из пользователей, это может привести к путанице.If you use your name for the directory and then you use your name again for one of the users, that can be confusing.

Добавление каталога

Портал полностью поддерживает создание, удаление пользователей и управление ими в этой среде.The portal has full support for creating, deleting, and managing users within this environment. Например, чтобы добавить пользователя, перейдите на вкладку Пользователи и нажмите кнопку Добавить пользователя .For example, to add a user go to the Users tab and click the Add User button.

Кнопка "Добавить пользователя"

Диалоговое окно добавления пользователя

Можно создать нового пользователя, который существует только в этом каталоге, или зарегистрировать учетную запись Майкрософт в качестве пользователя в этом каталоге или зарегистрировать пользователя из другого каталога Azure AD в качестве пользователя в этом каталоге.You can create a new user who exists only in this directory, or you can register a Microsoft Account as a user in this directory, or register or a user from another Azure AD directory as a user in this directory. (В реальном каталоге домен по умолчанию будет ContosoTest.onmicrosoft.com.(In a real directory, the default domain would be ContosoTest.onmicrosoft.com. Вы также можете использовать собственный домен, например contoso.com.)You can also use a domain of your own choosing, like contoso.com.)

Пользовательские типы

Диалоговое окно добавления пользователя

Пользователю можно назначить роль.You can assign the user to a role.

Профиль пользователя

Учетная запись создается с временным паролем.And the account is created with a temporary password.

Временный пароль

Пользователи, которые вы создаете таким образом, могут немедленно войти в веб-приложения с помощью этого облачного каталога.The users you create this way can immediately log in to your web apps using this cloud directory.

Но что замечательно для корпоративного единого входа, на вкладке Интеграция каталогов :What's great for enterprise single sign-on, though, is the Directory Integration tab:

Вкладка "Интеграция каталогов"

Если включить интеграцию каталогов и скачать средство, вы можете синхронизировать этот облачный каталог с существующими локальными Active Directory, которые вы уже используете в вашей организации.If you enable directory integration, and download a tool, you can sync this cloud directory with your existing on-premises Active Directory that you're already using inside your organization. Затем все пользователи, хранящиеся в каталоге, будут отображаться в этом облачном каталоге.Then all of the users stored in your directory will show up in this cloud directory. Ваши облачные приложения теперь могут проходить проверку подлинности всех сотрудников, используя существующие учетные данные Active Directory.Your cloud apps can now authenticate all of your employees using their existing Active Directory credentials. И все это бесплатно — как средство синхронизации, так и Azure AD.And all this is free – both the sync tool and Azure AD itself.

Средство — это простой в использовании мастер, как видно из этих снимков экрана.The tool is a wizard that is easy to use, as you can see from these screen shots. Эти инструкции не являются полными, просто пример, демонстрирующий базовый процесс.These are not complete instructions, just an example showing you the basic process. Более подробные сведения о том, как это сделать, см. по ссылкам в разделе ресурсов в конце главы.For more detailed how-to-do-it information, see the links in the Resources section at the end of the chapter.

Мастер настройки средства синхронизации WAAD

Нажмите кнопку Далее, а затем введите учетные данные Azure Active Directory.Click Next, and then enter your Azure Active Directory credentials.

Мастер настройки средства синхронизации WAAD

Нажмите кнопку Далее, а затем введите локальные учетные данные AD.Click Next, and then enter your on-premises AD credentials.

Мастер настройки средства синхронизации WAAD

Нажмите кнопку Далее, а затем укажите, хотите ли вы сохранить хэш паролей AD в облаке.Click Next, and then indicate if you want to store a hash of your AD passwords in the cloud.

Мастер настройки средства синхронизации WAAD

Хэш пароля, который можно хранить в облаке, является односторонним. фактические пароли никогда не хранятся в Azure AD.The password hash that you can store in the cloud is a one-way hash; actual passwords are never stored in Azure AD. Если вы решили хранить хэши в облаке, необходимо использовать службы федерации Active Directory (AD FS) (ADFS).If you decide against storing hashes in the cloud, you'll have to use Active Directory Federation Services (ADFS). Существуют также другие факторы, которые следует учитывать при выборе того, следует ли использовать ADFS.There are also other factors to consider when choosing whether or not to use ADFS. Параметр ADFS требует выполнения нескольких дополнительных действий по настройке.The ADFS option requires a few additional configuration steps.

Если вы решили сохранить хэши в облаке, то все готово, и средство начнет синхронизацию каталогов при нажатии кнопки Далее.If you choose to store hashes in the cloud, you're done, and the tool starts synchronizing directories when you click Next.

Мастер настройки средства синхронизации WAAD

И через несколько минут вы уже сделали это.And in a few minutes you're done.

Мастер настройки средства синхронизации WAAD

Это необходимо выполнить только на одном контроллере домена в Организации, в Windows 2003 или более поздней версии.You only have to run this on one domain controller in the organization, on Windows 2003 or higher. И перезагружаться не нужно.And no need to reboot. Когда все будет готово, все пользователи будут находиться в облаке, и вы сможете выполнить единый вход из любого веб-или мобильного приложения с помощью SAML, OAuth или WS-подач.When you're done, all of your users are in the cloud and you can do single sign-on from any web or mobile application, using SAML, OAuth, or WS-Fed.

Иногда мы попросят о том, насколько безопасно это сделать — Корпорация Майкрософт использует ее для своих конфиденциальных бизнес-данных?Sometimes we get asked about how secure this is – does Microsoft use it for their own sensitive business data? И ответ — Да.And the answer is yes we do. Например, если вы переходите на внутренний сайт Microsoft SharePoint по адресу https://microsoft.sharepoint.com/, вам будет предложено войти в систему.For example, if you go to the internal Microsoft SharePoint site at https://microsoft.sharepoint.com/, you get prompted to log in.

Вход в Office 365

Корпорация Майкрософт включила ADFS, поэтому при вводе идентификатора Майкрософт вы будете перенаправлены на страницу входа в ADFS.Microsoft has enabled ADFS, so when you enter a Microsoft ID, you get redirected to an ADFS log-in page.

Вход в ADFS

После ввода учетных данных, хранящихся во внутренней учетной записи Microsoft AD, вы получите доступ к этому внутреннему приложению.And once you enter credentials stored in an internal Microsoft AD account, you have access to this internal application.

Сайт MS SharePoint

В основном мы используем сервер входа в систему Active Directory, так как мы уже настроили ADFS до того, как Azure AD стала доступной, но процесс входа проходит через каталог Azure AD в облаке.We're using an AD sign-in server mainly because we already had ADFS set up before Azure AD became available, but the log-in process is going through an Azure AD directory in the cloud. Мы поместили важные документы, систему управления версиями, файлы управления производительностью, отчеты о продажах и многое другое, в облаке и используем это точное же решение для их защиты.We put our important documents, source control, performance management files, sales reports, and more, in the cloud and are using this exact same solution to secure them.

Создание приложения ASP.NET, использующего Azure AD для единого входаCreate an ASP.NET app that uses Azure AD for single sign-on

Visual Studio позволяет очень легко создать приложение, использующее Azure AD для единого входа, как видно из нескольких снимков экрана.Visual Studio makes it really easy to create an app that uses Azure AD for single sign-on, as you can see from a few screen shots.

При создании нового приложения ASP.NET (MVC или Web Forms) по умолчанию используется метод проверки подлинности ASP.NET Identity.When you create a new ASP.NET application, either MVC or Web Forms, the default authentication method is ASP.NET Identity. Чтобы изменить это в Azure AD, нажмите кнопку изменить проверку подлинности .To change that to Azure AD, you click a Change Authentication button.

Изменить проверку подлинности

Выберите учетные записи организации, введите свое имя домена, а затем выберите единый вход.Select Organizational Accounts, enter your domain name, and then select Single Sign On.

Диалоговое окно настройки проверки подлинности

Можно также предоставить приложению разрешение на чтение или чтение и запись для данных каталога.You can also give the app read or read/write permission for directory data. В этом случае можно использовать REST API Azure Graph для поиска номера телефона пользователей, узнать, находятся ли они в офисе, когда они последний вошел в систему и т. д.If you do that, it can use the Azure Graph REST API to look up users' phone number, find out if they're in the office, when they last logged on, etc.

Это все, что нужно сделать — Visual Studio запрашивает учетные данные для администратора клиента Azure AD, а затем настраивает проект и клиент Azure AD для нового приложения.That's all you have to do - Visual Studio asks for the credentials for an administrator for your Azure AD tenant, and then it configures both your project and your Azure AD tenant for the new application.

При запуске проекта вы увидите страницу входа и можете войти в систему, используя учетные данные пользователя в каталоге Azure AD.When you run the project, you'll see a sign-in page, and you can sign in with credentials of a user in your Azure AD directory.

Вход в учетную запись Организации

Вход выполнен

При развертывании приложения в Azure все, что нужно сделать, — это установить флажок включить проверку подлинности организации , и снова Visual Studio позаботится о настройке.When you deploy the app to Azure, all you have to do is select an Enable Organizational Authentication check box, and once again Visual Studio takes care of all the configuration for you.

Веб-публикация

Эти снимки экрана посвящены полному пошаговому руководству, в котором показано, как создать приложение, использующее проверку подлинности Azure AD: Разработка приложений ASP.NET с помощью Azure Active Directory.These screen shots come from a complete step-by-step tutorial that shows how to build an app that uses Azure AD authentication: Developing ASP.NET Apps with Azure Active Directory.

СводкаSummary

В этой главе вы видели, что Azure Active Directory, Visual Studio и ASP.NET, упрощают настройку единого входа в Интернет-приложениях для пользователей вашей организации.In this chapter you saw that Azure Active Directory, Visual Studio, and ASP.NET, make it easy to set up single sign-on in Internet applications for your organization's users. Пользователи могут входить в Интернет приложения, используя те же учетные данные, которые используются для входа в систему с помощью Active Directory во внутренней сети.Your users can sign on in Internet apps using the same credentials they use to sign on using Active Directory in your internal network.

В следующей главе рассматриваются варианты хранения данных, доступные для облачного приложения.The next chapter looks at the data storage options available for a cloud app.

РесурсыResources

Для получения дополнительных сведений см. следующие ресурсы:For more information, see the following resources: