Практическое руководство. Перенос из службы контроля доступа AzureHow to: Migrate from the Azure Access Control Service

Служба контроля доступа Microsoft Azure (ACS), относящаяся к Azure Active Directory (Azure AD), прекратит функционирование 7 ноября 2018 г.Microsoft Azure Access Control Service (ACS), a service of Azure Active Directory (Azure AD), will be retired on November 7, 2018. До того времени приложения и службы, использующие службу контроля доступа, должны быть полностью перенесены в другой механизм проверки подлинности.Applications and services that currently use Access Control must be fully migrated to a different authentication mechanism by then. В этой статье описываются рекомендации, которые помогут текущим клиентам спланировать отказ от использования службы контроля доступа.This article describes recommendations for current customers, as you plan to deprecate your use of Access Control. Если в настоящее время вы не используете службу контроля доступа, не предпринимайте никаких действий.If you don't currently use Access Control, you don't need to take any action.

ОбзорOverview

Служба контроля доступа — это облачная служба проверки подлинности, которая предлагает простой способ проверки подлинности и авторизации пользователей для получения доступа к веб-приложениям и службам.Access Control is a cloud authentication service that offers an easy way to authenticate and authorize users for access to your web applications and services. Она позволяет реализовать множество функциональных возможностей проверки подлинности и авторизации в своем коде.It allows many features of authentication and authorization to be factored out of your code. Служба контроля доступа в основном используется разработчиками и архитекторами клиентов Microsoft .NET, веб-приложений ASP.NET и веб-служб Windows Communication Foundation (WCF).Access Control is primarily used by developers and architects of Microsoft .NET clients, ASP.NET web applications, and Windows Communication Foundation (WCF) web services.

Варианты использования службы контроля доступа (ACS) можно разделить на три основные категории:Use cases for Access Control can be broken down into three main categories:

  • Проверка подлинности в определенных облачных службах Майкрософт, включая служебную шину Azure и Dynamics CRM.Authenticating to certain Microsoft cloud services, including Azure Service Bus and Dynamics CRM. Клиентские приложения получают маркеры из службы контроля доступа, а затем проходят с их помощью проверку подлинности в этих службах и выполняют различные действия.Client applications obtain tokens from Access Control to authenticate to these services to perform various actions.
  • Добавление проверки подлинности в веб-приложения, как пользовательские, так и предварительно упакованные (например, SharePoint).Adding authentication to web applications, both custom and prepackaged (like SharePoint). Пассивная проверка подлинности службы контроля доступа позволяет входить в веб-приложения с помощью учетной записи Майкрософт (ранее Live ID) и с помощью учетных записей Google, Facebook, Yahoo, Azure AD и служб федерации Active Directory (AD FS).By using Access Control "passive" authentication, web applications can support sign-in with a Microsoft account (formerly Live ID), and with accounts from Google, Facebook, Yahoo, Azure AD, and Active Directory Federation Services (AD FS).
  • Защита пользовательских веб-служб с помощью маркеров, выданных службой контроля доступа.Securing custom web services with tokens issued by Access Control. Использование активной проверки подлинности гарантирует, что к веб-службам могут получить доступ только доверенные клиенты, прошедшие проверку подлинности в службе контроля доступом.By using "active" authentication, web services can ensure that they allow access only to known clients that have authenticated with Access Control.

В разделах ниже рассматривается каждый из этих вариантов использования и рекомендуемые стратегии переноса.Each of these use cases and their recommended migration strategies are discussed in the following sections.

Предупреждение

В большинстве случаев, чтобы перенести имеющиеся приложения и службы на более новые технологии, нужно значительно изменить код.In most cases, significant code changes are required to migrate existing apps and services to newer technologies. Мы советуем немедленно приступить к планированию и непосредственно к самому переносу, чтобы избежать возможных сбоев и простоев.We recommend that you immediately begin planning and executing your migration to avoid any potential outages or downtime.

Служба контроля доступа содержит следующие компоненты:Access Control has the following components:

  • Служба маркеров безопасности (STS), которая получает запросы на проверку подлинности и взамен выдает маркеры безопасности.A secure token service (STS), which receives authentication requests and issues security tokens in return.
  • Классический портал Azure, где можно создавать, удалять, включать и отключать пространства имен службы контроля доступа.The Azure classic portal, where you create, delete, and enable and disable Access Control namespaces.
  • Отдельный портал управления контролем доступа, где можно настроить пространства имен службы контроля доступа.A separate Access Control management portal, where you customize and configure Access Control namespaces.
  • Служба управления, позволяющая автоматизировать функции порталов.A management service, which you can use to automate the functions of the portals.
  • Модуль правил преобразования маркеров, с помощью которого можно определить сложную логику обработки выходного формата маркеров, выданных службой контроля доступа.A token transformation rule engine, which you can use to define complex logic to manipulate the output format of tokens that Access Control issues.

Чтобы использовать эти компоненты, необходимо создать одно или несколько пространств имен службы контроля доступа.To use these components, you must create one or more Access Control namespaces. Пространство имен — это выделенный экземпляр службы контроля доступа, с которым ваши службы и приложения обмениваются данными.A namespace is a dedicated instance of Access Control that your applications and services communicate with. Пространство имен изолировано от всех других клиентов службы контроля доступа.A namespace is isolated from all other Access Control customers. Они используют собственные пространства имен.Other Access Control customers use their own namespaces. Пространство имен в службе контроля доступом имеет выделенный URL-адрес, который выглядит следующим образом:A namespace in Access Control has a dedicated URL that looks like this:

https://<mynamespace>.accesscontrol.windows.net

По этому URL-адресу выполняется весь обмен данными с STS и операции управления.All communication with the STS and management operations are done at this URL. Для разных целей используются разные пути.You use different paths for different purposes. Чтобы определить, используют ли службы или приложения службу контроля доступа, отслеживайте трафик к https://<пространство имен>.accesscontrol.windows.net.To determine whether your applications or services use Access Control, monitor for any traffic to https://<namespace>.accesscontrol.windows.net. Любой трафик к этому URL-адресу обрабатывается с помощью службы контроля доступа, и его нужно прекратить.Any traffic to this URL is handled by Access Control, and needs to be discontinued.

