Это по причинам оптимизации.
диапазон () создаст список значений от запуска для окончания (0.. 20 в Вашем примере). Это станет дорогой операцией на очень больших спектрах.
xrange (), с другой стороны, намного более оптимизирован. это только вычислит следующее значение при необходимости (через объект последовательности xrange) и не создает список всех значений как диапазон (), делает.
Я не уверен, что ваш вариант использования полностью совпадает с тем, что делает SAML 2.0.
То, что вы описываете как свои бизнес-правила, на самом деле выглядит как вариант использования для обеспечения идентификации, а не доступа
Стандартные варианты использования SAML 2.0 сфокусированы на том, что одна сторона утверждает идентичность (провайдер идентификации), а другая сторона (или стороны) полагается на эти утверждения (поставщик услуг). Утверждения несут так называемый идентификатор имени, использование которого согласовывается заранее между поставщиком удостоверений и поставщиком услуг.
Эти идентификаторы имени могут быть практически любыми, но в целом они делятся на две категории: временные и постоянные. Идентификатор временного имени полезен только в контексте текущего сеанса (и по сути только говорит: «Я знаю, кто этот человек» ) и, как правило, используется для защиты личности принципала, разрешая при этом привилегированный доступ определенного типа. Постоянный идентификатор может быть либо непрозрачным (аналогично тому, как OpenID используется для доступа к SO), когда подтверждающая сторона может повторно проверять идентичность принципа, не раскрывая свою идентичность, при этом поддерживая динамический, но стабильный общий идентификатор между подтверждающей и полагающейся сторонами, либо более существенные, такие как имя участника-пользователя Active Directory (которое может быть согласовано заранее).
Когда дело доходит до паролей, как вы упоминаете в своем вопросе, поставщик услуг (доверяющая сторона) никогда не видит пароль пользователя. Поставщик услуг передает пользователя поставщику удостоверений с запросом аутентификации. Поставщик идентификации отправляет пользователя обратно поставщику услуг с ответом, который в случае успешной аутентификации содержит утверждение об идентичности пользователя в контексте отношений между поставщиком удостоверений и поставщиком услуг.
В контексте вашего вопроса важно то, что SAML 2.0 не предоставляет способ либо создать локальную учетную запись пользователя «приложения», либо связать эту локальную учетную запись пользователя с федеративным удостоверением. Это просто не та проблема, которую пытается решить SAML 2.0.
А теперь вернемся к вашим бизнес-правилам ...
Мне кажется, что вы пытаетесь сделать либо привязку учетной записи, либо регистрацию - я бы подошел это выглядит так:
Что касается содержания сообщений ...
Технический комитет служб безопасности OASIS имеет доступный для загрузки zip-файл с обширной документацией по частям XML-схемы, включая примеры. Также стоит прочитать документацию по протоколу и профилю, поскольку они описывают поток сообщений между сторонами, участвующими в разговоре об идентичности.
Вокруг плавает большое количество презентаций, которые я считаю очень полезными. В частности, SAML v2.0 Basics от Eve Maler помог мне начать понимать, какие проблемы SAML v2.0 пытается решить. Эта презентация включает примеры того, как выглядят утверждения. Обновленная презентация и ссылки на дополнительные ресурсы на saml.xml.org .
Я не уверен, что это поможет, поскольку ваш вариант использования, похоже, не подходит что пытается сделать SAML 2.0. При необходимости вы можете добавлять атрибуты и расширения к запросам и ответам, но я не вижу, чтобы многие поставщики удостоверений что-либо делали с этими атрибутами и ответами.