Насколько нетехнический, насколько это возможно:
Если бы вы должны были что-то описать, кто вы есть, и что вам было разрешено видеть или делать, каждая из этих вещей была бы чем-то, что вы «утверждали» как истинное, и, таким образом, каждая «вещь» в этом списке была бы « Запрос".
Каждый раз, когда вы говорите кому-то что-то о себе или «утверждаете», что вам разрешено видеть или делать что-то, вы передаете им свой список требований. Они будут проверять с полномочиями, что ваши претензии верны, и если они верны, они будут верить чему-либо в этом списке претензий. Так что, если вы утверждаете, что вы Брэд Питт, в вашем списке утверждений говорится, что вы Брэд Питт, и это было подтверждено властью, что все ваши утверждения верны - тогда они будут верить, что вы Брэд Питт вместе с что-нибудь еще в этом списке.
Требуйте : то, что вы утверждаете, чтобы быть правдой. Это может быть фрагмент информации или описание разрешения, которое вы утверждаете получить. Система, в которую вы предъявляете свои претензии, должна только понимать, что такое претензия / означает, а также иметь возможность проверять ее в уполномоченном органе.
Авторитет : система, которая объединяет ваш список претензий и подписывает его, который в основном гласит: «На мой взгляд, все в этом списке верно». До тех пор, пока система, считывающая заявки, может подтвердить полномочиями, что подпись верна, все в списке заявок будет считаться подлинным и верным.
Кроме того, давайте не будем называть это «аутентификацией на основе утверждений», а давайте называть это «идентификацией на основе утверждений».
Чуть более технический:
Так что теперь в этом процессе вы аутентифицируетесь, используя какой-то механизм (имя пользователя / пароль, секрет клиента, сертификат и т. Д.), И это дает вам маркер, который подтверждает, что вы являетесь тем, кем вы себя называете. Затем вы обмениваете этот токен доступа на идентификационный токен. Этот процесс будет использовать вашу личность для поиска и создания списка претензий, его подписи, а затем вернет вам идентификационный токен, содержащий все ваши претензии.
Как разрешение шага , в зависимости от того, как он реализован, ресурс будет проверять ваш идентификационный токен (заявки) и затем проверять, есть ли у вас необходимые заявки для доступа к этому ресурсу.
Так, например, если ресурс «CastleBlack / CommandersTower» говорит, что «вы должны иметь доступ к замку черного и быть командиром лорда, то он рассмотрит ваш список претензий, чтобы проверить, верны ли обе эти вещи.
Как видите, «претензии» могут быть чем угодно. Это может быть роль, это может быть фактом, это может быть флаг. Это просто список пар ключ-значение, а «значение» является необязательным. Иногда просто посмотреть, существует ли претензия:
claims : [
{"type": "name", "value": "Jon Snow"},
{"type": "home", "value": "Winterfell, The North, Westeros"},
{"type": "email", "value": "jon@nightswatch-veterans.org"},
{"type": "role", "value": "veteran;deserter;"},
{"type": "department", "value": "none"},
{"type": "allowEntry", "value": "true"},
{"type": "access", "value": "castleblack;eastwatch;"}
]
Поэтому, если Джон войдет в систему и попытается получить доступ к ресурсу, описанному выше, ему будет отказано, потому что, хотя он является тем, кем он себя считает, и у него есть доступ к черному замку, он больше не является командиром лорда и не имеет явного доступа к нему. башня командира, и, таким образом, не может неявно войти в башню командира лорда.
В частности, «CastleBlack», вероятно, будет [большей] областью, и для каждой области будет определенное разрешение, но это другое обсуждение.
То, как каждое приложение работает с доступом, будет отличаться, но для этого будут использоваться претензии.