Исключением является весь трафик к https://accounts.accesscontrol.windows.net.The exception to this is any traffic to https://accounts.accesscontrol.windows.net. Трафик к этому URL-адресу уже обрабатывается другой службой. Прекращение поддержки службы контроля доступа не влияет на него.Traffic to this URL is already handled by a different service and is not affected by the Access Control deprecation.

Дополнительные сведения о службе ACS см. в статье Служба Access Control Service 2.0.For more information about Access Control, see Access Control Service 2.0 (archived).

Определение затронутых приложенийFind out which of your apps will be impacted

Выполните описанные ниже действия, чтобы узнать, на какие приложения повлияет прекращение поддержки ACS.Follow the steps in this section to find out which of your apps will be impacted by ACS retirement.

Загрузка и установка ACS PowerShellDownload and install ACS PowerShell

  1. Перейдите в коллекцию PowerShell и загрузите Acs.Namespaces.Go to the PowerShell Gallery and download Acs.Namespaces.

  2. Установите модуль, выполнив следующую команду:Install the module by running

    Install-Module -Name Acs.Namespaces
    
  3. Получите список всех возможных команд, выполнив следующую команду:Get a list of all possible commands by running

    Get-Command -Module Acs.Namespaces
    

    Чтобы получить справку по конкретной команде, выполните следующую команду:To get help on a specific command, run:

     Get-Help [Command-Name] -Full
    

    где [Command-Name] — это имя команды ACS.where [Command-Name] is the name of the ACS command.

Получение списка пространств имен ACSList your ACS namespaces

  1. Подключитесь к ACS с помощью командлета Connect-AcsAccount.Connect to ACS using the Connect-AcsAccount cmdlet.

    Возможно, перед выполнением команд нужно будет выполнить Set-ExecutionPolicy -ExecutionPolicy Bypass, а также потребуются права администратора подписок.You may need to run Set-ExecutionPolicy -ExecutionPolicy Bypass before you can execute commands and be the admin of those subscriptions in order to execute the commands.

  2. Получите список доступных подписок Azure с помощью командлета Get-AcsSubscription.List your available Azure subscriptions using the Get-AcsSubscription cmdlet.

  3. Получите список пространств имен ACS с помощью командлета Get-AcsNamespace.List your ACS namespaces using the Get-AcsNamespace cmdlet.

Проверка влияния на приложенияCheck which applications will be impacted

  1. Используйте пространство имен из предыдущего этапа и перейдите к https://<namespace>.accesscontrol.windows.net.Use the namespace from the previous step and go to https://<namespace>.accesscontrol.windows.net

    Например, если одним из пространств имен является contoso-test, перейдите к https://contoso-test.accesscontrol.windows.net.For example, if one of the namespaces is contoso-test, go to https://contoso-test.accesscontrol.windows.net

  2. В разделе Отношения доверия выберите Приложения проверяющей стороны, чтобы просмотреть список приложений, которые затронет прекращение поддержки ACS.Under Trust relationships, select Relying party applications to see the list of apps that will be impacted by ACS retirement.

  3. Повторите шаги 1 и 2 для других пространств имен ACS.Repeat steps 1-2 for any other ACS namespace(s) that you have.

График прекращения использованияRetirement schedule

По состоянию на ноябрь 2017 г. все компоненты службы контроля доступа полностью поддерживаются и находятся в рабочем режиме.As of November 2017, all Access Control components are fully supported and operational. Единственным ограничением является невозможность создания новых пространств имен контроля доступа через классический портал Azure.The only restriction is that you can't create new Access Control namespaces via the Azure classic portal.

Вот график устаревания компонентов службы контроля доступа:Here's the schedule for deprecating Access Control components:

  • Ноябрь 2017 г. Прекращается использование интерфейса администрирования Azure AD на классическом портале Azure.November 2017: The Azure AD admin experience in the Azure classic portal is retired. На этом этапе управлять пространством имен службы контроля доступа можно по следующему новому выделенному URL-адресу: https://manage.windowsazure.com?restoreClassic=true.At this point, namespace management for Access Control is available at a new, dedicated URL: https://manage.windowsazure.com?restoreClassic=true. По этому URL-адресу можно просматривать существующие пространства имен, включать, отключать и удалять их.Use this URl to view your existing namespaces, enable and disable namespaces, and to delete namespaces, if you choose to.
  • 2 апреля 2018 г. Использование классического портала Azure полностью прекращено, то есть управление пространствами имен службы контроля доступа через любой URL-адрес больше недоступно.April 2, 2018: The Azure classic portal is completely retired, meaning Access Control namespace management is no longer available via any URL. Вы больше не сможете отключить, включить, удалить или перечислить пространства имен контроля доступа.At this point, you can't disable or enable, delete, or enumerate your Access Control namespaces. Однако портал управления службы контроля доступа будет полностью функционален и размещен по адресу https://\<namespace\>.accesscontrol.windows.net.However, the Access Control management portal will be fully functional and located at https://\<namespace\>.accesscontrol.windows.net. Все другие компоненты службы контроля доступом будут по-прежнему работать в обычном режиме.All other components of Access Control continue to operate normally.
  • 7 ноября 2018 г. Все компоненты службы контроля доступа окончательно отключены.November 7, 2018: All Access Control components are permanently shut down. К ним относится портал управления службы контроля доступа, служба управления, STS и модуль правил преобразования маркеров.This includes the Access Control management portal, the management service, STS, and the token transformation rule engine. На этом этапе все запросы, адресованные службе контроля доступа (размещенной по адресу <пространство имен>.accesscontrol.windows.net) будут завершаться с ошибкой.At this point, any requests sent to Access Control (located at <namespace>.accesscontrol.windows.net) fail. До этого времени вы должны перенести все имеющиеся приложения и службы на другие технологии.You should have migrated all existing apps and services to other technologies well before this time.

Примечание

Политика отключает пространства имен, которые не запрашивали токен в течении определенного периода времени.A policy disables namespaces that have not requested a token for a period of time. По состоянию на начало сентября 2018 года этот период времени составляет 14 дней бездействия, но в ближайшие недели он сократится до 7 дней бездействия.As of early September 2018, this period of time is currently at 14 days of inactivity, but this will be shortened to 7 days of inactivity in the coming weeks. Если у вас есть пространства имен контроль доступа, которые в настоящее время отключены, вы можете загрузить и установить ACS PowerShell для повторного их включения.If you have Access Control namespaces that are currently disabled, you can download and install ACS PowerShell to re-enable the namespace(s).

