VK Cloud logo

Аутентификация және авторизация

Cloud ML Platform Python кітапханасы ұсынатын әдістердің көпшілігін пайдалану үшін қолжеткізу токенінің көмегімен авторизациядан өту қажет.

Қолжеткізу токендерінің (refresh-токендердің) қолданылу аймағын анықтайтын келесі рөлдердің бірі болады:

  • Пользователь. Бұл рөлдегі токен кітапханада қолжетімді әдістердің көпшілігін пайдалануға мүмкіндік береді.
  • Администратор. Бұл рөлдегі токен кітапханада қолжетімді барлық әдістерді пайдалануға мүмкіндік береді. Мысалы, осы рөлдегі қолжеткізу токені арқылы басқа токендерді басқаруға болады.

Кітапхананың әдістер анықтамалығында нақты әдісті шақыру үшін токеннің қандай рөлі болуы керектігі көрсетілген.

Қолжеткізу құқықтарына байланысты токенді әртүрлі тәсілмен алуға болады:

  • VK Cloud жеке кабинеті арқылы (әдетте Администратор рөлі бар қолжеткізу токені);
  • Cloud ML Platform кітапханасы арқылы.

Жеке кабинетте қолжеткізу токенін жасау

Егер пайдаланушының VK Cloud жеке кабинетіне қолжеткізуі болса, ол қолжеткізу токенін өз бетінше жасап, екі рөлдің бірін таңдай алады. Мұндай токеннің әрекет ету мерзімі шектелмейді.

  1. VK Cloud жеке кабинетіне өтіңіз.

  2. Токен жасау қажет жобаны таңдаңыз.

  3. ML Platform → Токены бөліміне өтіңіз.

  4. Создать токен доступа батырмасын басыңыз.

  5. Ашылған терезеде токен параметрлерін көрсетіңіз:

    • Название: кез келген мән болуы мүмкін.
    • Роль: таңдалған рөл (Пользователь немесе Администратор).
  6. Создать батырмасын басыңыз.

  7. Ашылған терезеде токен мәнін көшіріп алып, құрылғыңызға сақтаңыз. Терезені жапқаннан кейін токен мәнін қалпына келтіру мүмкін болмайды. Егер ол жоғалса, жаңа токен жасаңыз.

  8. Готово батырмасын басыңыз.

Cloud ML Platform кітапханасы арқылы қолжеткізу токенін жасау

Егер пайдаланушының VK Cloud жеке кабинетіне қолжеткізуі болмаса, қолжеткізу токенін кітапхана арқылы тіркеу токенінің көмегімен жасауға болады:

  1. Администратор рөлі бар қолжеткізу токенінің иесі кітапхана арқылы пайдаланушы үшін тіркеу токенін (register-токен) жасайды. Ол бір реттік және шектеулі өмір сүру уақытына (TTL) ие. Тіркеу токенінде қолжеткізу токенінің барлық параметрлері: атауы, рөлі, әрекет ету уақыты беріледі.

  2. Пайдаланушы тіркеу токені арқылы кітапханада әдістерді шақыру кезінде авторизациялау үшін қолжеткізу токенін (refresh-токен) жасайды. Қолжеткізу токенінің барлық параметрлерін әкімші тіркеу токенінде алдын ала белгілейді, оларды өзгертуге болмайды.

Тіркеу токенін жасау

Тіркеу токені тек Cloud ML Platform кітапханасы арқылы жасалады.

  1. Егер бұл әлі жасалмаса, кітапхананы орнатыңыз.

  2. Егер бұл әлі жасалмаса, Администратор рөлі бар қолжеткізу токенін жасаңыз.

  3. Python скриптін орындаңыз:

    from mlplatform_client import MLPlatformfrom mlplatform_client.serializers.auth import MLPTokenType ADMIN_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 мәні Администратор рөліне сәйкес келеді.

    Осы скрипт орындалғаннан кейін жасалған тіркеу қолжеткізу токенінің мәні шығарылады.

  4. Басқа пайдаланушы берілген параметрлері бар қолжеткізу токенін жасау үшін пайдалана алуы үшін осы тіркеу токенін оған беріңіз.

Тіркеу токені арқылы қолжеткізу токенін жасау

  1. Егер бұл әлі жасалмаса, кітапхананы орнатыңыз.

  2. Сізде тіркеу токені бар екеніне көз жеткізіңіз. Егер ол жоқ болса, Администратор рөлі бар қолжеткізу токенінің иесінен тіркеу токенін жасауды сұраңыз.

  3. Python скриптін орындаңыз:

    from mlplatform_client import MLPlatformREGISTER_TOKEN = "<ЗНАЧЕНИЕ_РЕГИСТРАЦИОННОГО_ТОКЕНА>"mlp = MLPlatform()refresh_token = mlp.create_refresh_token(REGISTER_TOKEN)print(refresh_token)

    Осы скрипт орындалғаннан кейін жасалған қолжеткізу токенінің мәні шығарылады.

    Қолжеткізу токенінің параметрлері (атауы, рөлі және әрекет ету уақыты) тіркеу токенімен анықталады.

  4. Токен мәнін көшіріп алып, құрылғыңызға сақтаңыз.

Токен көмегімен авторизациялау

  1. Жеке кабинет арқылы немесе Cloud ML Platform кітапханасы арқылы қолжеткізу токенін жасаңыз.

    Қандай әдістерді пайдалану жоспарланғанына байланысты белгілі бір рөлі бар қолжеткізу токені қажет болуы мүмкін. Кітапхана әдістерінің анықтамалығында нақты әдісті шақыру үшін токенде қандай рөл болуы керектігі көрсетіледі.

  2. 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"}}

Қолжеткізу токендерінің тізімін алу

Тек қолжеткізу токендерінің тізімін алуға болады. Жасалған тіркеу токендерінің тізімі жүргізілмейді.

  1. VK Cloud жеке кабинетіне өтіңіз.
  2. Токендер орналасқан жобаны таңдаңыз.
  3. ML Platform → Токены бөліміне өтіңіз.

Ағымдағы қолжеткізу токені туралы ақпарат алу

Қазіргі сәтте пайдаланылып жатқан қолжеткізу токені туралы ақпаратты тек Cloud ML Platform кітапханасы арқылы алуға болады.

  1. Егер бұл әлі жасалмаса, кітапхананы орнатыңыз.

  2. Егер бұл әлі жасалмаса, Пользователь немесе Администратор рөлі бар қолжеткізу токенін пайдаланып авторизациялаңыз.

  3. 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: USER         issuer_name: ХХХХ@example.ru         exp: None

Қолжеткізу токенін жою

  1. VK Cloud жеке кабинетіне өтіңіз.
  2. Қажетті токен орналасқан жобаны таңдаңыз.
  3. ML Platform → Токены бөліміне өтіңіз.
  4. Қажетті токен үшін  батырмасын басып, Удалить тармағын таңдаңыз.
  5. Подтвердить батырмасын басыңыз.