Difference between revisions of "Contest.xml:oauth rule"

From EjudgeWiki
 
(...)
 
Line 1: Line 1:
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[contest.xml]]/<tt>[[contest.xml:oauth_rule|oauth_rule]]</tt>
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[contest.xml]]/<tt>[[contest.xml:oauth_rule|oauth_rule]]</tt>
 +
 +
{|
 +
| '''Имя элемента''':  || <code>'''oauth_rule'''</code> ||
 +
|-
 +
|  '''Содержится в:'''    || <code>[[contest.xml:oauth_rules|oauth_rules]]</code>  ||
 +
|-
 +
| '''Может содержать:''' || нет ||
 +
|-
 +
| '''Атрибуты:'''  ||  <code>domain</code>, <code>allow</code>, <code>deny</code>, <code>strip_domain</code>, <code>disable_emain_check</code> ||
 +
|-
 +
| '''Тип содержимого:''' || нет ||
 +
|-
 +
|'''Может отсутствовать:''' || ''да'' ||
 +
|-
 +
|'''Может повторяться:''' || ''нет'' ||
 +
|}
 +
 +
'''Описание.'''
 +
Данные элемент задает правила, ограничивающие вход в турнир
 +
с помощью аутентификации по OAUTH2.
 +
 +
Предполагается, что oauth-идентификатор пользователя либо является
 +
адресом его электронной почты, либо похож на адрес, то есть имеет
 +
вид <code>USER@DOMAIN</code>.
 +
 +
Последовательность правил, задаваемая элементами
 +
<code>oauth_rule</code>, проверяется последовательно.
 +
Если правило не подходит, происходит переход ко следующему правилу.
 +
Если правило подходит, выполняются действия, заданные в этом правиле,
 +
и просмотр правил заканчивается. Если ни одно правило не подходит,
 +
считается, что данному пользователю вход разрешен,
 +
и oauth-идентификатор пользователя является его логином в ejudge.
 +
 +
Атрибут <code>domain</code> определяет домен (часть <code>DOMAIN</code>
 +
в oauth-идентификаторе пользователя), для которого применимо данное правило.
 +
Если атрибут пуст, правило применимо к любому домену.
 +
 +
Булевские атрибуты <code>allow</code> и <code>deny</code> позволяют
 +
задать действие, которое выполняется, если правило
 +
применимо: в случае <code>allow</code> разрешается вход в данный
 +
турнир, а в случае <code>deny</code> &mdash; запрещается.
 +
 +
Булевский атрибут <code>strip_domain</code> позволяет задать,
 +
что логин в ejudge &mdash; это только часть <code>USER</code>
 +
oauth-идентификатора пользователя, то есть логин в ejudge
 +
получается отбрасываеним домена.
 +
 +
Булевский атрибут <code>disable_emain_check</code>
 +
отменяет проверку на то, что адрес электронной почты
 +
у пользователя совпадает с его логином. Атрибут действует
 +
только в случае, когда не установлен атрибут <code>strip_domain</code>.
 +
 +
Пример конфигурации входа по oauth:
 +
 +
<oauth_rules>
 +
  <oauth_rule domain="school.ru" allow="yes" strip_domain="yes" />
 +
  <oauth_rule domain="" deny="yes" />
 +
</oauth_rules>
 +
 +
Эти правила разрешают вход в турнир для OAUTH2 пользователей
 +
вида <code>user@company.com</code>, причем логин в ejudge
 +
этих пользователей &mdash; просто <code>user</code>.
 +
Для прочих пользователей вход запрещен.
 +
 +
[[Аутентификация с помощью OAUTH2]]
 +
 +
Поддерживается с версии [[изменения в версии 3.9.0|3.9.0]].

Latest revision as of 20:29, 23 December 2021

Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/contest.xml/oauth_rule

Имя элемента: oauth_rule
Содержится в: oauth_rules
Может содержать: нет
Атрибуты: domain, allow, deny, strip_domain, disable_emain_check
Тип содержимого: нет
Может отсутствовать: да
Может повторяться: нет

Описание. Данные элемент задает правила, ограничивающие вход в турнир с помощью аутентификации по OAUTH2.

Предполагается, что oauth-идентификатор пользователя либо является адресом его электронной почты, либо похож на адрес, то есть имеет вид USER@DOMAIN.

Последовательность правил, задаваемая элементами oauth_rule, проверяется последовательно. Если правило не подходит, происходит переход ко следующему правилу. Если правило подходит, выполняются действия, заданные в этом правиле, и просмотр правил заканчивается. Если ни одно правило не подходит, считается, что данному пользователю вход разрешен, и oauth-идентификатор пользователя является его логином в ejudge.

Атрибут domain определяет домен (часть DOMAIN в oauth-идентификаторе пользователя), для которого применимо данное правило. Если атрибут пуст, правило применимо к любому домену.

Булевские атрибуты allow и deny позволяют задать действие, которое выполняется, если правило применимо: в случае allow разрешается вход в данный турнир, а в случае deny — запрещается.

Булевский атрибут strip_domain позволяет задать, что логин в ejudge — это только часть USER oauth-идентификатора пользователя, то есть логин в ejudge получается отбрасываеним домена.

Булевский атрибут disable_emain_check отменяет проверку на то, что адрес электронной почты у пользователя совпадает с его логином. Атрибут действует только в случае, когда не установлен атрибут strip_domain.

Пример конфигурации входа по oauth:

<oauth_rules>
  <oauth_rule domain="school.ru" allow="yes" strip_domain="yes" />
  <oauth_rule domain="" deny="yes" />
</oauth_rules>

Эти правила разрешают вход в турнир для OAUTH2 пользователей вида user@company.com, причем логин в ejudge этих пользователей — просто user. Для прочих пользователей вход запрещен.

Аутентификация с помощью OAUTH2

Поддерживается с версии 3.9.0.