Аутентификация және авторизация
Cloud ML Platform Python кітапханасы ұсынатын әдістердің көпшілігін пайдалану үшін қолжеткізу токенінің көмегімен авторизациядан өту қажет.
Қолжеткізу токендерінің (refresh-токендердің) қолданылу аймағын анықтайтын келесі рөлдердің бірі болады:
Пользователь. Бұл рөлдегі токен кітапханада қолжетімді әдістердің көпшілігін пайдалануға мүмкіндік береді.Администратор. Бұл рөлдегі токен кітапханада қолжетімді барлық әдістерді пайдалануға мүмкіндік береді. Мысалы, осы рөлдегі қолжеткізу токені арқылы басқа токендерді басқаруға болады.
Кітапхана әдістерінің анықтамалығында нақты әдісті шақыру үшін токенде қандай рөл болуы керектігі көрсетіледі.
Қолжеткізу құқықтарына байланысты токенді әртүрлі тәсілмен алуға болады:
- VK Cloud жеке кабинеті арқылы (әдетте
Администраторрөлі бар қолжеткізу токені); - Cloud ML Platform кітапханасы арқылы.
Егер пайдаланушының VK Cloud жеке кабинетіне қолжеткізуі болса, ол қолжеткізу токенін өз бетінше жасап, екі рөлдің бірін таңдай алады. Мұндай токеннің әрекет ету мерзімі шектелмейді.
-
VK Cloud жеке кабинетіне өтіңіз.
-
Токен жасау қажет жобаны таңдаңыз.
-
ML Platform → Токены бөліміне өтіңіз.
-
Создать токен доступа батырмасын басыңыз.
-
Ашылған терезеде токен параметрлерін көрсетіңіз:
- Название: кез келген мән болуы мүмкін.
- Роль: таңдалған рөл (
ПользовательнемесеАдминистратор).
-
Создать батырмасын басыңыз.
-
Ашылған терезеде токен мәнін көшіріп алып, құрылғыңызға сақтаңыз. Терезені жапқаннан кейін токен мәнін қалпына келтіру мүмкін болмайды. Егер ол жоғалса, жаңа токен жасаңыз.
-
Готово батырмасын басыңыз.
Егер пайдаланушының VK Cloud жеке кабинетіне қолжеткізуі болмаса, қолжеткізу токенін кітапхана арқылы тіркеу токенінің көмегімен жасауға болады:
-
Администраторрөлі бар қолжеткізу токенінің иесі кітапхана арқылы пайдаланушы үшін тіркеу токенін (register-токен) жасайды. Ол бір реттік және шектеулі өмір сүру уақытына (TTL) ие. Тіркеу токенінде қолжеткізу токенінің барлық параметрлері: атауы, рөлі, әрекет ету уақыты беріледі. -
Пайдаланушы тіркеу токені арқылы кітапханада әдістерді шақыру кезінде авторизациялау үшін қолжеткізу токенін (refresh-токен) жасайды. Қолжеткізу токенінің барлық параметрлерін әкімші тіркеу токенінде алдын ала белгілейді, оларды өзгертуге болмайды.
Тіркеу токені тек Cloud ML Platform кітапханасы арқылы жасалады.
-
Егер бұл әлі жасалмаса, кітапхананы орнатыңыз.
-
Егер бұл әлі жасалмаса,
Администраторрөлі бар қолжеткізу токенін жасаңыз. -
Python скриптін орындаңыз:
from mlplatform_client import MLPlatformfrom mlplatform_client.serializers.auth import MLPTokenTypeADMIN_REFRESH_TOKEN = "<ТОКЕН_АДМИНИСТРАТОРА>"mlp = MLPlatform(ADMIN_REFRESH_TOKEN)register_token = mlp.create_register_token(client_name="<ИМЯ_ТОКЕНА_ДОСТУПА>",access_ttl="<ВРЕМЯ_ЖИЗНИ_РЕГИСТРАЦИОННОГО_ТОКЕНА>",refresh_ttl="<ВРЕМЯ_ЖИЗНИ_ТОКЕНА_ДОСТУПА>",token_type=<РОЛЬ_ТОКЕНА_ДОСТУПА>)print(register_token)Мұнда:
-
<ТОКЕН_АДМИНИСТРАТОРА>:Администраторрөлі бар қолжеткізу токенінің мәні. -
client_name: осы тіркеу токені арқылы жасалатын қолжеткізу токенінің атауы. -
access_ttl: тіркеу токенінің өмір сүру уақыты, мысалы,2h45m30s. Әрекет ету мерзімі өткен тіркеу токенін қолжеткізу токенін жасау үшін пайдалану мүмкін болмайды. -
refresh_ttl: қолжеткізу токенінің өмір сүру уақыты, мысалы,2h. Егер бұл параметр көрсетілмесе, қолжеткізу токені мерзімсіз әрекет етеді. -
token_type: қолжеткізу токенінің рөлі:MLPTokenType.USERмәніПользовательрөліне сәйкес келеді;MLPTokenType.ADMINмәніАдминистраторрөліне сәйкес келеді.
Осы скрипт орындалғаннан кейін жасалған тіркеу қолжеткізу токенінің мәні шығарылады.
-
-
Басқа пайдаланушы берілген параметрлері бар қолжеткізу токенін жасау үшін пайдалана алуы үшін осы тіркеу токенін оған беріңіз.
-
Егер бұл әлі жасалмаса, кітапхананы орнатыңыз.
-
Сізде тіркеу токені бар екеніне көз жеткізіңіз. Егер ол жоқ болса,
Администраторрөлі бар қолжеткізу токенінің иесінен тіркеу токенін жасауды сұраңыз. -
Python скриптін орындаңыз:
from mlplatform_client import MLPlatformREGISTER_TOKEN = "<ЗНАЧЕНИЕ_РЕГИСТРАЦИОННОГО_ТОКЕНА>"mlp = MLPlatform()refresh_token = mlp.create_refresh_token(REGISTER_TOKEN)print(refresh_token)Осы скрипт орындалғаннан кейін жасалған қолжеткізу токенінің мәні шығарылады.
Қолжеткізу токенінің параметрлері (атауы, рөлі және әрекет ету уақыты) тіркеу токенімен анықталады.
-
Токен мәнін көшіріп алып, құрылғыңызға сақтаңыз.
-
Жеке кабинет арқылы немесе Cloud ML Platform кітапханасы арқылы қолжеткізу токенін жасаңыз.
Қандай әдістерді пайдалану жоспарланғанына байланысты белгілі бір рөлі бар қолжеткізу токені қажет болуы мүмкін. Кітапхана әдістерінің анықтамалығында нақты әдісті шақыру үшін токенде қандай рөл болуы керектігі көрсетіледі.
-
MLPlatform класының объектісін жасап, конструкторға алынған токеннің мәнін беріңіз.
Мысал:
from mlplatform_client import MLPlatformREFRESH_TOKEN = "<ЗНАЧЕНИЕ_ТОКЕНА_ДОСТУПА>"mlp = MLPlatform(REFRESH_TOKEN)
Енді осы объектіні пайдаланып, өзіңізге қажет әдістерді шақыра аласыз. Объектіні жасау кезінде көрсетілген токен әдісті шақыру кезінде авторизациялау үшін пайдаланылады.
Егер авторизация сәтсіз болса, ұқсас қате туралы хабар көрсетіледі:
-
Егер токен рөлі әдісті шақыру үшін жеткіліксіз болса:
mlplatform_client.core.exceptions.ForbiddenException: <Response [403]>. Info: {"status":403,"warnorCode":"ForbiddenException","warnorParams":{"field":"KtoTam token does not contain the following scopes: ['ml-platform:Manage']"}} -
Егер токеннің әрекет ету мерзімі өтіп кетсе:
mlplatform_client.core.exceptions.ForbiddenException: <Response [403]>. Info: {"status":403,"warnorCode":"ForbiddenException","warnorParams":{"field":"Forbidden"}}
Тек қолжеткізу токендерінің тізімін алуға болады. Жасалған тіркеу токендерінің тізімі жүргізілмейді.
- VK Cloud жеке кабинетіне өтіңіз.
- Токендер орналасқан жобаны таңдаңыз.
- ML Platform → Токены бөліміне өтіңіз.
Қазіргі сәтте пайдаланылып жатқан қолжеткізу токені туралы ақпаратты тек Cloud ML Platform кітапханасы арқылы алуға болады.
-
Егер бұл әлі жасалмаса, кітапхананы орнатыңыз.
-
Егер бұл әлі жасалмаса,
ПользовательнемесеАдминистраторрөлі бар қолжеткізу токенін пайдаланып авторизациялаңыз. -
Python скриптін орындаңыз:
from mlplatform_client import MLPlatformREFRESH_TOKEN = "<ТОКЕН_ДОСТУПА>"mlp = MLPlatform(REFRESH_TOKEN)token_info=mlp.who_am_i()print(token_info)Қазіргі уақытта пайдаланылып жатқан қолжеткізу токені туралы ақпарат шығарылады. Сәтті орындалған жағдайда шығару мысалы:
Token my-user-token:id: 8cdc3742-ХХХХtype: USERissuer_name: ХХХХ@example.ruexp: None
- VK Cloud жеке кабинетіне өтіңіз.
- Қажетті токен орналасқан жобаны таңдаңыз.
- ML Platform → Токены бөліміне өтіңіз.
- Қажетті токен үшін
батырмасын басып, Удалить тармағын таңдаңыз.
- Подтвердить батырмасын басыңыз.