Стратегии миграцииMigration strategies

В следующих разделах приведены общие рекомендации по переходу с службы контроля доступа на другие технологии Майкрософт.The following sections describe high-level recommendations for migrating from Access Control to other Microsoft technologies.

Клиенты облачных служб МайкрософтClients of Microsoft cloud services

Каждая из облачных служб Майкрософт, которые принимают маркеры, выданные службой контроля доступа, поддерживает по крайней мере один альтернативный способ проверки подлинности.Each Microsoft cloud service that accepts tokens that are issued by Access Control now supports at least one alternate form of authentication. Правильный же механизм зависит от каждой службы,The correct authentication mechanism varies for each service. поэтому мы советуем воспользоваться рекомендациями из соответствующей документации.We recommend that you refer to the specific documentation for each service for official guidance. Для удобства ниже приведен каждый набор документации.For convenience, each set of documentation is provided here:

СлужбаService РуководствоGuidance
Служебная шина AzureAzure Service Bus Переход от службы контроля доступа Azure Active Directory к авторизации подписанного URL-адресаMigrate to shared access signatures
Ретрансляция служебной шины AzureAzure Service Bus Relay Переход от службы контроля доступа Azure Active Directory к авторизации подписанного URL-адресаMigrate to shared access signatures
Управляемый кэш AzureAzure Managed Cache Переход на кэш Redis для AzureMigrate to Azure Cache for Redis
Azure DataMarketAzure DataMarket Переход на API-интерфейсы Cognitive ServicesMigrate to the Cognitive Services APIs
Службы BizTalkBizTalk Services Переход на компонент Logic Apps службы приложений AzureMigrate to the Logic Apps feature of Azure App Service
Службы мультимедиа AzureAzure Media Services Azure Media Services announces support for Azure AD and deprecation of Access Control authentication (Команда разработчиков служб мультимедиа Azure анонсирует поддержку проверки подлинности AAD и объявление проверки подлинности ACS устаревшей)Migrate to Azure AD authentication
Azure BackupAzure Backup Вопросы об агенте службы Azure BackupUpgrade the Azure Backup agent

Клиенты SharePointSharePoint customers

Клиенты SharePoint 2013, 2016 и SharePoint Online используют службы ACS для проверки подлинности в облаке, в локальных и гибридных сценариях.SharePoint 2013, 2016, and SharePoint Online customers have long used ACS for authentication purposes in cloud, on premises, and hybrid scenarios. Прекращение использования службы контроля доступа повлияет на некоторые функции и варианты использования SharePoint.Some SharePoint features and use cases will be affected by ACS retirement, while others will not. В таблице ниже приведены краткие инструкции по миграции для некоторых из наиболее популярных компонентов SharePoint, использующих службу контроля доступа.The below table summarizes migration guidance for some of the most popular SharePoint feature that leverage ACS:

КомпонентFeature РуководствоGuidance
Аутентификация пользователей из Azure ADAuthenticating users from Azure AD Ранее в Azure AD не поддерживались маркеры SAML 1.1, необходимые SharePoint для аутентификации, и служба контроля доступа использовалась в качестве посредника, обеспечивающего совместимость SharePoint с форматами маркеров Azure AD.Previously, Azure AD did not support SAML 1.1 tokens required by SharePoint for authentication, and ACS was used as an intermediary that made SharePoint compatible with Azure AD token formats. Теперь можно подключить SharePoint напрямую к Azure AD с помощью Azure AD App коллекции SharePoint в локальном приложении.Now, you can connect SharePoint directly to Azure AD using Azure AD App Gallery SharePoint on premises app.
Проверка подлинности приложения & аутентификации "сервер-сервер" в локальной среде SharePointApp authentication & server-to-server authentication in SharePoint on premises Не зависит от прекращения использования службы контроля доступа. Какие-либо изменения не требуются.Not affected by ACS retirement; no changes necessary.
Авторизация с низким уровнем доверия для надстроек SharePoint (при размещении у поставщика и размещении в SharePoint)Low trust authorization for SharePoint add-ins (provider hosted and SharePoint hosted) Не зависит от прекращения использования службы контроля доступа. Какие-либо изменения не требуются.Not affected by ACS retirement; no changes necessary.
Гибридный поиск в облаке SharePointSharePoint cloud hybrid search Не зависит от прекращения использования службы контроля доступа. Какие-либо изменения не требуются.Not affected by ACS retirement; no changes necessary.

Веб-приложения, использующие пассивную проверку подлинностиWeb applications that use passive authentication

Для веб-приложений, использующих службу контроля доступа для проверки подлинности пользователей, эта служба предоставляет веб-разработчикам и архитекторам таких приложений следующие функции и возможности:For web applications that use Access Control for user authentication, Access Control provides the following features and capabilities to web application developers and architects:

  • Тесная интеграция с Windows Identity Foundation (WIF).Deep integration with Windows Identity Foundation (WIF).
  • Федерация с учетными записями Google, Facebook, Yahoo, Azure Active Directory, ADFS и учетными записями Майкрософт.Federation with Google, Facebook, Yahoo, Azure Active Directory, and AD FS accounts, and Microsoft accounts.
  • Поддержка следующих протоколов проверки подлинности: OAuth 2.0 (черновой вариант 13), WS-Trust и Web Services Federation (WS-Federation).Support for the following authentication protocols: OAuth 2.0 Draft 13, WS-Trust, and Web Services Federation (WS-Federation).
  • Поддержка маркеров следующих форматов: JSON Web Token (JWT), SAML 1.1, SAML 2.0 и SWT.Support for the following token formats: JSON Web Token (JWT), SAML 1.1, SAML 2.0, and Simple Web Token (SWT).
  • Возможность обнаружения домашней области, интегрированная в WIF, благодаря которой пользователи могут выбирать тип учетной записи для входа.A home realm discovery experience, integrated into WIF, that allows users to pick the type of account they use to sign in. Эта возможность реализована в веб-приложении и полностью настраиваемая.This experience is hosted by the web application and is fully customizable.
  • Преобразование маркеров, позволяющее настраивать утверждения, полученные веб-приложением из службы контроля доступа, в том числе:Token transformation that allows rich customization of the claims received by the web application from Access Control, including:
    • отправка утверждений от поставщиков удостоверений;Pass through claims from identity providers.
    • добавление дополнительных настраиваемых утверждений;Adding additional custom claims.
    • выдача утверждений при определенных условиях на основе простой логики If-Then.Simple if-then logic to issue claims under certain conditions.

