Роль обработчика утверждений
На самом высоком уровне подсистема утверждений в службах федерации Active Directory (AD FS) — это механизм на основе правил, предназначенный для обслуживания и обработки запросов утверждений для службы федерации. Обработчик утверждений является единственной сущностью в службе федерации, которая отвечает за выполнение всех наборов правил во всех настроенных вами федеративных отношений доверия и передачу результатов конвейеру утверждений.
Хотя конвейер утверждений является более логической концепцией комплексного процесса потоков утверждений, правила утверждений являются фактическим административным элементом, который можно использовать для настройки потока утверждений во время процесса выполнения правил утверждений. Дополнительные сведения о процессе конвейера см. в разделе Роль конвейера утверждений.
Как показано на следующем рисунке, действие принятия входящих утверждений (правил принятия), авторизация запрашивающих утверждений (правила авторизации) и выдача исходящих утверждений (правил выдачи) с помощью правил утверждения во всех федеративных отношениях доверия в вашей организации выполняется подсистемой утверждений.
Процесс выполнения правил обработки требований
При настройке доверия поставщика утверждений или доверия проверяющей стороны в вашей организации с использованием правил утверждений, наборы правил для этого доверия работают как контроллер для входящих утверждений. Они вызывают механизм обработки утверждений, чтобы применять необходимую логику в правилах и решать, выдавать ли какие-либо утверждения и какие именно утверждения выдавать.
В следующем разделе описаны все шаги, которые происходят движком во время процесса обработки утверждений через выполнение правил обработки утверждений. Каждый из шагов, описанных ниже, выполняется для каждого этапа, описанного в процессе конвейера утверждений. К этим действиям относятся:
Шаг 1. Инициализация
Шаг 2. Выполнение
Шаг 3. Результат выполнения
Дополнительные сведения о процессе конвейера см. в разделе Роль процесса обработки заявок.
Шаг 1. Инициализация
На первом этапе процесса выполнения правил обработки утверждений система обработки принимает поступающие утверждения, добавляя их сначала в набор входных утверждений . Входной набор утверждений аналогиен кэшу в памяти, который используется для временного хранения данных, только если требуется, чтобы данные были доступны для получения. Входные данные набора утверждений удаляются после завершения выполнения правила.
Добавление утверждения в набор входных утверждений для набора правил
Входной набор утверждений создается обработчиком утверждений, когда он должен временно хранить данные утверждений в памяти во время обработки логики, связанной с набором правил утверждений. Подсистема утверждений копирует все входящие утверждения в входной набор утверждений, где их можно получить с помощью первого правила в наборе правил.
Например, на рисунке ниже обработчик утверждений считывает утверждения A и B из входящих утверждений и копирует их в входной набор утверждений. После того как они находятся в входном наборе утверждений, обработчик утверждений извлекает и обрабатывает утверждения A и B в качестве входных данных логики в первом правиле в наборе правил утверждений.
Все правила в наборе правил утверждений используют один и тот же набор входных утверждений. Каждое правило в этом наборе может добавляться в общий набор утверждений ввода, что влияет на все последующие правила в наборе.
Шаг 2. Выполнение
На этом этапе процесса обработки правил утверждений, правила обрабатываются, когда механизм обработки утверждений последовательно проходит через каждое правило в рамках определенного набора правил поочередно. Каждое правило в наборе правил выполняется только один раз и выполняется в том порядке, в котором они отображаются сверху вниз, как показано в диалоговом окне "Изменение правил утверждений" в оснастке управления AD FS. Правило утверждения, которое находится в верхней части набора правил, обрабатывается сначала, а затем последующие правила обрабатываются до тех пор, пока все правила не будут запущены.
Как определено в языке правил утверждения, правило утверждения состоит из двух частей: условия и утверждения о выдаче. Обработчик утверждений сначала обрабатывает часть условия, используя данные во входном наборе утверждений, чтобы определить, выполняется ли условие, указанное в правиле, для утверждений, содержащихся в этом наборе (утверждения, которые соответствуют условию правила, называются соответствующими условиям утверждениями). Если обнаружены соответствующие утверждения, обработчик утверждений выполняет инструкцию выдачи правила для каждого набора соответствующих утверждений. Заявление о выдаче правила может выполнять каждую из следующих задач с соответствующими утверждениями.
Копирование соответствующего утверждения в выходной набор утверждений
Преобразуйте поля утверждений и создайте новое утверждение либо только в наборе входных утверждений, либо в наборах утверждений оценки и выходных утверждений.
Используйте соответствующие утверждения в качестве ключа для поиска дополнительных сведений из хранилища атрибутов, чтобы создать новые утверждения только в наборе входных утверждений или в наборах входных и выходных утверждений.
Добавление утверждения в выходной набор утверждений для набора правил
Набор утверждений — это расположение в памяти, которое изначально пусто, и важно, так как обработчик утверждений вернет только утверждения, находящиеся в выходном наборе утверждений после завершения процесса выполнения. Это означает, что все утверждения, которые находятся только в наборе входных утверждений, а не в выходном наборе утверждений, будут игнорироваться, когда приходит время вычислить окончательный набор исходящих утверждений.
Добавление утверждения в оба комплекта утверждений для набора правил
Как правило, утверждения либо добавляются только во входной набор утверждений, либо в оба набора — входной и выходной, в зависимости от положения, указанного в инструкции выдачи правила. Язык правил утверждений обозначает эти инструкции как добавление или выпуск.
Если используется инструкция добавления, утверждения добавляются только в набор входных утверждений, и утверждения будут существовать только в целях выполнения и перестают существовать после завершения выполнения. Если используется инструкция о проблеме, утверждения добавляются как в набор входных утверждений, так и в выходной набор утверждений, а утверждения будут возвращены в выходном утверждении после завершения выполнения. Дополнительные сведения об этих утверждениях см. в разделе Роль языка правил утверждений.
Если часть условия правила в наборе правил не соответствует ни одному утверждению в входном наборе утверждений, инструкция выдачи игнорируется, и поэтому никакие утверждения не добавляются в выходной набор утверждений или в набор входных утверждений. На следующем рисунке и соответствующих шагах показано, что происходит, когда обработчик утверждений выполняет правило преобразования:
Входящие утверждения добавляются в входные утверждения, заданные обработчиком утверждений.
При выполнении первого правила он видит утверждения A и B, которые находятся в тот момент времени только в входном наборе утверждений и обрабатывает условную часть логики правила в правиле 1.
Так как утверждение A присутствует в входном наборе утверждений, условие правила определяется как true (совпадающее с утверждением A), так и новое утверждение C добавляется как к набору входных утверждений, так и к набору выходных утверждений.
Правило 2 теперь может использовать утверждения A, B и C (все утверждения в наборе входных утверждений) в качестве входных данных для обработки логики.
Дополнительные сведения о преобразовании утверждений можно найти в Когда следует использовать правило преобразования утверждений.
Шаг 3. Результат выполнения
Завершающий этап выполнения набора правил утверждений начинается после выполнения всех правил в заданном наборе правил, а окончательный набор утверждений присутствует в выходном наборе утверждений. На этом этапе обработчик утверждений возвращает контекст выходного утверждения, заданного в качестве выходных данных выполнения набора правил. С этого момента процесс обработки заявок берет на себя и перемещает итоговые результаты на следующий этап в своем процессе.
Отправка выходных данных выполнения в конвейер обработки требований
Когда обработчик утверждений обрабатывает набор правил, этот набор правил имеет собственные выделенные расположения в памяти для наборов входных и выходных утверждений. Это означает, что наборы входных и выходных утверждений, используемые одним набором правил, отличаются от входных и выходных наборов утверждений, используемых в другом наборе правил.
После выполнения всего процесса для заданного набора правил (шаги 1, 2 и 3) только что выданные исходящие утверждения (содержимое выходного набора утверждений) будут использоваться в качестве входных данных для следующего набора правил в конвейере утверждений. Это позволяет утверждениям передаваться из выходных данных одного набора правил в входные данные для другого набора правил, как показано на следующем рисунке.
роли AD FS
Примечание.
Хотя набор правил выдачи также является критическим этапом в конвейере, он не показан на иллюстрации выше только для упрощения представления. Иллюстрация, показывающая набор правил выдачи и способ его интеграции в конвейер утверждений, см. в разделе Роль конвейера утверждений.
В этом случае выходные данные правил принятия используются конвейером для потока окончательного набора утверждений, созданных правилами принятия на второй этап конвейера, который является обработкой правил авторизации. На этом этапе весь процесс выполнения правил утверждений (шаги 1, 2 и 3 выше) будет выполняться снова для набора правил авторизации. Этот цикл продолжается до тех пор, пока не будет завершен набор правил выдачи (последний этап в конвейере).
После того как завершенные исходящие утверждения будут возвращены из модуля набора правил выдачи, они будут упакованы в токен SAML, а Федеративная служба отправит токен обратно клиенту.
Обработка правил авторизации
Если набор правил утверждений, выполняемый на шаге 2 процесса выполнения правил утверждений, состоит из правил авторизации (которые имеют разные наборы утверждений ввода и вывода, отличные от правил принятия или выдачи), эти правила авторизации будут выполняться, чтобы определить, разрешен ли запрашивающий токен получать безопасный токен для определенной стороны, полагающейся на службу федерации на основе заявок запрашивающего.
Целью правил авторизации является выдача разрешения или отказ в выдаче утверждения в зависимости от того, должен ли пользователь получить токен для этого объекта доверия или нет. Как показано на следующем рисунке, выходные данные выполнения авторизации используются конвейером для определения того, выполняется ли набор правил выдачи( в зависимости от наличия или отсутствия разрешения и (или) запрета утверждения, но сам результат выполнения авторизации не используется в качестве входных данных для набора правил утверждения.
Дополнительные сведения о запросах на авторизацию см. в разделе Когда использовать правило утверждения авторизации.