USING DJANGO OAUTH TOOLKIT LIBRARY IN DJANGO PYTHON
Neustroev A.1, Naumov R.2 ИСПОЛЬЗОВАНИЕ БИБЛИОТЕКИ DJANGO OAUTH TOOLKIT
В DJANGO PYTHON Неустроев А. В.1, Наумов Р. В.2
'Неустроев Айаал Васильевич /Neustroev Aiaal — студент;
2Наумов Родион Владимирович /Naumov Rodion — студент, кафедра информационных технологий, Институт математики и информатики Северо-Восточный федеральный университет им. М. К. Аммосова, г. Якутск
Аннотация: в статье предлагается описание языка Python. Описание и настройка Django. Описание использования библиотеки Django OAuth Toolkit в Django. Настройки конфигурационного файла проекта в Django. Ознакомление с командами настройки и управления проектами Python. Также подробное описание моделей OAuth Toolkit. OAuth Toolkit предоставление базовой реализации модели приложения, содержащего только данные, необходимые строго во всех процессах OAuth. Рассмотрение базовых классов и его полей, реализующий минимум для Django.
Abstract: the article offers a description of Python. Description and Django configuration. Description Jango use OAuth Toolkit library in Django. Configuration settings of the project file in Django. Introduction to the project configuration and management teams Python.Tak the detailed description of the models OAuth Toolkit. OAuth toolkit provide a basic implementation of the application model that contains only the data strictly necessary in all processes OAuth. Consideration of the basic classes and field implements at leastfor Django.
Ключевые слова: Python, Django, OAuth 2.0, авторизация. Keywords: Python, Django, OAuth Toolkit.
Python - высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой объём полезных функций [2].
Django - свободный программный каркас для веб-приложений на языке Python, использующий шаблон проектирования MVC. Проект поддерживается организацией Django Software Foundation.
Также, в отличие от других каркасов, обработчики URL в Django конфигурируются явно при помощи регулярных выражений, а не выводятся автоматически из структуры моделей контроллеров.
Для работы с базой данных Django использует собственный ORM, в котором модель данных описывается классами Python, и по ней генерируется схема базы данных.
OAuth - это открытый протокол для авторизации, который позволяет предоставить третьей стороне ограниченный доступ к защищённым ресурсам пользователя без необходимости передавать третьей стороне логин и пароль.
В ноябре 2006 года Блэйн Кук разработал протокол авторизации OAuth и первая версия OAuth 1.0 была разработана 4 декабря 2007 года. В 2010 году появилась вторая версия протокола OAuth 2.0, последняя версия которого в качестве в RFC 6749 опубликована в октябре 2012 года.
Протокол авторизации OAuth 2.0 используют для авторизации в Mail.Ru, Facebook и Google. Google рассматривает OAuth 2.0 как рекомендательный механизм аутентификации для всех своих API.
Для того чтобы установить библиотеку в проект Django, надо ввести в командную строку команду,
pip install django-oauth-toolkit
Потом надо в конфигурационном файле settings.py в параметре INSTALLED_APPS добавить строку 'oauth2_provider'. Далее надо в файле url.py в параметре urlpatterns добавить строку url(r'Ao/', include('oauth2_provider.urls', namespace='oauth2_provider')). После этого настройка библиотеки Django OAuth Toolkit завершится.
Модели
dass oauth2_provider.models.AbstractApplication(*args, **kwargs) -
экземпляр приложения представляет клиента на сервере авторизации. Обычно приложение создается вручную разработчиком после входа в систему на сервер авторизации. Поля:
client_id - идентификатор клиента, выдается во время процесса регистрации. user - исходный пользователь в Django.
redirect_uris - Список разрешенных URI, состоит из действительных URL-адресов. client_type - тип клиента.
authorization_grant_type - поток авторизации доступные для заявки. client_secret - Конфиденциальный ключ, выдается клиенту в процессе регистрации. name - имя для заявки.
default_redirect-uri - возвращает redirect_uri по умолчанию, извлекая первый элемент из redirect_uris.
redirect_uri_allowed(URI) - проверяет, является ли данный URL одним из элементов в redirect_uris.
class oauth2_provider.models.AccessToken(*args, **kwargs) -представляет собой фактический маркер доступа к ресурсам пользователя. Поля:
user - пользователь Django, представляющий владельца ресурсов. token - маркер доступа. application - экземпляр приложения.
expires - дата и время окончания срока маркера, в формате DateTime. scope - допустимые области применения.
allow_scopes(scopes) - проверка, если данный маркер позволяет предоставленные области видимости.
is_expired( ) - проверка маркера истечения срока действия с осознанием часовых поясов. is_valid(scopes=None) - проверяет, является ли маркер доступа действительным. revoke( ) - удалить этот маркер из базы данных.
scopes - возвращает словарь разрешенных имен области видимости(в качестве ключей) с их описаниями (как значения).
class oauth2_provider.models.Grant(*args, **kwargs) - представляет собой маркер с коротким временем жизни, который может быть выгружен на маркер доступа. Поля:
user - пользователь Джанго.
code - код авторизации генерируется сервером авторизации. application - экземпляр приложения. Остальные поля схожи с другими классами.
class oauth2_provider.models.RefreshToken(*args, **kwargs) - RefreshToken представляет собой маркер, который может быть заменен на новый маркер доступа [1].
Литература
1. Django. Подробное руководство / под ред. Адриан Головатый, Джейкоб Каплан. Мос. СПб.: Питер, 2010. 97 с.
2. Django By Example / под ред. Antonio Mele. Packt Publishing, 2015. 24 с.