К сожалению, ни одна служба не предлагает все соответствующие возможности.Unfortunately, there isn't one service that offers all of these equivalent capabilities. Следует оценить, какие возможности службы контроля доступа требуются, а затем выбрать одну из доступных служб: Azure Active Directory, Azure Active Directory B2C (Azure AD B2C) или другую облачную службу проверки подлинности.You should evaluate which capabilities of Access Control you need, and then choose between using Azure Active Directory, Azure Active Directory B2C (Azure AD B2C), or another cloud authentication service.

Переход на Azure Active DirectoryMigrate to Azure Active Directory

Приложения и службы можно непосредственно интегрировать с Azure Active Directory.A path to consider is integrating your apps and services directly with Azure AD. Azure AD — это облачный поставщик удостоверений для рабочих или учебных учетных записей Майкрософт,Azure AD is the cloud-based identity provider for Microsoft work or school accounts. а также поставщик удостоверений для Office 365, Azure и многих других служб.Azure AD is the identity provider for Office 365, Azure, and much more. Он предоставляет такие же возможности федеративной проверки подлинности, что и служба контроля доступа, но не поддерживает множество других функций этой службы.It provides similar federated authentication capabilities to Access Control, but doesn't support all Access Control features.

Основной пример — федерация с поставщиками удостоверений социальных сетей, таких как Facebook, Google и Yahoo.The primary example is federation with social identity providers, such as Facebook, Google, and Yahoo. Если пользователи входят в систему с этим типом учетных данных, тогда решение Azure AD не подходит вам.If your users sign in with these types of credentials, Azure AD is not the solution for you.

Azure AD также всегда поддерживает одинаковые со службой контроля доступа протоколы проверки подлинности.Azure AD also doesn't necessarily support the exact same authentication protocols as Access Control. Хотя обе эти службы поддерживают, например, протокол OAuth, его реализация, требующая изменения кода в процессе миграции,For example, although both Access Control and Azure AD support OAuth, there are subtle differences between each implementation. существенно отличается.Different implementations require you to modify code as part of a migration.

Однако Azure AD предоставляет несколько потенциальных преимуществ клиентам службы контроля доступа.However, Azure AD does provide several potential advantages to Access Control customers. Эта служба изначально поддерживает размещенные в облаке рабочие и учебные учетные записи Майкрософт, которые часто используют клиенты службы контроля доступа.It natively supports Microsoft work or school accounts hosted in the cloud, which are commonly used by Access Control customers.

Клиент Azure AD также можно включить в федерацию с одним или несколькими экземплярами локального каталога Active Directory через AD FS.An Azure AD tenant can also be federated to one or more instances of on-premises Active Directory via AD FS. Таким образом в приложении могут проходить проверку подлинности как облачные пользователи, так и пользователи, размещенные в локальной среде.This way, your app can authenticate cloud-based users and users that are hosted on-premises. Кроме того, Azure AD поддерживает протокол WS-Federation, за счет чего эту службу сравнительно легко интегрировать с веб-приложениями с помощью WIF.It also supports the WS-Federation protocol, which makes it relatively straightforward to integrate with a web application by using WIF.

В таблице ниже приводится сравнительная характеристика возможностей, которые предоставляют веб-приложениям службы контроля доступа и Azure AD.The following table compares the features of Access Control that are relevant to web applications with those features that are available in Azure AD.

В целом Azure Active Directory — это, скорее всего, правильный выбор, если нужно, чтобы после переноса пользователи входили в систему только с помощью рабочих и учебных учетных записей Майкрософт.At a high level, Azure Active Directory is probably the best choice for your migration if you let users sign in only with their Microsoft work or school accounts.

ВозможностьCapability Поддержка службы контроля доступаAccess Control support Поддержка Azure ADAzure AD support
Типы учетных записейTypes of accounts
Рабочие и учебные учетные записи МайкрософтMicrosoft work or school accounts ПоддерживаетсяSupported ПоддерживаетсяSupported
Учетные записи Windows Server Active Directory и AD FSAccounts from Windows Server Active Directory and AD FS — Поддерживаются через федерацию с клиентом Azure AD- Supported via federation with an Azure AD tenant
— Поддерживаются через прямую федерацию с AD FS- Supported via direct federation with AD FS
Поддерживаются только через федерацию с клиентом Azure ADOnly supported via federation with an Azure AD tenant
Учетные записи других корпоративных систем управления удостоверениямиAccounts from other enterprise identity management systems — Возможно через федерацию с клиентом Azure AD- Possible via federation with an Azure AD tenant
— Поддерживаются через прямую федерацию- Supported via direct federation
Возможно через федерацию с клиентом Azure ADPossible via federation with an Azure AD tenant
Личные учетные записи МайкрософтMicrosoft accounts for personal use ПоддерживаетсяSupported Поддерживаются только через протокол OAuth 2.0 Azure ADSupported via the Azure AD v2.0 OAuth protocol, but not over any other protocols
Учетные записи Facebook, Google, YahooFacebook, Google, Yahoo accounts ПоддерживаетсяSupported Не поддерживаются ни при каких обстоятельствахNot supported whatsoever
Совместимость с протоколами и пакетом SDKProtocols and SDK compatibility
WIFWIF ПоддерживаетсяSupported Поддерживается, но с определенными условиямиSupported, but limited instructions are available
WS-FederationWS-Federation ПоддерживаетсяSupported ПоддерживаетсяSupported
OAuth 2.0OAuth 2.0 Поддерживается черновая версия 13Support for Draft 13 Поддерживается RFC 6749 (последняя спецификация)Support for RFC 6749, the most modern specification
WS-TrustWS-Trust ПоддерживаетсяSupported Не поддерживаетсяNot supported
Форматы маркеровToken formats
JWTJWT Поддерживается в бета-версииSupported In Beta ПоддерживаетсяSupported
SAML 1.1SAML 1.1 ПоддерживаетсяSupported Предварительный просмотрPreview
SAML 2.0SAML 2.0 ПоддерживаетсяSupported ПоддерживаетсяSupported
SWTSWT ПоддерживаетсяSupported Не поддерживаетсяNot supported
НастройкиCustomizations
Настраиваемый пользовательский интерфейс обнаружения домашней области и выбора учетной записиCustomizable home realm discovery/account-picking UI Загружаемый код, который можно включить в приложенияDownloadable code that can be incorporated into apps Не поддерживаетсяNot supported
Передача пользовательских сертификатов для подписи маркераUpload custom token-signing certificates ПоддерживаетсяSupported ПоддерживаетсяSupported
Настройка утверждений в маркерахCustomize claims in tokens — Отправка входящих утверждений от поставщиков удостоверений- Pass through input claims from identity providers
— Получение маркера доступа от поставщика удостоверений как утверждения- Get access token from identity provider as a claim
— Выдача исходящих утверждений на основе значений входящих утверждений- Issue output claims based on values of input claims
— Выдача исходящих утверждений с постоянными значениями- Issue output claims with constant values
— Не может отправлять утверждения от федеративных поставщиков удостоверений- Cannot pass through claims from federated identity providers
— Не может получить маркер доступа от поставщика удостоверений как утверждение- Cannot get access token from identity provider as a claim
— Не может выдавать исходящие утверждения на основе значений входящих утверждений- Cannot issue output claims based on values of input claims
— Не может выдавать исходящие утверждения с постоянными значениями- Can issue output claims with constant values
— Может выдавать исходящие утверждения на основе свойств пользователя, синхронизированного с Azure AD- Can issue output claims based on properties of users synced to Azure AD
Служба автоматизацииAutomation
Автоматизация задач настройки и управленияAutomate configuration and management tasks Поддерживается через службу управления контролем доступаSupported via Access Control Management Service Поддерживается через Microsoft Graph и API Graph Azure ADSupported via Microsoft Graph and Azure AD Graph API

