Перенос пространств имен ACS в Google OpenID Connect

Этот раздел предназначен для владельцев пространств имен службы контроля доступа (ACS) версии 2.0, которые в настоящее время используют Google в качестве поставщика удостоверений. ACS предоставляет такую возможность с помощью реализации OpenID 2.0 от Google. Google планирует прекратить поддержку OpenID 2.0 20 апреля 2015 года. Пространства имен ACS будут продолжать работать с реализацией OpenID 2.0 Google до 1 июня 2015 г., к тому времени необходимо завершить миграцию этих пространств имен, чтобы использовать реализацию OpenID Подключение Google или пользователи больше не смогут войти в приложение с помощью учетной записи Google. Перенос пространств имен ACS в OpenID Connect не вызовет простоя приложения. Пространства имен можно перенести, не изменяя код приложения (с одним исключением (см. примечание ниже). После переноса пространств имен ACS для использования OpenID Connect вам нужно будет перенести идентификаторы пользователей в серверной части в идентификаторы OpenID Connect. Эта миграция должна быть завершена 1 января 2017 г. Для этого потребуется изменить код в серверной части. Дополнительную информацию об обоих этапах переноса см. в важном примечание ниже.

Важно!

Обратите внимание на следующие важные даты и выполните действия до истечения этих сроков, чтобы убедиться, что ваши пространства ACS, использующие Google в качестве поставщика удостоверений, продолжат работать:

  • 1 июня 2015 года пространства имен ACS перестанут взаимодействовать с реализацией Google OpenID 2.0. К этому времени вам необходимо завершить миграцию пространств имен ACS, чтобы использовать Google OpenID Connect. До этой даты можно выполнить откат до OpenID 2.0 при возникновении проблем во время миграции. Для пространств имен, которые не были перенесены по этой дате, пользователи больше не смогут войти с помощью учетной записи Google и будут представлены со страницей, указывающей, что OpenID 2.0 для учетных записей Google исчезла. Чтобы восстановить возможность входа с помощью учетных записей Google, необходимо перенести пространство имен.

    В большинстве случаев не требуется никаких изменений в коде приложения. При наличии правила "Передавать все утверждения" для Google в качестве поставщика удостоверений в группе правил, возможно, вам все равно потребуется внести изменения в код. Причиной является то, что после миграции Google предоставляет ACS доступ к новому типу утверждения (Subject) и, возможно, вам все равно придется внести изменения в код, чтобы ваше приложение могло правильно обрабатывать новый тип утверждения. Чтобы завершить миграцию успешно, не нужно обрабатывать новый тип утверждения в своем приложении.

  • 1 января 2017 года реализации Google OpenID 2.0 и OpenID Connect начнут использовать разные идентификаторы для уникальной идентификации пользователей Google. Во время миграции пространства имен ACS служба ACS создает два идентификатора — текущий идентификатор OpenID 2.0 и новый идентификатор OpenID Connect — оба доступны для вашего приложения. К этому времени вы должны перейти от использования идентификаторов пользователей в серверной системе к использованию идентификаторов OpenID Connect и в дальнейшем использовать только идентификаторы OpenID Connect. Для этого нужно изменить код приложения.

Вы можете публиковать вопросы о миграции в Stack Overflow и помечать их с помощью acs-google. Мы постараемся ответить на них как можно скорее.

Дополнительные сведения о планах Google см. в руководстве по миграции OpenID 2.0.

Контрольный список действий по миграции

Следующая таблица содержит контрольный список, в котором перечислены шаги, необходимые, чтобы мигрировать пространство имен ACS для использования реализации Google OpenID Connect.

Шаг Описание Кем заполняется

1

Создайте приложение Google+ в Google Developers Console.

1 июня 2015 г.

2

При наличии правила Передавать все утверждения для Google в качестве поставщика удостоверений в группе правил, связанных с приложением, протестируйте свое приложение, чтобы убедиться, что оно готово к миграции. В другом случае этот шаг необязателен.

1 июня 2015 г.

3

Используйте портал управления ACS, чтобы перевести пространство имен ACS на использование реализации Google OpenID Connect. Для этого укажите на портале параметры своего приложения Google+ ("Идентификатор клиента" и "Секрет клиента"). Если у вас возникли проблемы с миграцией, выполните откат до OpenID 2.0. Это можно сделать до 1 июня 2015 года.

1 июня 2015 г.

4

Мигрируйте идентификаторы пользователей серверной системы из текущих идентификаторов Google OpenID 2.0 в новые идентификаторы Google OpenID Connect. Для этого нужно изменить код.

1 января 2017 г.

Пошаговое руководство по миграции

Чтобы мигрировать пространство имен ACS для использования реализации Google OpenID Connect, выполните следующие шаги.

  1. Создание приложения Google+

    Подробные инструкции о том, как это сделать, см. в разделе "Практическое руководство. Создание приложения Google+".

  2. Убедитесь, что ваше приложение готово к миграции.

    Если у вас есть правило "Сквозное все утверждения" для Google в качестве поставщика удостоверений в группе правил, связанной с приложением, следуйте инструкциям в разделе "Практическое руководство. Проверка готовности приложения ACS к миграции" для проверки готовности приложения к миграции. Дело в том, что после миграции Google предоставляет ACS доступ к новому типу утверждения (Subject).

    Примечание

    Правило passthrough all claims (Сквозное утверждение всех утверждений) — это правило, в котором для типа входных утверждений и входных утверждений задано значение "Любой " и " Вывод утверждения ", а для значения утверждения "Вывод " задано значение "Пройти через первый входной тип утверждения " и "Передать через входное утверждение" соответственно. Правило есть в списке на портале управления ACS, как показано ниже, и для его столбца Исходящее утверждение задано значение Передавать.

    Passthrough rule

    Если ранее вы уже создавали правила или добавляли их вручную для Google в качестве поставщика удостоверений в группе правил, связанных с приложением, вы можете пропустить этот шаг. Причиной является то, что в таких случаях после миграции новый тип утверждения Subject не отправляется в приложение.

    Дополнительные сведения об этих параметрах см. в разделе "Группы правил" и "Правила".

  3. Переведите пространство имен ACS на использование реализации Google OpenID Connect.

    1. Перейдите на Портал управления Microsoft Azure, войдите и щелкните Active Directory. Выберите пространство имен ACS, которое необходимо мигрировать, и щелкните Управление, чтобы запустить портал управления ACS.

    2. На портале управления ACS щелкните Поставщики удостоверений в дереве слева или щелкните ссылку Поставщики удостоверений в разделе Приступая к работе. Выберите Google.

      Access Control Service Identity Providers Dialog

    3. На странице Изменение поставщика удостоверений Google установите флажок Использовать OpenID Connect.

      Edit Google Identity Provider dialog

    4. В поля Идентификатор клиента и Секрет клиента (сейчас включены) скопируйте соответствующие значения из своего приложения Google+.

      Edit Google Identity Provider dialog

      Примечание

      Если вы щелкните Сохранить на этом этапе, все запросы провайдера удостоверений Google из пространства имен ACS будут автоматически использовать реализацию Google OpenID Connect. Если вам необходимо выполнить откат, можно снять флажок Использовать OpenID Connect. Идентификатор клиента и секрет клиента будут сохранены, в дальнейшем их можно использовать снова.

    5. Выберите команду Сохранить.

    6. Попробуйте войти в систему, используя идентификатор Google, чтобы убедиться в успешном переходе на использование OpenID Connect. Если при входе возникла проблема, вернитесь на страницу Изменение поставщика удостоверений Google и снимите флажок Использовать OpenID Connect, чтобы выполнить откат до OpenID 2.0. После возвращения убедитесь, что содержимое полей Идентификатор клиента и Секрет, скопированное из Google Developer Console, введено правильно для вашего пространства имен, например проверьте его на наличие опечаток.

  4. Мигрируйте идентификаторы пользователей в серверной системе из Google OpenID 2.0 в Google OpenID Connect.

    Вам необходимо перейти с использования существующих идентификаторов Google OpenID 2.0 для пользователей в серверной системе на новые идентификаторы Google OpenID Connect до 1 января 2017 года. Выполнение этого шага требует изменения кода. Дополнительные сведения см. в разделе "Практическое руководство. Перенос существующих идентификаторов Open ID 2.0 пользователей на новые идентификаторы пользователей OpenID Подключение пользователей"

Практическое руководство. Создание приложения Google+

Для выполнения следующих действий потребуется учетная запись Google. если у вас его нет, вы можете получить его в https://accounts.google.com/SignUp.

  1. В окне браузера перейдите в консоль разработчиков Google и войдите с учетными данными учетной записи Google.

  2. Щелкните Создать проект и введите данные в полях Имя проекта и Идентификатор проекта. Установите флажок Условия предоставления услуг. Затем нажмите кнопку Создать. Это позволит зарегистрировать приложение в Google.

    Google Developer Console New Project dialog

  3. Щелкните проверку подлинности API & на левой панели. Затем щелкните Учетные данные. В разделе OAuth щелкните Создать идентификатор клиента, выберите Веб-приложение и щелкнитеНастроить экран согласия. Укажите Имя продукта и щелкните Сохранить.

    Google Developer Console Consent screen

  4. Щелкните проверку подлинности API & на левой панели. И затем щелкните API. В разделе Просмотр интерфейсов API выполните поиск и найдите API Google+. Установите для Состояние значение Вкл.

    Google Developer Console Browse APIs

  5. В диалоговом окне Создание идентификатора клиента, выберите Веб-приложение как Тип приложения.

    В поле "Авторизованные источники Javascript " укажите полное доменное имя (FQDN) пространства имен, включая начальный "HTTPS://" и конечный номер порта; например, https://contoso.accesscontrol.windows.net:443.

    В поле URI авторизованного перенаправления укажите универсальный код ресурса (URI), содержащий полный URL-адрес пространства имен, включая начальный номер "HTTPS://" и конечный номер порта, за которым следует "/v2/openid"; например, https://contoso.accesscontrol.windows.net:443/v2/openid.

    Нажмите кнопку Создать идентификатор клиента.

    Google Developer Console Create Client ID screen

  6. Запишите значения для полей Идентификатор клиента и Секрет клиента со страницы Идентификатор клиента для веб-приложения. Они понадобятся вам, чтобы настроить реализацию Google OpenID Connect на портале управления ACS.

    Google Developer Console Client ID for Web App

    Важно!

    Секрет клиента— важный элемент обеспечения безопасности. Храните его в секрете.

Практическое руководство. Перенос существующих идентификаторов Open ID 2.0 пользователей в новые идентификаторы OpenID Подключение пользователей

После успешной миграции пространства имен ACS для использования реализации OpenID Google OpenID Подключение у вас есть до 1 января 2017 г. (в руководстве по миграции OpenID 2.0 Google) для переноса идентификаторов пользователей в серверной системе с текущих идентификаторов OpenID 2.0 на новые идентификаторы OpenID Подключение.

В следующей таблице показаны типы утверждений, к которым Google предоставит ACS доступ сразу же после миграции пространства ACS для использования реализации Google OpenID Connect.

Тип утверждения URI Описание Доступность протокола

Идентификатор имени

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

Уникальный идентификатор учетной записи пользователя, предоставляемый Google. Это (существующий) идентификатор OpenID 2.0.

OpenID 2.0, OpenID Connect

Тема

https://schemas.microsoft.com/identity/claims/subject

Уникальный идентификатор учетной записи пользователя, предоставляемый Google. Это (новый) идентификатор OpenID Connect.

OpenID Connect

Имя

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

Отображаемое имя учетной записи пользователя, предоставляемое Google.

OpenID 2.0, OpenID Connect

(см. примечание ниже)

Электронная почта

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

Адрес электронной почты, используемый в качестве учетной записи пользователя и предоставляемый Google

OpenID 2.0, OpenID Connect

Поставщик удостоверений

https://schemas.microsoft.com/accesscontrolservice/2010/07/claims/IdentityProvider

Утверждение, предоставляемое ACS и сообщающее приложению проверяющей стороны, что пользователь прошел проверку подлинности, используя поставщик удостоверений Google по умолчанию. Значение этого утверждения можно найти на портале управления ACS в поле Область на странице Изменение поставщика удостоверений.

OpenID 2.0, OpenID Connect

Примечание

Для пользователя Google, у которого нет (зарегистрированного) профиля Google+, значение типа утверждения Имя является таким же, как и значение типа утверждения Адрес электронной почты в OpenID Connect.

Типы утверждений Name Identifier и Subject можно использовать для отслеживания и перевода уникальных идентификаторов существующих пользователей на сервере, сопоставляя (старые) идентификаторы OpenID 2.0 с (новыми) идентификаторами OpenID Connect.

При наличии правила Передавать все утверждения для Google в качестве поставщика удостоверений в группе правил, связанных с приложением, приложение будет автоматически получать утверждения типа Subject.

Если ранее вы уже создавали правила или добавляли их вручную для Google в качестве поставщика удостоверений в группе правил, связанных с приложением, вам понадобится добавить утверждение типа Subject вручную. Дополнительные сведения о том, как это сделать, см. в разделе "Группы правил" и "Правила".

Input Claim Configuration

Например, если ранее вы уже создавали правила для Google в качестве поставщика удостоверений в группе правил, добавьте новый тип утверждения Subject (как показано выше) и увидите следующее.

Google passthrough claims

Приложение, которое использует эту группу правил, получит утверждения типа Subject наряду с утверждениями других типов.

Примечание

С 1 января 2017 года, когда Google прекратит поддержку сопоставления идентификаторов, ACS заполнит утверждения типов NameIdentifier и Subject теми же идентификаторами пользователей OpenID Connect.

Практическое руководство. Обеспечение готовности приложения ACS к миграции

Пространство имен ACS можно мигрировать для использования реализации Google OpenID Connect без изменения кода приложения, но есть одно исключение. Исключение составляют случаи наличия правила «Передавать все утверждения» для Google в качестве поставщика удостоверений в группе правил, связанных с вашим приложением. Причиной является то, что в этом случае после миграции новый тип утверждения (Subject) автоматически отправляется в приложение.

В этом разделе приводятся рекомендации по изменению и тестированию, которым вы можете следовать, чтобы обеспечить готовность каждого приложения, затронутого миграцией, обрабатывать утверждения нового типа.

В этом практическом руководстве предположим, что вы — владелец пространства имен, которое называется ns-contoso, а приложение в рабочей среде называется ProdContosoApp. Предположим также, что это приложение использует Google в качестве поставщика удостоверений, и для приложения есть правило "Передавать все утверждения", которое включено для Google.

Установка

  1. Для начала перейдите на Портал управления Microsoft Azure, войдите и щелкните Active Directory. Выберите пространство имен ACS (ns-contoso), а затем щелкните Управление, чтобы запустить портал управления ACS.

  2. На портале управления ACS щелкните Приложения проверяющей стороны в дереве слева или щелкните ссылку Приложения проверяющей стороны в разделе Приступая к работе. Затем щелкните свое рабочее приложение (ProdContosoApp).

  3. Запишите свойства ProdContosoApp, так как они понадобятся вам позже.

    Edit Relying Party Application dialog

  4. Установите флажок Группа правил по умолчанию для ProdContosoApp в разделе Группы правил, чтобы убедиться, что в нем включено правило "Передавать все утверждения" для Google.

    Google passthrough claim

Шаг 1. Настройка тестового экземпляра приложения в рабочем пространстве имен ACS

Настройка тестового экземпляра приложения TestContosoApp в другом корневом URI; например. https://contoso-test.com:7777/ Его необходимо зарегистрировать в качестве приложения проверяющей стороны (приложения проверяющей стороны) в пространстве имен ns-contoso.

  1. На портале управления ACS щелкните Приложения проверяющей стороны в дереве слева или щелкните ссылку Приложения проверяющей стороны в разделе Приступая к работе. Затем щелкните Добавить на странице Приложения проверяющей стороны.

  2. На странице Добавление приложения проверяющей стороны выполните следующие действия.

    • В поле Имя введите имя тестового приложения. Здесь это TestContosoApp.

    • Для параметра Режим выберите Ввести параметры вручную.

    • В поле Область введите универсальный код ресурса приложения. Вот это https://contoso-test.com:7777/.

    • В этом практическом руководстве вы можете оставить поле URL-адрес ошибки (необязательно) пустым.

    • Для свойств Формат маркера, Политика шифрования маркеров и Время существования маркера (с), а также для раздела Параметры подписи маркеров используйте те же значения, что и для ProdContosoApp.

    • Убедитесь, что вы установили флажок Google в разделе Поставщик удостоверений.

    • В разделе Группы правил установите флажок Создать группу правил.

    Add Relying Party Application dialog

  3. В нижней части страницы нажмите кнопку Сохранить .

Шаг 2. Создайте группу правил, которая имитирует формат токена ACS, который приложение получит после переноса пространства имен для использования реализации OpenID Google Подключение

  1. На портале управления ACS щелкните Группы правил в дереве слева или щелкните ссылку Группы правил в разделе Приступая к работе. Затем щелкните Добавить на странице Группы правил.

  2. На странице Добавление группы правил укажите имя для новой группы правил, например ManualGoogleRuleGroup. Нажмите кнопку «Сохранить».

    Add Rule Group dialog

  3. На странице Изменение группы правил щелкните ссылку Добавить.

    Edit Rule Group dialog

  4. На странице Добавление правила для утверждений убедитесь, что для параметров в разделах заданы соответствующие значения, и щелкните Сохранить. Это позволит создать правило "Передавать все утверждения" для Google.

    • В разделе Если:

      • Для параметра Поставщик удостоверений задано Google.

      • Для параметра Тип входящего утверждения выбрано Все.

      • Значение входящего утверждения равняется Любое.

    • Раздел Далее:

      • Для параметра Тип исходящего утверждения — Передавать утверждения первого типа.

      • Для параметра Значение исходящего утверждения —Передавать значение входящего утверждения.

    • В разделе Данные правила:

      • Оставьте поле Описание (необязательно) пустым.

    Add Claim Rule dialog

  5. На странице Изменение группы правил щелкните ссылку Добавить еще раз.

  6. На странице Добавление правила для утверждений убедитесь, что для параметров в разделах заданы соответствующие значения, и щелкните "Сохранить". Это создаст статическое правило для утверждений для Google, которое имитирует добавление нового типа утверждений Subject. Это новый идентификатор пользователя OpenID Connect, который Google отправляет приложению после миграции.

    • В разделе Если:

      • Для параметра Поставщик удостоверений задано Google.

      • Для параметра Тип входящего утверждения выбрано Все.

      • Значение входящего утверждения равняется Любое.

    • Раздел Далее:

      • В подразделе Тип исходящего утверждения должно быть заполнено поле Введите тип. В поле введите https://schemas.microsoft.com/identity/claims/subject.

      • В подразделе Значение исходящего утверждения должно быть заполнено поле Введите значение. В этом поле введите 123456.

    • В разделе Данные правила:

      • Оставьте поле Описание (необязательно) пустым.

    Add Claim Rull dialog

  7. Щелкните Сохранить на странице Изменение группы правил.

Шаг 3. Связывание новой группы правил с тестируемым экземпляром приложения

  1. На портале управления ACS щелкните Приложения проверяющей стороны в дереве слева или щелкните ссылку Приложения проверяющей стороны в разделе Приступая к работе. Затем щелкните TestContosoApp на странице Приложения проверяющей стороны.

  2. На странице Изменение приложения проверяющей стороны выберите ManualGoogleRuleGroup в разделе Параметры проверки подлинности и щелкните Сохранить.

    Authentication Settings

Теперь все запросы на вход, которые Google отправляет вашим тестовым приложениям, будут включать в себя утверждения нового типа.

Шаг 4. Проверьте, может ли приложение обрабатывать добавление типа утверждения Subject

Протестируйте свое приложение, чтобы проверить, может ли оно правильно обнаруживать наличие нового типа утверждений (Subject). Обычно правильно написанное приложение должно надежно обрабатывать новые типы утверждений при добавлении. Найдите и устраните все проблемы. При необходимости можно также выполнить инструкции. Перенесите существующие идентификаторы Open ID 2.0 пользователей в новый раздел openID Подключение идентификаторов пользователей, чтобы выполнить сопоставление идентификаторов пользователей.

Шаг 5. Перенос рабочей среды

Создайте рабочее приложение (ProdContosoApp) повторно и разверните его. Перенесите пространство имен (ns-contoso), чтобы использовать реализацию OpenID Подключение Google, выполнив действия, описанные в пошаговом руководстве по миграции. Убедитесь, что ProdContosoApp работает, как ожидалось.