Группы правил и правила
Обновлено: 19 июня 2015 г.
Область применения: Azure
В Microsoft Azure Active Directory контроль доступа (также называемой службой контроль доступа или ACS) группа правил — это именованный набор правил утверждений, определяющий, какие утверждения удостоверений передаются от поставщиков удостоверений приложению проверяющей стороны. В ACS группы правил связаны с приложениями проверяющей стороны. Группа правил может использоваться более чем одним приложением проверяющей стороны, и приложения проверяющей стороны могут ссылаться на несколько групп правил.
Когда ACS получает запрос маркера или маркер от поставщика удостоверений, он проходит через все группы правил, связанные с приложением проверяющей стороны, для обработки утверждений в маркере. Все группы правил выполняются одновременно, как и все правила в каждой группе правил (порядок не имеет значения). Если правила приводят к изданию любых новых утверждений после завершения выполнения, то группы правил, связанные с проверяющей стороной приложения, запускаются снова. Процесс запуска группы правил и групп правил останавливается, когда новые утверждения не выдаются после завершения процесса выполнения или после завершения ACS десяти запусков (в зависимости от того, что происходит первым).
Группы правил и правила можно создавать и изменять вручную с помощью портала управления ACS или программно с помощью службы управления ACS.
Настройка правил с помощью портала управления ACS
Создание группы правил
При добавлении и настройке свойств нового приложения проверяющей стороны на портале управления ACS можно также создать группу правил, связанную с этим приложением проверяющей стороны, так как по умолчанию параметр "Создать новую группу правил " установлен на странице добавления приложения проверяющей стороны на портале управления ACS. Настоятельно рекомендуется не снимать этот флажок, чтобы создавать группу правил по умолчанию для нового приложения проверяющей стороны. (Дополнительные сведения см. в разделе "Группы правил" в приложениях проверяющей стороны.) Вы также можете добавить группы правил с помощью раздела "Группы правил" на портале управления ACS. Далее при добавлении приложений проверяющей стороны с использованием страницы Добавление приложений проверяющей стороны можно связывать их с одной или несколькими существующими группами правил.
Создание правил
После создания группы правил можно использовать страницу "Изменить группу правил " на портале управления ACS для автоматического создания правил. Если принято решение создавать правила автоматически, вам будет предложено выбрать поставщиков удостоверений, для которых необходимо создать правила. Если группа правил связана с одним или несколькими приложениями проверяющей стороны, поставщики удостоверений, используемые в этих приложениях проверяющей стороны, выбираются по умолчанию.
Примечание
Для поставщиков удостоверений WS-Federation правило создается для каждого типа утверждения, который предлагается в метаданных поставщика удостоверений WS-Federation, и это правило проходит через этот тип и значение утверждения. Для других поставщиков удостоверений правила прохождения создаются на основе списка предопределенных типов утверждений.
Просмотр, добавление и изменение правил
На странице "Изменение группы правил " на портале управления ACS отображаются все правила в таблице, в которых столбцы содержат выходное утверждение для правила, издатель утверждений (может быть поставщиком удостоверений или ACS) и описанием.
При выборе данного правила в таблице происходит перенаправление на страницу Изменение правила утверждения, на которой это правило можно изменить. Чтобы добавить новое правило вручную, можно нажать Добавить.
Правила утверждений
Правила утверждений описывают логику преобразования входных утверждений в исходящие утверждения ACS. Правила содержатся в группах правил, которые связаны с приложениями проверяющей стороны и выполняются всякий раз, когда маркер выдан ACS для приложения. Если группа правил не содержит правил, маркер для приложения проверяющей стороны не издается. Как правило, требуется одно правило для каждого типа утверждения, которое необходимо издать для приложения проверяющей стороны. Можно создавать и использовать только одно правило для прохождения всех типов и значений утверждений. При этом при использовании одного правила на каждый тип утверждений повышается безопасность и предоставляется больший контроль над данными, которые передаются в приложение.
В ACS можно настроить правило для передачи утверждения, полученного от поставщика удостоверений или клиента, в приложение проверяющей стороны без изменения типа утверждения, издателя или значения. Такие правила называются правилами сквозного прохождения. Например, токены, выданные Windows Live ID (учетная запись Майкрософт), содержат тип утверждения nameidentifier. Чтобы передать это утверждение в приложение проверяющей стороны без изменений, необходимо настроить сквозное правило, которое обрабатывает тип утверждения input nameidentifier от издателя утверждения, Windows Live ID и создает идентичное выходное утверждение.
В таблице ниже показаны утверждения, передаваемые через вымышленного поставщика удостоверений AD FS 2.0 с именем Contoso.com.
Входящие утверждения | Исходящие утверждения | ||||
---|---|---|---|---|---|
Издатель |
Тип |
Значение |
Издатель |
Тип |
Значение |
Contoso.com |
https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier |
123456789 |
Служба контроля доступа |
https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier |
123456789 |
Contoso.com |
https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress |
john@contoso.com |
Служба контроля доступа |
https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress |
john@contoso.com |
Contoso.com |
https://schemas.xmlsoap.org/ws/2005/05/identity/claims/name |
John Doe |
Служба контроля доступа |
https://schemas.xmlsoap.org/ws/2005/05/identity/claims/name |
John Doe |
Обработчик правил ACS также предоставляет возможность преобразовывать входные утверждения в совершенно разные выходные утверждения на основе издателя утверждений, типа входных утверждений и значения. Другими словами, обработчик правил ACS позволяет преобразовывать входные токены в различные выходные маркеры, добавляя, удаляя или изменяя утверждения, содержащиеся в маркерах. Эта форма преобразования утверждений делает ACS способным реализовать базовую авторизацию на основе входных значений утверждений. В приведенном ниже примере показан тип утверждения «role» со значением «administrator», которое является исходящим, если входящее утверждение «nameidentifier» совпадает с конкретным значением.
Входящие утверждения | Исходящие утверждения | ||||
---|---|---|---|---|---|
Издатель |
Тип |
Значение |
Издатель |
Тип |
Значение |
Contoso.com |
https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier |
123456789 |
Служба контроля доступа |
https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier |
administrator |
Обработчик правил ACS также предоставляет возможность создавать выходные утверждения на основе сочетания двух входных утверждений. В приведенном ниже примере исходящее утверждение относится к типу «action» со значением «write», если входящие утверждения «nameidentifier» и «role» от Contoso.com соответствуют конкретным значениям. Если в правиле указаны два входящих утверждения, для формирования исходящего утверждения оба значения должны совпадать.
Входящие утверждения | Исходящие утверждения | ||||
---|---|---|---|---|---|
Издатель |
Тип |
Значение |
Издатель |
Тип |
Значение |
Contoso.com |
https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier |
123456789 |
Служба контроля доступа
|
https://schemas.xmlsoap.org/ws/2005/05/identity/claims/action
|
запись
|
Contoso.com |
https://schemas.xmlsoap.org/ws/2005/05/identity/claims/role |
administrator |
Дополнительные сведения и инструкции по реализации преобразования маркеров с помощью правил см. в разделе "Практическое руководство. Реализация логики преобразования маркеров с помощью правил".
При добавлении новых или изменении существующих правил утверждений на портале управления ACS необходимо настроить следующие параметры:
Условия правила (если) — добавление входящего утверждения
В этом разделе содержатся условия, которые должны соблюдаться для правила, чтобы издать исходящее утверждение. К этим условиям относятся:
Издатель утверждений — относится к сущности, которая издала входящее утверждение. Это может быть настроенный поставщик удостоверений (например, ) или ACS. ACS — это издатель, если входное утверждение поступает из удостоверения службы или входного утверждения поступает из другого правила утверждения. Дополнительные сведения см. в разделе "Удостоверения службы".
Тип входящего утверждения — относится к типу входящего утверждения, полученному от издателя утверждений. Например, полный тип утверждения для "nameidentifier" имеет значение https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier. В число параметров данного поля входят:
Любой — возвращает значение true, если от издателя получен какой-либо тип утверждения.
Выберите тип — возвращает значение true, если тип входящего утверждения соответствует типу, выбранному в раскрывающемся меню. Это меню заполняется типами утверждений, доступными для выбранного издателя утверждений.
Введите тип — возвращает значение true, если тип входящего утверждения соответствует точному значению, введенному в это поле.
Важно!
Это поле учитывает регистр.
Значение входящего утверждения — возвращает значение полученного входящего утверждения. Например, тип утверждения «nameidentifier» использует адрес электронной почты как его значение, а это поле можно использовать для проверки определенного адреса электронной почты. В число параметров данного поля входят:
Любое —возвращает значение true, если от издателя получено какое-либо значение утверждения.
Введите значение —возвращает значение true, если тип входящего утверждения соответствует точному значению, введенному в поле. Этот параметр требует, чтобы определенный тип входящего утверждения был выбран или введен в поле Тип входящего утверждения.
Важно!
Это поле учитывает регистр.
Условия правила (если) — добавление второго входящего утверждения
Чтобы добавить второе утверждение к правилу, нажмите Добавить второе входящее утверждение. Это позволяет указать дополнительные условия, показанные ниже. Обратите внимание, что в правиле с двумя входящими утверждениями все условия должны иметь значения true для создания исходящего утверждения.
Издатель утверждений — относится к сущности, которая издала второе входящее утверждение. Это может быть тот же поставщик удостоверений, выбранный для первого утверждения, или это может быть ACS. Выберите ACS, чтобы указать утверждения, созданные из других правил утверждений во время обработки правил.
Важно!
Невозможно выбрать два разных поставщика удостоверений для первого и второго утверждения, так как одновременно обработка правил происходит только для одного маркера, выданного поставщиком удостоверений.
Тип входящего утверждения — относится к типу входящего утверждения, полученному от издателя утверждений. Например, полный тип утверждения для "nameidentifier" имеет значение https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier. В число параметров данного поля входят:
Выберите тип — возвращает значение true, если тип входящего утверждения соответствует типу, выбранному в раскрывающемся меню. Это меню заполняется типами утверждений, доступными для выбранного издателя утверждений.
Введите тип — возвращает значение true, если тип входящего утверждения соответствует точному значению, введенному в это поле.
Важно!
Это поле учитывает регистр.
Значение входящего утверждения — возвращает значение полученного входящего утверждения. Например, тип утверждения «nameidentifier» использует адрес электронной почты как его значение, а это поле можно использовать для проверки определенного адреса электронной почты. Возвращает значение true, если тип входящего утверждения соответствует точному значению, введенному в поле.
Важно!
Это поле учитывает регистр.
Действия правила (то)
В этом разделе указывается выходное утверждение, выданное ACS, если условия в разделе If правила имеют значение true. К параметрам исходящего утверждения относятся следующие:
Тип выходного утверждения — тип утверждения, выданный ACS. В число параметров данного поля входят:
Передавать тип входящего утверждения — издает исходящее утверждение того же типа, что и входящее утверждение.
Выберите тип — издает исходящее утверждение указанного типа. Раскрывающееся меню содержит список распространенных типов утверждений.
Введите тип — издает утверждение введенного типа. Если выходное утверждение должно присутствовать в токене SAML, это значение должно быть URI (например, https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier).
Важно!
Это поле учитывает регистр.
Значение утверждения вывода — указывает на значение выходного утверждения, выданного ACS. В число параметров данного поля входят:
Передавать значение входящего утверждения — издает исходящее утверждение со значением, равным значению входящего утверждения.
Введите значение — издает утверждение, которое имеет значение, введенное в этом поле. Этот параметр требует, чтобы определенный тип входящего утверждения был выбран или введен в поле Тип исходящего утверждения.
Важно!
Это поле учитывает регистр.
Сведения о правиле
Этот раздел можно использовать для создания описания правила.
Примечание
В ACS описания правил не создаются автоматически для созданных правил.
Настройка правил с помощью службы управления ACS
Правила в пространстве имен контроль доступа можно настроить программным способом с помощью службы управления ACS. Пример настройки правил с помощью ASP.NET см. в разделе "Пример кода: служба управления". Ниже приведены важные элементы, которые следует учитывать при использовании службы управления ACS для настройки правил.
При редактировании и удалении правил в группе правил рекомендуется сначала запросить ACS для всех правил в этой группе правил и использовать идентификаторы правил, возвращаемые запросом для выполнения операций редактирования или удаления. Не рекомендуется хранить идентификаторы, возвращенные службой управления для будущих операций, так как нет гарантии в их сохранении.
При написании логики автоматического повтора для создания правил (например, как в событии истечения времени ожидания) рекомендуется сначала запрашивать существование идентичного правила в текущей группе правил перед тем, как пытаться добавить его во второй раз.