Если вы решите, что Azure AD является лучшим способом миграции, следует рассмотреть два способа интеграции приложений и служб с этой службой.If you decide that Azure AD is the best migration path for your applications and services, you should be aware of two ways to integrate your app with Azure AD.

Чтобы использовать WS-Federation и WIF для интеграции с Azure AD, рекомендуем подход, описанный в статье Настройка федеративного единого входа для приложения не из коллекции.To use WS-Federation or WIF to integrate with Azure AD, we recommend following the approach described in Configure federated single sign-on for a non-gallery application. В этой статье описана настройка единого входа на основе SAML в Azure AD, но этот способ можно применить и к WS-Federation.The article refers to configuring Azure AD for SAML-based single sign-on, but also works for configuring WS-Federation. При использовании этого подхода требуется лицензия Azure AD Premium.Following this approach requires an Azure AD Premium license. Такой подход имеет два преимущества:This approach has two advantages:

  • Вы получаете полную гибкость настройки маркера Azure AD.You get the full flexibility of Azure AD token customization. Вы можете настраивать утверждения, выданные Azure AD, в соответствии с маркерами службы контроля доступа.You can customize the claims that are issued by Azure AD to match the claims that are issued by Access Control. Это особенно касается утверждения идентификатора имени и пользователя.This especially includes the user ID or Name Identifier claim. Необходимо убедиться, что идентификаторы пользователей, выданные Azure AD, соответствуют выданным службой контроля доступам. Это позволит получать согласованные идентификаторы даже после изменения технологии.To continue to receive consistent user IDentifiers for your users after you change technologies, ensure that the user IDs issued by Azure AD match those issued by Access Control.
  • Вы можете настроить сертификат для подписи маркера, специфичный для вашего приложения, временем существования которого управляете вы.You can configure a token-signing certificate that is specific to your application, and with a lifetime that you control.

Примечание

При использовании этого подхода требуется лицензия Azure AD Premium.This approach requires an Azure AD Premium license. Если вы клиент ACS и вам требуется лицензия Premium, чтобы настроить единый вход в приложение, обратитесь к нам,If you are an Access Control customer and you require a premium license for setting up single-sign on for an application, contact us. и мы предоставим лицензии разработчика.We'll be happy to provide developer licenses for you to use.

Кроме того, вы можете использовать этот пример кода, в котором реализован немного другой подход к настройке WS-Federation.An alternative approach is to follow this code sample, which gives slightly different instructions for setting up WS-Federation. В этом примере кода используется не WIF, а ПО промежуточного слоя ASP.NET 4.5 OWIN.This code sample does not use WIF, but rather, the ASP.NET 4.5 OWIN middleware. Однако инструкции по регистрации подходят и к приложениям, использующим WIF, но в этом случае лицензия Azure AD Premium не требуется.However, the instructions for app registration are valid for apps using WIF, and don't require an Azure AD Premium license.

Если вы выбрали этот подход, необходимо разобраться со сменой ключей подписывания в Azure AD.If you choose this approach, you need to understand signing key rollover in Azure AD. В нем выдача маркеров осуществляется с помощью общего ключа подписывания Azure AD.This approach uses the Azure AD global signing key to issue tokens. По умолчанию WIF не обновляет ключи подписывания автоматически.By default, WIF does not automatically refresh signing keys. Когда Azure AD сменяет свои общие ключи подписывания, WIF необходимо подготовить к принятию изменений.When Azure AD rotates its global signing keys, your WIF implementation needs to be prepared to accept the changes. См. дополнительные сведения о смене ключей подписывания в Azure Active Directory.For more information, see Important information about signing key rollover in Azure AD.

Если вы можете выполнить интеграцию с Azure AD через протоколы OpenID Connect или OAuth, мы советуем применить этот подход.If you can integrate with Azure AD via the OpenID Connect or OAuth protocols, we recommend doing so. Подробную документацию и руководства разработчика по интеграции Azure AD с веб-приложением см. в этой статье.We have extensive documentation and guidance about how to integrate Azure AD into your web application available in our Azure AD developer guide.

Переход на Azure Active Directory B2CMigrate to Azure Active Directory B2C

