Contest.xml:oauth rule

From EjudgeWiki

Навигация: Главная страница/Система 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.