Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе рассматриваются различные аспекты, связанные с федеративными приложениями, границами доверия и конфигурацией, а также использованием выданных маркеров в Windows Communication Foundation (WCF).
Службы, службы токенов безопасности и доверительные отношения
Сервисы, предоставляющие федеративные конечные точки, обычно ожидают, что клиенты будут проходить аутентификацию с помощью токена, предоставленного конкретным издателем. Важно, чтобы служба была настроена с правильными учетными данными издателя; В противном случае он не сможет проверить подписи по выданным маркерам, и клиент не сможет взаимодействовать со службой. Дополнительные сведения о настройке учетных данных издателя в службе см. в разделе Практическое руководство: Настройка учетных данных в службе федерации.
Аналогичным образом, при использовании симметричного ключа ключи шифруются для целевой службы, поэтому необходимо настроить службу маркеров безопасности с правильными учетными данными для целевой службы; В противном случае не удается зашифровать ключ для целевой службы, и снова клиент не сможет взаимодействовать со службой.
Службы WCF используют значение свойства MaxClockSkew в SecurityBindingElement, чтобы разрешить отклонение часов между клиентом и службой. В федерации параметр MaxClockSkew применяется к отклонению часов между клиентом и службой безопасности токенов, из которой клиент получил выданный токен. Таким образом, службы токенов безопасности не должны учитывать погрешность времени при настройке действительного и истечения срока действия выданного токена.
Замечание
Важность отклонений часов увеличивается по мере сокращения времени существования выданного токена. В большинстве случаев отклонение часов не является важной проблемой, если время существования токена составляет 30 минут или больше. Сценарии с более коротким временем существования или с точным временем действия маркера должны быть разработаны для учета временного отклонения времени.
Федеративные конечные точки и Time-Outs
Когда клиент взаимодействует с федеративной конечной точкой, он должен сначала получить соответствующий маркер из службы маркеров безопасности. Если служба маркеров безопасности предоставляет федеративную конечную точку, клиент должен сначала получить маркер от издателя для этой конечной точки. Каждое получение маркера занимает время, и это время подлежит общему тайм-ауту для отправки фактического сообщения в конечную точку.
Например, время ожидания на клиентском канале равно 30 секундам. Перед отправкой сообщения в конечную точку необходимо обратиться к двум эмитентам токенов, причем каждому требуется 15 секунд для выдачи токена. В этом случае попытка завершится ошибкой, и выбрасывается исключение TimeoutException. Таким образом, необходимо установить значение OperationTimeout на клиентском канале достаточной величины, чтобы учитывать время, необходимое для получения всех выданных токенов. Если для OperationTimeout свойства не указано значение, необходимо задать достаточно большое значение для OpenTimeout или SendTimeout свойства (или обоих), чтобы включить время, затраченное на получение всех выданных токенов.
Время существования токена и продление
Клиенты WCF не проверяют выданный маркер при первоначальном запросе к службе. На самом деле, WCF доверяет службе токенов безопасности для выдачи токена с соответствующими временем начала и окончания действия. Если маркер кэшируется клиентом и повторно используется, время существования маркера проверяется на последующих запросах, а клиент автоматически обновляет маркер при необходимости. Дополнительные сведения о кэшировании маркеров можно найти в разделе "Как создать федеративного клиента".
Указание короткого времени существования, в течение 30 секунд или меньше, для выданных маркеров или маркеров контекста безопасности может привести к истечению времени ожидания переговоров или к другим исключениям, создаваемым клиентами WCF при запросе выданных маркеров, согласовании или обновлении маркеров контекста безопасности.
Выданные токены и InclusionMode
Сериализуется ли выданный маркер в сообщении, отправляемом клиентом в федеративную конечную точку или не контролируется путем задания InclusionMode свойства SecurityTokenParameters класса. Это свойство можно задать для одного из SecurityTokenInclusionMode значений перечисления, но это не полезно в большинстве федеративных сценариев. Значения SecurityTokenInclusionMode.Never и SecurityTokenInclusionMode.AlwaysToInitiator заставляют клиента отправить ссылку на маркер, выданный службой маркеров безопасности доверяющей стороне. Если проверяющая сторона не имеет копию выданного токена, проверка подлинности завершится ошибкой, так как ссылка на токен не может быть разрешена. WCF обрабатывает SecurityTokenInclusionMode.Once как эквивалент SecurityTokenInclusionMode.AlwaysToRecipient.