Еще один вариант переноса, который следует рассмотреть, — это Azure AD B2C.The other migration path to consider is Azure AD B2C. Azure AD B2C — это облачная служба проверки подлинности, аналогичная службе контроля доступа. Она позволяет разработчикам развернуть в облачной службе логику управления удостоверениями и проверки подлинности сторонних поставщиков.Azure AD B2C is a cloud authentication service that, like Access Control, allows developers to outsource their authentication and identity management logic to a cloud service. Эта платная служба (с уровнями "Бесплатный" и "Премиум") предназначена для клиентов, создающих приложения, которые могут иметь миллионы активных пользователей.It's a paid service (with free and premium tiers) that is designed for consumer-facing applications that might have up to millions of active users.

Одна из наиболее привлекательных возможностей Azure AD B2C (как и службы контроля доступа) заключается в поддержке большого количества разных типов учетных записей.Like Access Control, one of the most attractive features of Azure AD B2C is that it supports many different types of accounts. С помощью Azure AD B2C пользователи могут выполнять вход, используя свою учетную запись Майкрософт, учетные записи Facebook, Google, LinkedIn, GitHub или Yahoo и многие другие.With Azure AD B2C, you can sign in users by using their Microsoft account, or Facebook, Google, LinkedIn, GitHub, or Yahoo accounts, and more. Кроме того, Azure AD B2C поддерживает локальные учетные записи — имена пользователей и пароли, создаваемые пользователями специально для определенного приложения.Azure AD B2C also supports "local accounts," or username and passwords that users create specifically for your application. Azure AD B2C также предоставляет широкие возможности расширяемости, с помощью которых можно настроить потоки входа.Azure AD B2C also provides rich extensibility that you can use to customize your sign-in flows.

Однако эта служба не поддерживает все протоколы проверки подлинности и форматы маркеров, необходимые клиентам службы контроля доступа.However, Azure AD B2C doesn't support the breadth of authentication protocols and token formats that Access Control customers might require. С помощью Azure AD B2C также нельзя получить маркеры и запросить дополнительные сведения о пользователе от поставщика удостоверений, корпорации Майкрософт или иным способом.You also can't use Azure AD B2C to get tokens and query for additional information about the user from the identity provider, Microsoft or otherwise.

В таблице ниже приводится сравнительная характеристика возможностей, которые предоставляют веб-приложениям служба контроля доступа и Azure AD B2C.The following table compares the features of Access Control that are relevant to web applications with those that are available in Azure AD B2C. В целом Azure AD B2C — это, скорее всего, правильный выбор для переноса, если приложение ориентировано на пользователей или поддерживает большое количество разных типов учетных записей.At a high level, Azure AD B2C is probably the right choice for your migration if your application is consumer facing, or if it supports many different types of accounts.

ВозможностьCapability Поддержка службы контроля доступаAccess Control support Поддержка Azure AD B2CAzure AD B2C support
Типы учетных записейTypes of accounts
Рабочие и учебные учетные записи МайкрософтMicrosoft work or school accounts ПоддерживаетсяSupported Поддерживаются через пользовательские политикиSupported via custom policies
Учетные записи Windows Server Active Directory и AD FSAccounts from Windows Server Active Directory and AD FS Поддерживаются через прямую федерацию с AD FSSupported via direct federation with AD FS Поддерживаются через федерации SAML с помощью настраиваемых политикSupported via SAML federation by using custom policies
Учетные записи других корпоративных систем управления удостоверениямиAccounts from other enterprise identity management systems Поддерживаются через прямую федерацию по протоколу WS-FederationSupported via direct federation through WS-Federation Поддерживаются через федерации SAML с помощью настраиваемых политикSupported via SAML federation by using custom policies
Личные учетные записи МайкрософтMicrosoft accounts for personal use ПоддерживаетсяSupported ПоддерживаетсяSupported
Учетные записи Facebook, Google, YahooFacebook, Google, Yahoo accounts ПоддерживаетсяSupported Учетные записи Facebook и Google поддерживаются по умолчанию, Yahoo — через федерацию OpenID Connect с помощью настраиваемых политикFacebook and Google supported natively, Yahoo supported via OpenID Connect federation by using custom policies
Совместимость с протоколами и пакетом SDKProtocols and SDK compatibility
Windows Identity FoundationWindows Identity Foundation (WIF) ПоддерживаетсяSupported Не поддерживаетсяNot supported
WS-FederationWS-Federation ПоддерживаетсяSupported Не поддерживаетсяNot supported
OAuth 2.0OAuth 2.0 Поддерживается черновая версия 13Support for Draft 13 Поддерживается RFC 6749 (последняя спецификация)Support for RFC 6749, the most modern specification
WS-TrustWS-Trust ПоддерживаетсяSupported Не поддерживаетсяNot supported
Форматы маркеровToken formats
JWTJWT Поддерживается в бета-версииSupported In Beta ПоддерживаетсяSupported
SAML 1.1SAML 1.1 ПоддерживаетсяSupported Не поддерживаетсяNot supported
SAML 2.0SAML 2.0 ПоддерживаетсяSupported Не поддерживаетсяNot supported
SWTSWT ПоддерживаетсяSupported Не поддерживаетсяNot supported
НастройкиCustomizations
Настраиваемый пользовательский интерфейс обнаружения домашней области и выбора учетной записиCustomizable home realm discovery/account-picking UI Загружаемый код, который можно включить в приложенияDownloadable code that can be incorporated into apps Возможность полной конфигурации пользовательского интерфейса через настраиваемые каскадные таблицы стилейFully customizable UI via custom CSS
Передача пользовательских сертификатов для подписи маркераUpload custom token-signing certificates ПоддерживаетсяSupported Настраиваемые ключи подписывания (не сертификаты) поддерживаются через пользовательские политикиCustom signing keys, not certificates, supported via custom policies
Настройка утверждений в маркерахCustomize claims in tokens — Отправка входящих утверждений от поставщиков удостоверений- Pass through input claims from identity providers
— Получение маркера доступа от поставщика удостоверений как утверждения- Get access token from identity provider as a claim
— Выдача исходящих утверждений на основе значений входящих утверждений- Issue output claims based on values of input claims
— Выдача исходящих утверждений с постоянными значениями- Issue output claims with constant values
— Может отправлять утверждения от поставщиков удостоверений; для некоторых утверждений требуются пользовательские политики- Can pass through claims from identity providers; custom policies required for some claims
— Не может получить маркер доступа от поставщика удостоверений как утверждение- Cannot get access token from identity provider as a claim
— Может выдавать исходящие утверждения на основе значений входящих утверждений через пользовательские политики- Can issue output claims based on values of input claims via custom policies
— Может выдавать исходящие утверждения с постоянными значениями через пользовательские политики- Can issue output claims with constant values via custom policies
Служба автоматизацииAutomation
Автоматизация задач настройки и управленияAutomate configuration and management tasks Поддерживается через службу управления контролем доступаSupported via Access Control Management Service — Создавать пользователей можно через API Azure AD Graph- Creation of users allowed via Azure AD Graph API
— Не может программно создавать клиенты, приложения или политики B2C- Cannot create B2C tenants, applications, or policies programmatically

Если вы решите перенести свои приложения и службы в Azure AD B2C, сначала изучите следующие материалы:If you decide that Azure AD B2C is the best migration path for your applications and services, begin with the following resources:

Перенос в Ping Identity или Auth0Migrate to Ping Identity or Auth0

В некоторых случаях может выясниться, что Azure AD и Azure AD B2C не могут заменить службу контроля доступа в веб-приложениях без внесения значительных изменений в код.In some cases, you might find that Azure AD and Azure AD B2C aren't sufficient to replace Access Control in your web applications without making major code changes. К некоторым распространенным примерам относятся следующие:Some common examples might include:

  • веб-приложения, использующие WIF или WS-Federation для входа через поставщиков удостоверений социальных сетей, например Google или Facebook;Web applications that use WIF or WS-Federation for sign-in with social identity providers such as Google or Facebook.
  • веб-приложения, устанавливающие прямую федерацию с корпоративным поставщиком удостоверений по протоколу WS-Federation;Web applications that perform direct federation to an enterprise identity provider over the WS-Federation protocol.
  • веб-приложения, которым требуется маркер доступа, выданный поставщиком удостоверений социальных сетей (например, Google или Facebook), в качестве утверждения в токенах, выданных службой контроля доступа;Web applications that require the access token issued by a social identity provider (such as Google or Facebook) as a claim in the tokens issued by Access Control.
  • веб-приложения со сложными правилами преобразования токенов, которые службы Azure AD и Azure AD B2C не могут воспроизвести;Web applications with complex token transformation rules that Azure AD or Azure AD B2C can't reproduce.
  • мультитенантные веб-приложения, использующие ACS для централизованного управления федерацией с многими различными поставщиками удостоверений.Multi-tenant web applications that use ACS to centrally manage federation to many different identity providers

В таких случаях рассмотрите возможность переноса веб-приложения в другую облачную службу проверки подлинности.In these cases, you might want to consider migrating your web application to another cloud authentication service. Мы советуем изучить следующие варианты.We recommend exploring the following options. Каждый из них предоставляет те же возможности, что и служба контроля доступа.Each of the following options offer capabilities similar to Access Control:

На этом рисунке показан логотип Auth0 Auth0 — это гибкая облачная служба идентификации, поддерживающая почти все возможности ACS (для нее доступно общее руководство по переходу для клиентов службы контроля доступа).Auth0 is a flexible cloud identity service that has created high-level migration guidance for customers of Access Control, and supports nearly every feature that ACS does.
На этом рисунке показан логотип удостоверения связи Ping Identity предлагает два решения, аналогичные возможностям ACS.Ping Identity offers two solutions similar to ACS. Пингоне — это облачная служба идентификации, которая поддерживает многие функции ACS, а PingFederate — аналогичный продукт с локальным удостоверением, обеспечивающий большую гибкость.PingOne is a cloud identity service that supports many of the same features as ACS, and PingFederate is a similar on premises identity product that offers more flexibility. Дополнительные сведения по их использованию см. в этом руководстве.Refer to Ping's ACS retirement guidance for more details on using these products.

Мы работаем с Ping Identity и Auth0, чтобы гарантировать, что у всех клиентов службы контроля доступа есть пути переноса своих приложений и служб, которые позволяют уменьшить объем работы, необходимый для перемещения.Our aim in working with Ping Identity and Auth0 is to ensure that all Access Control customers have a migration path for their apps and services that minimizes the amount of work required to move from Access Control.

Веб-службы, использующие активную проверку подлинностиWeb services that use active authentication

Для веб-служб, которые защищены с помощью маркеров, выпущенных службой контроля доступа, предлагаются следующие функции и возможности:For web services that are secured with tokens issued by Access Control, Access Control offers the following features and capabilities:

  • Возможность зарегистрировать одно или несколько удостоверений службы в пространстве имен ACS.Ability to register one or more service identities in your Access Control namespace. Удостоверения служб можно использовать для запроса маркеров.Service identities can be used to request tokens.
  • Поддержка запроса маркеров по протоколу OAuth WRAP и OAuth 2.0 (черновой вариант 13), используя следующие типы учетных данных:Support for the OAuth WRAP and OAuth 2.0 Draft 13 protocols for requesting tokens, by using the following types of credentials:
    • простой пароль, созданный для удостоверения службы;A simple password that's created for the service identity
    • подписанный маркер SWT, использующий симметричный ключ или сертификат X509;A signed SWT by using a symmetric key or X509 certificate
    • маркер SAML, выданный доверенным поставщиком удостоверений (обычно это экземпляр ADFS).A SAML token issued by a trusted identity provider (typically, an AD FS instance)
  • Поддержка маркеров следующих форматов: JWT, SAML 1.1, SAML 2.0 и SWT.Support for the following token formats: JWT, SAML 1.1, SAML 2.0, and SWT.
  • Простые правила преобразования маркеров.Simple token transformation rules.

Удостоверения службы в ACS обычно позволяют реализовать проверку подлинности между серверами.Service identities in Access Control are typically used to implement server-to-server authentication.

Переход на Azure Active DirectoryMigrate to Azure Active Directory

При использовании этого типа потока проверки подлинности мы советуем перейти на Azure Active Directory.Our recommendation for this type of authentication flow is to migrate to Azure Active Directory. Azure AD — это облачный поставщик удостоверений для рабочих или учебных учетных записей Майкрософт,Azure AD is the cloud-based identity provider for Microsoft work or school accounts. а также поставщик удостоверений для Office 365, Azure и многих других служб.Azure AD is the identity provider for Office 365, Azure, and much more.

За счет реализации предоставления учетных данных клиента OAuth служба Azure AD обеспечивает проверку подлинности между серверами.You can also use Azure AD for server-to-server authentication by using the Azure AD implementation of the OAuth client credentials grant. В таблице ниже приводится сравнительная характеристика возможностей проверки подлинности между серверами в службе контроля доступа и Azure AD.The following table compares the capabilities of Access Control in server-to-server authentication with those that are available in Azure AD.

ВозможностьCapability Поддержка службы контроля доступаAccess Control support Поддержка Azure ADAzure AD support
Регистрация веб-службыHow to register a web service Создание проверяющей стороны на портале управления ACSCreate a relying party in the Access Control management portal Создание веб-приложения Azure AD на портале AzureCreate an Azure AD web application in the Azure portal
Регистрация клиентаHow to register a client Создание удостоверения службы на портале управления ACSCreate a service identity in Access Control management portal Создание другого веб-приложения Azure AD на портале AzureCreate another Azure AD web application in the Azure portal
Используемый протоколProtocol used — Протокол OAuth WRAP- OAuth WRAP protocol
— Предоставление учетных данных клиента OAuth 2.0 (черновой вариант 13)- OAuth 2.0 Draft 13 client credentials grant
Предоставление учетных данных клиента OAuth 2.0OAuth 2.0 client credentials grant
Методы проверки подлинности клиентаClient authentication methods — Простой пароль- Simple password
— Подписанный маркер SWT- Signed SWT
— Токен SAML из федеративного поставщика удостоверений- SAML token from a federated identity provider
— Простой пароль- Simple password
— Подписанный маркер JWT- Signed JWT
Форматы маркеровToken formats — JWT- JWT
— SAML 1.1- SAML 1.1
— SAML 2.0- SAML 2.0
— SWT- SWT
Только JWTJWT only
Преобразование маркеровToken transformation — Добавление пользовательских утверждений- Add custom claims
— Простая логика выдачи утверждения If-Then- Simple if-then claim issuance logic
Добавление пользовательских утвержденийAdd custom claims
Автоматизация задач настройки и управленияAutomate configuration and management tasks Поддерживается через службу управления контролем доступаSupported via Access Control Management Service Поддерживается через Microsoft Graph и API Graph Azure ADSupported via Microsoft Graph and Azure AD Graph API

Рекомендации по реализации межсерверных сценариев см. в следующих источниках:For guidance about implementing server-to-server scenarios, see the following resources:

Перенос в Ping Identity или Auth0Migrate to Ping Identity or Auth0

В некоторых случаях может оказаться, что учетных данных клиента Azure AD и предоставления разрешения OAuth недостаточно для замены службы контроля доступа в архитектуре без значительных изменений кода.In some cases, you might find that the Azure AD client credentials and the OAuth grant implementation aren't sufficient to replace Access Control in your architecture without major code changes. К некоторым распространенным примерам относятся следующие:Some common examples might include:

  • проверка подлинности между серверами с помощью токена в форматах, отличных от JWT;Server-to-server authentication using token formats other than JWTs.
  • проверка подлинности между серверами с помощью входящего маркера, предоставленного внешним поставщиком удостоверений;Server-to-server authentication using an input token provided by an external identity provider.
  • проверка подлинности между серверами с правилами преобразования маркеров, которые Azure AD не может воспроизвести.Server-to-server authentication with token transformation rules that Azure AD cannot reproduce.

В таких случаях рассмотрите возможность переноса веб-приложения в другую облачную службу проверки подлинности.In these cases, you might consider migrating your web application to another cloud authentication service. Мы советуем изучить следующие варианты.We recommend exploring the following options. Каждый из них предоставляет те же возможности, что и служба контроля доступа.Each of the following options offer capabilities similar to Access Control:

На этом рисунке показан логотип Auth0 Auth0 — это гибкая облачная служба идентификации, поддерживающая почти все возможности ACS (для нее доступно общее руководство по переходу для клиентов службы контроля доступа).Auth0 is a flexible cloud identity service that has created high-level migration guidance for customers of Access Control, and supports nearly every feature that ACS does.
На этом рисунке показан логотип удостоверения связи Ping Identity предлагает два решения, аналогичные возможностям ACS.Ping Identity offers two solutions similar to ACS. Пингоне — это облачная служба идентификации, которая поддерживает многие функции ACS, а PingFederate — аналогичный продукт с локальным удостоверением, обеспечивающий большую гибкость.PingOne is a cloud identity service that supports many of the same features as ACS, and PingFederate is a similar on premises identity product that offers more flexibility. Дополнительные сведения по их использованию см. в этом руководстве.Refer to Ping's ACS retirement guidance for more details on using these products.

Мы работаем с Ping Identity и Auth0, чтобы гарантировать, что у всех клиентов службы контроля доступа есть пути переноса своих приложений и служб, которые позволяют уменьшить объем работы, необходимый для перемещения.Our aim in working with Ping Identity and Auth0 is to ensure that all Access Control customers have a migration path for their apps and services that minimizes the amount of work required to move from Access Control.

Сквозная проверка подлинностиPassthrough authentication

Для сквозной проверки подлинности с произвольным преобразованием токена нет эквивалентной технологии Майкрософт для ACS.For passthrough authentication with arbitrary token transformation, there is no equivalent Microsoft technology to ACS. Если это то, что нужно вашим клиентам, Auth0 может предоставить решения для наиболее точного приближения.If that is what your customers need, Auth0 might be the one who provides the closest approximation solution.

Вопросы, проблемы и отзывыQuestions, concerns, and feedback

Мы понимаем, что сведения о переносе в этой статье подходят не всем,We understand that many Access Control customers won't find a clear migration path after reading this article. и некоторым клиентам ACS требуются советы и рекомендации по определению правильного плана.You might need some assistance or guidance in determining the right plan. Если вы хотите обсудить сценарии переноса и связанные с этим процессом вопросы, оставьте комментарий на этой странице.If you would like to discuss your migration scenarios and questions, please leave a comment on this page.