{"id":13730,"date":"2022-08-08T14:40:38","date_gmt":"2022-08-08T12:40:38","guid":{"rendered":"https:\/\/polon.nauka.gov.pl\/pomoc\/?post_type=lsvr_lore_kb&#038;p=13730"},"modified":"2024-07-05T13:32:14","modified_gmt":"2024-07-05T11:32:14","slug":"uwierzytelnianie-uslug-rest-api-w-pol-on-2-0","status":"publish","type":"lsvr_lore_kb","link":"https:\/\/polon.nauka.gov.pl\/pomoc\/knowledge-base\/uwierzytelnianie-uslug-rest-api-w-pol-on-2-0\/","title":{"rendered":"Uwierzytelnianie us\u0142ug REST-API w POL-on 2.0"},"content":{"rendered":"\n<p>Wszystkie \u017c\u0105dania REST API wymagaj\u0105 przekazania w nag\u0142\u00f3wku (Authorization) tokena dost\u0119powego (access token). Token dost\u0119powy mog\u0105 pobra\u0107 u\u017cytkownicy Systemu POL-on posiadaj\u0105cy konto w Module Centralnego Logowania (MCL). Token dost\u0119powy nale\u017cy pobra\u0107 wykonuj\u0105c \u017c\u0105danie HTTP metod\u0105 POST do serwera produkcyjnego Modu\u0142u Centralnego Logowania.<\/p>\n\n\n\n<p class=\"has-black-color has-text-color has-background has-link-color wp-elements-c9654cb99e6945a513dd5adfb6f795c0\" style=\"background-color:#dce8f6\">Modu\u0142 Centralnego Logowania nie posiada \u015brodowiska demonstracyjnego. Token dost\u0119powy nale\u017cy pobra\u0107 ze \u015brodowiska produkcyjnego MCL, niezale\u017cnie od serwera, do kt\u00f3rego wys\u0142ane jest \u017c\u0105danie dotycz\u0105ce student\u00f3w.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Uwierzytelnianie z tokenem autoryzacyjnym (access token)<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Pobranie tokena<\/strong><\/h3>\n\n\n\n<p>Pobranie tokena dost\u0119powego wymaga wys\u0142ania \u017c\u0105dania HTTP metod\u0105 POST z podaniem odpowiednich parametr\u00f3w.<\/p>\n\n\n\n<p class=\"has-black-color has-text-color has-background has-link-color wp-elements-5004ee65881422e7d99d0f801ea22e6e\" style=\"background-color:#dce8f6\">W przypadku w\u0142\u0105czenia uwierzytelniania dwusk\u0142adnikowego (2FA) pobranie tokena b\u0119dzie wymaga\u0142o podania kodu (drugiego sk\u0142adnika) w zapytaniu pobieraj\u0105cym access-token (w polu: totp).<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-obs-uga-osadzania wp-block-embed-obs-uga-osadzania\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"oembed-gist\"><script src=\"https:\/\/gist.github.com\/MO-ska\/3c57bc96cc91c638372ed8f7ab76a3f2.js\"><\/script><noscript>View the code on <a href=\"https:\/\/gist.github.com\/MO-ska\/3c57bc96cc91c638372ed8f7ab76a3f2\">Gist<\/a>.<\/noscript><\/div>\n<\/div><figcaption class=\"wp-element-caption\"><em>Numery wierszy w kodzie odpowiadaj\u0105 poni\u017cszym numerom.<\/em><\/figcaption><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>adres us\u0142ugi uwierzytelniaj\u0105cej: <a href=\"https:\/\/mcl.opi.org.pl\/auth\/realms\/OPI\/protocol\/openid-connect\/token:\">https:\/\/mcl.opi.org.pl\/auth\/realms\/OPI\/protocol\/openid-connect\/token<\/a><\/li>\n\n\n\n<li><strong>header<\/strong>:\u00a0nag\u0142\u00f3wek \u017c\u0105dania.<\/li>\n\n\n\n<li><strong>client_id<\/strong>: identyfikator systemu, w kt\u00f3rym zostanie uwierzytelniony u\u017cytkownik (dla Systemu POL-on 2.0 nale\u017cy poda\u0107 &#8222;polon2&#8221;).<\/li>\n\n\n\n<li><strong>grant_type<\/strong>: rodzaj dost\u0119pu potrzebny do uzyskania tokena (dla MCL nale\u017cy poda\u0107 &#8222;password&#8221; &#8211; dost\u0119p na podstawie has\u0142a).<\/li>\n\n\n\n<li><strong>username<\/strong>:\u00a0nazwa u\u017cytkownika.<\/li>\n\n\n\n<li><strong>password<\/strong>:\u00a0has\u0142o\u00a0u\u017cytkownika.<\/li>\n\n\n\n<li><strong>totp<\/strong>: jednorazowy kod dost\u0119pu, kt\u00f3ry powinien zosta\u0107 podany w przypadku w\u0142\u0105czonego uwierzytelniania dwusk\u0142adnikowego (2FA). W przypadku braku uwierzytelniania dwusk\u0142adnikowego pole mo\u017cna pomin\u0105\u0107 lub pozostawi\u0107 puste. Kod powinien zosta\u0107 wygenerowany przed wykonaniem \u017c\u0105dania. Wi\u0119cej o uwierzytelnianiu dwusk\u0142adnikowym przeczytasz <a href=\"https:\/\/polon.nauka.gov.pl\/pomoc\/knowledge-base\/modul-centralnego-logowania-logowanie-do-konta-za-pomoca-dwuetapowego-uwierzytelniania\">tutaj<\/a>.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Struktura odpowiedzi z tokenem autoryzacyjnym (access token)<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Poprawna<\/strong><strong> odpowied\u017a<\/strong><\/h4>\n\n\n\n<p>W przypadku wys\u0142ania poprawnych danych uwierzytelniaj\u0105cych, Modu\u0142 Centralnego Logowania zwr\u00f3ci token dost\u0119powy (access_token) wraz z informacj\u0105 o okresie jego wa\u017cno\u015bci.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-obs-uga-osadzania wp-block-embed-obs-uga-osadzania\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"oembed-gist\"><script src=\"https:\/\/gist.github.com\/MO-ska\/6629871d81b81856441ae25861740092.js\"><\/script><noscript>View the code on <a href=\"https:\/\/gist.github.com\/MO-ska\/6629871d81b81856441ae25861740092\">Gist<\/a>.<\/noscript><\/div>\n<\/div><\/figure>\n\n\n\n<p><em>Numery wierszy w kodzie odpowiadaj\u0105 poni\u017cszym numerom.<\/em><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li> {<\/li>\n\n\n\n<li><strong>access_token<\/strong>: token dost\u0119powy, kt\u00f3ry umo\u017cliwia wykonywanie operacji na zasobach API w imieniu zalogowanego u\u017cytkownika. Token w formacie JWT.<\/li>\n\n\n\n<li><strong>expires_in<\/strong>:\u00a0czas\u00a0wa\u017cno\u015bci\u00a0tokena\u00a0dost\u0119powego\u00a0(warto\u015b\u0107\u00a0podana\u00a0w\u00a0sekundach)<\/li>\n\n\n\n<li><strong>refresh_expires_in<\/strong>:\u00a0czas wa\u017cno\u015bci\u00a0tokena przed\u0142u\u017caj\u0105cego\u00a0uwierzytelnienie (warto\u015b\u0107\u00a0podana w\u00a0sekundach)<\/li>\n\n\n\n<li><strong>refresh_token<\/strong>: token umo\u017cliwiaj\u0105cy wygenerowanie nowego tokena dost\u0119powego bez konieczno\u015bci ponownego przesy\u0142ania loginu i has\u0142a. Ponowne pobranie tokena dost\u0119powego z u\u017cyciem refresh tokena zosta\u0142o opisane w punkcie &#8222;Od\u015bwie\u017canie tokena autoryzacyjnego&#8221;. Token w formacie JWT.<\/li>\n\n\n\n<li><strong>token_type<\/strong>:\u00a0typ\u00a0tokena,\u00a0w\u00a0Systemie\u00a0POL-on\u00a0u\u017cywany\u00a0jest\u00a0token\u00a0typu\u00a0&#8222;bearer&#8221;.<\/li>\n\n\n\n<li><strong>not-before-policy<\/strong>: data graniczna, od kiedy mo\u017cna stosowa\u0107 uwierzytelnianie poprzez MCL (czas UNIX).<\/li>\n\n\n\n<li><strong>session_state<\/strong>: identyfikator sesji.<\/li>\n\n\n\n<li><strong>scope<\/strong>:\u00a0zakresy\u00a0okre\u015blaj\u0105ce\u00a0poziom\u00a0uprawnie\u0144.<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>B\u0142\u0105d uwierzytelniania<\/strong><\/h4>\n\n\n\n<p>W przypadku wyst\u0105pienia b\u0142\u0119du uwierzytelniania Modu\u0142 Centralnego Logowania zwraca komunikat wraz z dodatkowym opisem.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-obs-uga-osadzania wp-block-embed-obs-uga-osadzania\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"oembed-gist\"><script src=\"https:\/\/gist.github.com\/MO-ska\/bc6dae9353646fdbe3dac857224fc647.js\"><\/script><noscript>View the code on <a href=\"https:\/\/gist.github.com\/MO-ska\/bc6dae9353646fdbe3dac857224fc647\">Gist<\/a>.<\/noscript><\/div>\n<\/div><\/figure>\n\n\n\n<p><em>Numery wierszy w kodzie odpowiadaj\u0105 poni\u017cszym numerom.<\/em><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li> {<\/li>\n\n\n\n<li><strong>error<\/strong>: nazwa b\u0142\u0119du<\/li>\n\n\n\n<li><strong>error_description<\/strong>:\u00a0opis\u00a0b\u0142\u0119du<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Od\u015bwie\u017canie tokena&nbsp;dost\u0119powego<\/strong><\/h3>\n\n\n\n<p>Od\u015bwie\u017cenie tokena dost\u0119powego polega na wys\u0142aniu nowego \u017c\u0105dania do us\u0142ugi uwierzytelniaj\u0105cej. Ponowne odpytanie us\u0142ugi z u\u017cyciem refresh tokena pozwala pobra\u0107 nowy token dost\u0119powy bez konieczno\u015bci przesy\u0142ania loginu i has\u0142a u\u017cytkownika. W wyniku od\u015bwie\u017cenia zwracany jest nowy zestaw token\u00f3w &#8211; <strong>access token<\/strong> i <strong>refresh_token<\/strong>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Opis procesu pobierania i od\u015bwie\u017cania tokena dost\u0119powego<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>U\u017cytkownik za pomoc\u0105 loginu, has\u0142a i mechanizmu 2FA, o ile zosta\u0142 skonfigurowany, pobiera token dost\u0119powy oraz powi\u0105zany z nim <strong>refresh token<\/strong>. Opis sposobu pobierania tokena dost\u0119powego znajduje si\u0119 punkcie &#8222;Pobieranie tokena&#8221;.<\/li>\n\n\n\n<li>U\u017cytkownik zapisuje sw\u00f3j <strong>refresh token<\/strong> wraz z jego okresem wa\u017cno\u015bci, kt\u00f3ry znajduje si\u0119 w polu<br><strong>refresh_expires_in<\/strong>.<\/li>\n\n\n\n<li>U\u017cytkownik, pos\u0142uguj\u0105c si\u0119 <strong>refresh tokenem<\/strong>, wykonuje \u017c\u0105danie, kt\u00f3rego celem jest pobranie nowego tokena dost\u0119powego.<\/li>\n<\/ul>\n\n\n\n<p>Od\u015bwie\u017cenie tokena dost\u0119powego wymaga wys\u0142ania \u017c\u0105dania HTTP metod\u0105 POST z podaniem odpowiednich parametr\u00f3w. Poni\u017cej zosta\u0142 przedstawiony przyk\u0142ad wywo\u0142ania us\u0142ugi uwierzytelniaj\u0105cej z u\u017cyciem refresh tokena.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-obs-uga-osadzania wp-block-embed-obs-uga-osadzania\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"oembed-gist\"><script src=\"https:\/\/gist.github.com\/MO-ska\/da60110d32729f5d7be7f9fbe91654b1.js\"><\/script><noscript>View the code on <a href=\"https:\/\/gist.github.com\/MO-ska\/da60110d32729f5d7be7f9fbe91654b1\">Gist<\/a>.<\/noscript><\/div>\n<\/div><\/figure>\n\n\n\n<p><em>Numery wierszy w kodzie odpowiadaj\u0105 poni\u017cszym numerom.<\/em><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>adres us\u0142ugi uwierzytelniaj\u0105cej: <a href=\"https:\/\/mcl.opi.org.pl\/auth\/realms\/OPI\/protocol\/openid-connect\/token\" target=\"_blank\" rel=\"noopener\"><strong>https:\/\/mcl.opi.org.pl\/auth\/realms\/OPI\/protocol\/openid-connect\/token<\/strong><\/a><\/li>\n\n\n\n<li><strong>header<\/strong>:\u00a0nag\u0142\u00f3wek \u017c\u0105dania.<\/li>\n\n\n\n<li><strong>client_id<\/strong>: identyfikator systemu, w kt\u00f3rym zostanie uwierzytelniony u\u017cytkownik (dla Systemu POL-on 2.0 nale\u017cy poda\u0107 &#8222;polon2&#8221;).<\/li>\n\n\n\n<li><strong>grant_type<\/strong>: rodzaj dost\u0119pu potrzebny do uzyskania tokena dost\u0119powego. W przypadku od\u015bwie\u017cania tokena dost\u0119powego nale\u017cy poda\u0107 warto\u015b\u0107 <strong>refresh_token<\/strong>.<\/li>\n\n\n\n<li><strong>refresh_token<\/strong>: warto\u015b\u0107 refresh tokena wykorzystywanego do od\u015bwie\u017cenia tokena dost\u0119powego. Nale\u017cy poda\u0107 warto\u015b\u0107, kt\u00f3ra zosta\u0142a zwr\u00f3cona w polu <strong>refresh_token <\/strong>w odpowiedzi na \u017c\u0105danie opisane w punkcie &#8222;Pobranie tokena&#8221;.<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Od\u015bwie\u017cenie tokena dost\u0119powego mo\u017cna wykona\u0107 w okresie, w kt\u00f3rym <strong>refresh token<\/strong> zachowuje swoj\u0105 wa\u017cno\u015b\u0107 liczon\u0105 od momentu jego pobrania. Wa\u017cno\u015b\u0107 <strong>refresh tokena<\/strong> okre\u015blona jest w odpowiedzi us\u0142ugi uwierzytelniaj\u0105cej w polu <strong>refresh_expires_in<\/strong>. Data wa\u017cno\u015bci zapisana jest r\u00f3wnie\u017c w tokenie i mo\u017cna j\u0105 odczyta\u0107 poprzez analiz\u0119 jego zawarto\u015bci. Token zwracany jest w formacie JWT, w kt\u00f3rym data wyga\u015bni\u0119cia&nbsp;zapisana formacie UNIX znajduje si\u0119 w polu <strong>exp<\/strong>.<\/li>\n\n\n\n<li>W wyniku odpytania us\u0142ugi uwierzytelniaj\u0105cej z u\u017cyciem <strong style=\"font-size: revert; color: initial;\">refresh tokena<\/strong><span style=\"font-size: revert; color: initial;\"> u\u017cytkownik otrzymuje tak\u0105 sam\u0105 <\/span>odpowied\u017a jak w przypadku pobierania tokena z u\u017cyciem has\u0142a i loginu. Opis odpowiedzi zosta\u0142 umieszczony w punkcie &#8222;Struktura odpowiedzi z tokenem dost\u0119powym (akces token)&#8221;. W wyniku od\u015bwie\u017cenia zwracany jest nowy zestaw token\u00f3w &#8211; <strong>access token<\/strong> i <strong>refresh token<\/strong>.<\/li>\n\n\n\n<li>U\u017cytkownik zapisuje nowy <strong style=\"font-size: revert; color: initial;\">refresh token<\/strong><span style=\"font-size: revert; color: initial;\"> wraz z jego okresem wa\u017cno\u015bci <\/span><strong style=\"font-size: revert; color: initial;\">refresh_expires_in<\/strong><span style=\"font-size: revert; color: initial;\">. Zapisanie nowego&nbsp;<strong>refresh tokena<\/strong> pozwoli przej\u015b\u0107 proces od\u015bwie\u017cania tokena dost\u0119powego ponownie.<\/span><\/li>\n\n\n\n<li>U\u017cytkownik komunikuje si\u0119 z REST API Systemu POL-on korzystaj\u0105c z od\u015bwie\u017conego tokena dost\u0119powego (<strong style=\"font-size: revert; color: initial;\">access token<\/strong><span style=\"font-size: revert; color: initial;\">). Token mo\u017ce by\u0107 u\u017cywany do czasu jego od\u015bwie\u017cenia lub wyga\u015bni\u0119cia.<\/span><\/li>\n\n\n\n<li><span style=\"font-size: revert; color: initial;\">Mo\u017cliwe jest wielokrotne od\u015bwie\u017canie tokena dost\u0119powego bez podawania has\u0142a i loginu. Operacj\u0119 <\/span>od\u015bwie\u017cania mo\u017cna wykona\u0107 wielokrotnie, je\u017celi za ka\u017cdym razem u\u017cytkownik b\u0119dzie pos\u0142ugiwa\u0142 si\u0119 nowym&nbsp;<strong>refresh tokenem<\/strong>, kt\u00f3ry zosta\u0142 pobrany przy od\u015bwie\u017ceniu i pod warunkiem \u017ce nie straci\u0142 on swojej wa\u017cno\u015bci.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Uniewa\u017cnienie sesji powi\u0105zanej z tokenem dost\u0119powym<\/strong><\/h2>\n\n\n\n<p>Modu\u0142 Centralnego Logowania pozwala na uniewa\u017cnienie sesji, w kt\u00f3rej u\u017cywany jest okre\u015blony <strong>access token<\/strong>. Operacj\u0119 uniewa\u017cnienia sesji mo\u017cna wykona\u0107, je\u017celi zaistnia\u0142a konieczno\u015b\u0107 wy\u0142\u0105czenia z u\u017cycia okre\u015blonego <strong>access tokena<\/strong> lub <strong>refresh tokena<\/strong>. W celu uniewa\u017cnienia sesji konieczna jest znajomo\u015b\u0107 warto\u015bci pola <strong>session_state<\/strong>, kt\u00f3re zwracane jest podczas pobierania lub od\u015bwie\u017cania tokena. Warto\u015b\u0107 pola <strong>session_state<\/strong> jest identyfikatorem sesji. Operacja uniewa\u017cnienie sesji ma zastosowanie r\u00f3wnie\u017c w przypadku offline token\u00f3w, o kt\u00f3rych mowa w punkcie &#8222;Pobieranie offline tokena&#8221;.<\/p>\n\n\n\n<p>Uniewa\u017cnienie sesji powi\u0105zanej z tokenem dost\u0119powym wymaga wys\u0142ania \u017c\u0105dania HTTP metod\u0105 DELETE z podaniem odpowiednich parametr\u00f3w.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-obs-uga-osadzania wp-block-embed-obs-uga-osadzania\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"oembed-gist\"><script src=\"https:\/\/gist.github.com\/MO-ska\/632bdd56f74d3c1afdc4a612d5bfa5be.js\"><\/script><noscript>View the code on <a href=\"https:\/\/gist.github.com\/MO-ska\/632bdd56f74d3c1afdc4a612d5bfa5be\">Gist<\/a>.<\/noscript><\/div>\n<\/div><\/figure>\n\n\n\n<p><em>Numery wierszy w kodzie odpowiadaj\u0105 poni\u017cszym numerom.<\/em><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>adres us\u0142ugi, kt\u00f3rej wywo\u0142anie\u00a0skutkuje uniewa\u017cnieniem okre\u015blonej sesji: <a href=\"https:\/\/mcl.opi.org.pl\/auth\/realms\/OPI\/account\/sessions\/identyfikatorSesji\" target=\"_blank\" rel=\"noopener\">https:\/\/mcl.opi.org.pl\/auth\/realms\/OPI\/account\/sessions\/identyfikatorSesji<\/a>.<br>Fragment adresu <strong>identyfikatorSesji<\/strong> nale\u017cy zast\u0105pi\u0107 warto\u015bci\u0105 zwracan\u0105 w polu <strong>session_state<\/strong>. Informacja o stanie sesji zwracana jest przy ka\u017cdorazowym pobieraniu lub od\u015bwie\u017caniu tokena dost\u0119powego.<\/li>\n\n\n\n<li><strong>header<\/strong>: nag\u0142\u00f3wek \u017c\u0105dania, w kt\u00f3rym nale\u017cy zast\u0105pi\u0107 tekst <strong>tokenDost\u0119powyDoUniewa\u017cnienia<\/strong> warto\u015bci\u0105 tokena.<\/li>\n\n\n\n<li><strong>header<\/strong>: nag\u0142\u00f3wek \u017c\u0105dania, nie wymaga zmian przed wykonanie polecenia.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Uwierzytelnianie z tokenem autoryzacyjnym typu offline (offline token)<\/strong><\/h2>\n\n\n\n<p>U\u017cytkownik podczas logowania do Modu\u0142u Centralnego Logowania mo\u017ce pobiera\u0107 token typu offline. Offline token s\u0142u\u017cy do pobierania tokena dost\u0119powego (<strong>access_tokena<\/strong>), bez konieczno\u015bci wprowadzania has\u0142a i loginu.<\/p>\n\n\n\n<p><strong>Offline token<\/strong> mo\u017ce by\u0107 zapisany przez u\u017cytkownika na dysku, serwerze lub w bazie danych i wykorzystywany w okresie jego wa\u017cno\u015bci do korzystania z REST API systemu POL-on.<\/p>\n\n\n\n<p><strong>Offline token<\/strong> jest typem <strong>refresh tokena<\/strong>. Token ten jest zwracany przez us\u0142ug\u0119 uwierzytelniaj\u0105ca po jej odpytaniu z u\u017cyciem okre\u015blonych parametr\u00f3w.<\/p>\n\n\n\n<p>Pobieranie i od\u015bwie\u017canie <strong>offline tokena<\/strong> r\u00f3\u017cni si\u0119 od pobierania i od\u015bwie\u017cania standardowego tokena dost\u0119powego.\u00a0G\u0142\u00f3wna r\u00f3\u017cnica polega na ustawieniu warto\u015bci parametru <strong>scope<\/strong> na <strong>offline_access<\/strong>, kt\u00f3ry w przypadku standardowego tokena dost\u0119powego pozostaje pusty.<\/p>\n\n\n\n<p class=\"has-black-color has-text-color has-background has-link-color wp-elements-18175f2a5adf924cdfeb26a4b4e12cb9\" style=\"background-color:#fdeeeb\">Offline token traci wa\u017cno\u015bci po 30 dniach. Po up\u0142yni\u0119ciu 30 dni od jego pobrania konieczne jest ponowne wykonanie \u017c\u0105dania, o kt\u00f3rym mowa w punkcie &#8222;Pobieranie offline tokena&#8221;.<br>W okresie wa\u017cno\u015bci <strong>refresh tokena<\/strong> mo\u017cliwe jest pobranie nowego tokena offline za pomoc\u0105<br>procedury opisanej w punkcie &#8222;Od\u015bwie\u017canie tokena dost\u0119powego na podstawie offline tokena&#8221; bez konieczno\u015bci podawania loginu i has\u0142a.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Pobranie offline token<\/strong><\/h3>\n\n\n\n<p>Pobranie tokena dost\u0119powego wymaga wys\u0142ania \u017c\u0105dania HTTP metod\u0105 POST z podaniem odpowiednich parametr\u00f3w.<\/p>\n\n\n\n<p class=\"has-black-color has-text-color has-background has-link-color wp-elements-5004ee65881422e7d99d0f801ea22e6e\" style=\"background-color:#dce8f6\">W przypadku w\u0142\u0105czenia uwierzytelniania dwusk\u0142adnikowego (2FA) pobranie tokena b\u0119dzie wymaga\u0142o podania kodu (drugiego sk\u0142adnika) w zapytaniu pobieraj\u0105cym access-token (w polu: totp).<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-obs-uga-osadzania wp-block-embed-obs-uga-osadzania\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"oembed-gist\"><script src=\"https:\/\/gist.github.com\/MO-ska\/ca4f51d92f25edcbf5d7072bb3c4bee8.js\"><\/script><noscript>View the code on <a href=\"https:\/\/gist.github.com\/MO-ska\/ca4f51d92f25edcbf5d7072bb3c4bee8\">Gist<\/a>.<\/noscript><\/div>\n<\/div><\/figure>\n\n\n\n<p><em>Numery wierszy w kodzie odpowiadaj\u0105 poni\u017cszym numerom<\/em>.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>adres\u00a0us\u0142ugi\u00a0uwierzytelniaj\u0105cej: <a href=\"https:\/\/mcl.opi.org.pl\/auth\/realms\/OPI\/protocol\/openid-connect\/token\" target=\"_blank\" rel=\"noopener\"><strong>https:\/\/mcl.opi.org.pl\/auth\/realms\/OPI\/protocol\/openid-connect\/token<\/strong><\/a>:\u00a0<\/li>\n\n\n\n<li><strong>header<\/strong>:\u00a0nag\u0142\u00f3wek \u017c\u0105dania.<\/li>\n\n\n\n<li><strong>client_id<\/strong>: identyfikator systemu, w kt\u00f3rym zostanie uwierzytelniony u\u017cytkownik (dla Systemu POL-on 2.0 nale\u017cy poda\u0107 &#8222;polon2&#8221;).<\/li>\n\n\n\n<li><strong>grant_type<\/strong>: rodzaj dost\u0119pu potrzebny do uzyskania tokena (dla MCL nale\u017cy poda\u0107 &#8222;password&#8221; &#8211; dost\u0119p na podstawie has\u0142a).<\/li>\n\n\n\n<li><strong>username<\/strong>:\u00a0nazwa u\u017cytkownika.<\/li>\n\n\n\n<li><strong>password<\/strong>:\u00a0has\u0142o\u00a0u\u017cytkownika.<\/li>\n\n\n\n<li><strong>scope<\/strong>: parametr wywo\u0142ania us\u0142ugi, kt\u00f3ry umo\u017cliwia pobranie tokena typu offline. W celu pobrania tokena offline nale\u017cy dla tego parametru poda\u0107 warto\u015b\u0107 &#8222;offline_access&#8221;.<\/li>\n\n\n\n<li><strong>totp<\/strong>: jednorazowy kod dost\u0119pu, kt\u00f3ry powinien zosta\u0107 podany w przypadku w\u0142\u0105czonego uwierzytelniania\u00a0dwusk\u0142adnikowego (2FA). W przypadku braku uwierzytelniania dwusk\u0142adnikowego pole mo\u017cna pomin\u0105\u0107 lub pozostawi\u0107 puste. Kod powinien zosta\u0107 wygenerowany przed wykonaniem \u017c\u0105dania. Wi\u0119cej o uwierzytelnianiu dwusk\u0142adnikowym przeczytasz <a href=\"https:\/\/polon.nauka.gov.pl\/pomoc\/knowledge-base\/modul-centralnego-logowania-logowanie-do-konta-za-pomoca-dwuetapowego-uwierzytelniania\">tutaj<\/a>.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Struktura odpowiedzi us\u0142ugi uwierzytelniaj\u0105cej, kt\u00f3ra zosta\u0142a uruchomiona z u\u017cyciem offline tokena<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Poprawna<\/strong><strong> odpowied\u017a<\/strong><\/h4>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-obs-uga-osadzania wp-block-embed-obs-uga-osadzania\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"oembed-gist\"><script src=\"https:\/\/gist.github.com\/MO-ska\/d169c8b2ab0ee901e6ec2f6dd1538037.js\"><\/script><noscript>View the code on <a href=\"https:\/\/gist.github.com\/MO-ska\/d169c8b2ab0ee901e6ec2f6dd1538037\">Gist<\/a>.<\/noscript><\/div>\n<\/div><\/figure>\n\n\n\n<p><em>Numery wierszy w kodzie odpowiadaj\u0105 poni\u017cszym numerom<\/em>.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li> {<\/li>\n\n\n\n<li><strong>access_token<\/strong>: token dost\u0119powy, kt\u00f3ry umo\u017cliwia wykonywanie operacji na zasobach API w imieniu zalogowanego u\u017cytkownika. Token w formacie JWT.<\/li>\n\n\n\n<li><strong>expires_in<\/strong>:\u00a0czas\u00a0wa\u017cno\u015bci\u00a0tokena\u00a0dost\u0119powego\u00a0(warto\u015b\u0107\u00a0podana\u00a0w\u00a0sekundach)<\/li>\n\n\n\n<li><strong>refresh_expires_in<\/strong>: czas wa\u017cno\u015bci tokena przed\u0142u\u017caj\u0105cego uwierzytelnienie (warto\u015b\u0107 podana w sekundach).<\/li>\n\n\n\n<li><strong>refresh_token<\/strong>: token typu offline zwracany w przypadku wywo\u0142ania us\u0142ugi uwierzytelniania z dodatkowym parametrem 'scope=offline_access&#8217;. Token umo\u017cliwiaj\u0105cy wygenerowanie nowego tokena dost\u0119powego bez konieczno\u015bci podawania has\u0142a i loginu u\u017cytkownika. Pobieranie nowego tokenu dost\u0119powego z u\u017cyciem refresh tokena opisane jest w punkcie &#8222;Od\u015bwie\u017canie tokena dost\u0119powego na podstawie offline tokena&#8221;. Token w formacie JWT.<\/li>\n\n\n\n<li><strong>token_type<\/strong>:\u00a0typ\u00a0tokena,\u00a0w\u00a0Systemie\u00a0POL-on\u00a0u\u017cywany\u00a0jest\u00a0token\u00a0typu\u00a0&#8222;bearer&#8221;.<\/li>\n\n\n\n<li><strong>not-before-policy<\/strong>: data graniczna, od kiedy mo\u017cna stosowa\u0107 uwierzytelnianie poprzez MCL (czas UNIX).<\/li>\n\n\n\n<li><strong>session_state<\/strong>: identyfikator sesji.<\/li>\n\n\n\n<li><strong>scope<\/strong>: informacje o zakresie danych, kt\u00f3re s\u0105 przechowywane w tokenie. Dla tokena typu offline w polu <strong>scope <\/strong>zwracana jest warto\u015b\u0107 <strong>offline_access<\/strong>.<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>B\u0142\u0105d uwierzytelniania<\/strong><\/h4>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-obs-uga-osadzania wp-block-embed-obs-uga-osadzania\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"oembed-gist\"><script src=\"https:\/\/gist.github.com\/MO-ska\/68c75477677c6e03f9aad4cf94478bd7.js\"><\/script><noscript>View the code on <a href=\"https:\/\/gist.github.com\/MO-ska\/68c75477677c6e03f9aad4cf94478bd7\">Gist<\/a>.<\/noscript><\/div>\n<\/div><\/figure>\n\n\n\n<p><em>Numery wierszy w kodzie odpowiadaj\u0105 poni\u017cszym numerom<\/em>.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li> {<\/li>\n\n\n\n<li><strong>error<\/strong>: nazwa b\u0142\u0119du<\/li>\n\n\n\n<li><strong>error_description<\/strong>:\u00a0opis\u00a0b\u0142\u0119du<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Od\u015bwie\u017canie tokena autoryzacyjnego na podstawie offline tokena<\/strong><\/h3>\n\n\n\n<p>Od\u015bwie\u017cenie tokena dost\u0119powego polega na wys\u0142aniu nowego \u017c\u0105dania do us\u0142ugi uwierzytelniaj\u0105cej. Ponowne&nbsp;odpytanie us\u0142ugi z u\u017cyciem offline tokena (refresh tokena) pozwala pobra\u0107 nowy token dost\u0119powy bez konieczno\u015bci przesy\u0142ania loginu i has\u0142a u\u017cytkownika. W wyniku od\u015bwie\u017cenia zwracany jest nowy zestaw token\u00f3w &#8211; <strong>access token<\/strong> i <strong>refresh_token<\/strong>. Od\u015bwie\u017canie <strong>offline tokena<\/strong> r\u00f3\u017cni si\u0119 od procesu od\u015bwie\u017cania standardowego tokena dost\u0119powego. G\u0142\u00f3wna r\u00f3\u017cnica polega na ustawieniu warto\u015bci parametru <strong>scope<\/strong> na <strong>offline_access<\/strong>, kt\u00f3ry w przypadku standardowego tokena dost\u0119powego pozostaje pusty.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Opis procesu pobierania i od\u015bwie\u017cania tokena dost\u0119powego z u\u017cyciem offline tokena<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>U\u017cytkownik za pomoc\u0105 loginu, has\u0142a i mechanizmu 2FA, o ile zosta\u0142 skonfigurowany, pobiera token dost\u0119powy oraz powi\u0105zany z nim <strong>refresh token<\/strong>. Opis sposobu pobierania tokena dost\u0119powego znajduje si\u0119 punkcie &#8222;Pobieranie offline tokena&#8221;.<\/li>\n\n\n\n<li>U\u017cytkownik zapisuje sw\u00f3j <strong>refresh token<\/strong> wraz z jego okresem wa\u017cno\u015bci, kt\u00f3ry znajduje si\u0119 w polu<br><strong>refresh_expires_in<\/strong>.<\/li>\n\n\n\n<li>U\u017cytkownik, pos\u0142uguj\u0105c si\u0119 <strong>refresh tokenem<\/strong>, wykonuje \u017c\u0105danie, kt\u00f3rego celem jest pobranie nowego tokena dost\u0119powego.<\/li>\n<\/ul>\n\n\n\n<p>Poni\u017cej zosta\u0142 przedstawiony przyk\u0142ad wywo\u0142ania us\u0142ugi uwierzytelniaj\u0105cej z u\u017cyciem offline tokena (refresh tokena).<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-obs-uga-osadzania wp-block-embed-obs-uga-osadzania\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"oembed-gist\"><script src=\"https:\/\/gist.github.com\/MO-ska\/1f91631c53868dd4945ee4bdf19bdf81.js\"><\/script><noscript>View the code on <a href=\"https:\/\/gist.github.com\/MO-ska\/1f91631c53868dd4945ee4bdf19bdf81\">Gist<\/a>.<\/noscript><\/div>\n<\/div><\/figure>\n\n\n\n<p><em>Numery wierszy w kodzie odpowiadaj\u0105 poni\u017cszym numerom<\/em>.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>adres us\u0142ugi uwierzytelniaj\u0105cej: <a href=\"https:\/\/mcl.opi.org.pl\/auth\/realms\/OPI\/protocol\/openid-connect\/token\" target=\"_blank\" rel=\"noopener\">https:\/\/mcl.opi.org.pl\/auth\/realms\/OPI\/protocol\/openid-connect\/token<\/a><\/li>\n\n\n\n<li><strong>header<\/strong>: nag\u0142\u00f3wek \u017c\u0105dania.<\/li>\n\n\n\n<li><strong>client_id<\/strong>: identyfikator systemu, w kt\u00f3rym zostanie uwierzytelniony u\u017cytkownik (dla Systemu POL-on 2.0 nale\u017cy poda\u0107 &#8222;polon2&#8221;).<\/li>\n\n\n\n<li><strong>grant_type<\/strong>: rodzaj dost\u0119pu potrzebny do uzyskania tokena dost\u0119powego. W przypadku od\u015bwie\u017cania tokena dost\u0119powego z u\u017cyciem offline tokena nale\u017cy ustawi\u0107 warto\u015b\u0107 parametru na <strong>refresh_token<\/strong>.<\/li>\n\n\n\n<li><strong>refresh_token<\/strong>: warto\u015b\u0107 refresh tokena wykorzystywanego do od\u015bwie\u017cenia tokena dost\u0119powego. W tym przypadku nale\u017cy poda\u0107 warto\u015b\u0107<strong> offline tokena<\/strong>, kt\u00f3ra zosta\u0142a wcze\u015bniej pobrana i zapisana przez u\u017cytkownika. Nale\u017cy poda\u0107 warto\u015b\u0107, kt\u00f3ra zosta\u0142a zwr\u00f3cona w polu <strong>refresh_token<\/strong> w odpowiedzi na \u017c\u0105danie opisane w punkcie &#8222;Pobranie offline token&#8221; lub w wyniku od\u015bwie\u017cenia offline tokena.<\/li>\n\n\n\n<li><strong>scope<\/strong>: informacja o zakresie danych, kt\u00f3re s\u0105 przechowywanych w tokenie. Dla tokena typu offline w polu <strong>scope<\/strong> nale\u017cy poda\u0107 warto\u015b\u0107 <strong>offline_access<\/strong>.<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Od\u015bwie\u017cenie tokena dost\u0119powego mo\u017cna wykona\u0107 w okresie, w kt\u00f3rym <strong>refresh token<\/strong> zachowuje swoj\u0105 wa\u017cno\u015b\u0107 liczon\u0105 od momentu jego pobrania. Wa\u017cno\u015b\u0107 <strong>refresh tokena<\/strong> okre\u015blona jest w odpowiedzi us\u0142ugi uwierzytelniaj\u0105cej w polu <strong>refresh_expires_in<\/strong>. Data wa\u017cno\u015bci zapisana jest r\u00f3wnie\u017c w tokenie i mo\u017cna j\u0105 odczyta\u0107 poprzez analiz\u0119 jego zawarto\u015bci. Token zwracany jest w formacie JWT, w kt\u00f3rym data wyga\u015bni\u0119cia zapisana formacie UNIX znajduje si\u0119 w polu <strong>exp<\/strong>.<\/li>\n\n\n\n<li>W wyniku odpytania us\u0142ugi uwierzytelniaj\u0105cej z u\u017cyciem <strong>refresh tokena<\/strong> u\u017cytkownik otrzymuje tak\u0105 sam\u0105 odpowied\u017a jak w przypadku pobierania tokena z u\u017cyciem has\u0142a i loginu. Opis odpowiedzi dost\u0119pny jest w punkcie &#8222;Struktury odpowiedzi us\u0142ugi uwierzytelniaj\u0105cej, kt\u00f3ra zosta\u0142a uruchomiona z u\u017cyciem offline tokena&#8221;<\/li>\n\n\n\n<li>U\u017cytkownik zapisuje nowy <strong>refresh token<\/strong> wraz z jego okresem wa\u017cno\u015bci <strong>refresh_expires_in<\/strong>. Zapisanie nowego <strong>refresh tokena<\/strong> pozwoli przej\u015b\u0107 proces od\u015bwie\u017cania tokena dost\u0119powego ponownie.<\/li>\n\n\n\n<li>Mo\u017cliwe jest wielokrotne od\u015bwie\u017canie tokena dost\u0119powego bez podawania has\u0142a i loginu, je\u017celi za ka\u017cdym razem u\u017cytkownik b\u0119dzie pos\u0142ugiwa\u0142 si\u0119 nowym <strong>refresh tokenem<\/strong>, kt\u00f3ry zosta\u0142 pobrany przy od\u015bwie\u017ceniu i pod warunkiem \u017ce nie straci\u0142 on swojej wa\u017cno\u015bci.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>U\u017cycie tokena offline w integracji systemu zewn\u0119trznego z systemem POL-on<\/strong><\/h3>\n\n\n\n<p>G\u0142\u00f3wn\u0105 r\u00f3\u017cnic\u0105 pomi\u0119dzy standardowym tokenem, o kt\u00f3rym mowa w punkcie &#8222;Pobieranie tokena&#8221; a tokenem offline opisanym w punkcie &#8222;Pobieranie offline token&#8221; jest okres wa\u017cno\u015bci. Wyd\u0142u\u017cony okres wa\u017cno\u015bci<strong> offline tokena<\/strong> umo\u017cliwia jego zapisanie i wielokrotne u\u017cywanie w komunikacji poprzez REST API bez konieczno\u015bci cz\u0119stego odpytywania us\u0142ugi uwierzytelniaj\u0105cej. Offline token mo\u017ce zosta\u0107 pobrany raz na jaki\u015b czas z u\u017cyciem has\u0142a i loginu, a nast\u0119pnie zapisany w systemie uczelnianym. Pobrany i zapisany token mo\u017ce by\u0107 wielokrotnie od\u015bwie\u017cany bez udzia\u0142u u\u017cytkownika.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Zalecany scenariusz integracji z Systemem POL-on z u\u017cyciem offline tokena<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>U\u017cytkownik za pomoc\u0105 loginu, has\u0142a i mechanizmu 2FA, o ile zosta\u0142 skonfigurowany, pobiera token dost\u0119powy oraz powi\u0105zany z nim refresh token typu offline (<strong>offline token<\/strong>). Opis sposobu pobierania tokena dost\u0119powego typu offline znajduje si\u0119 w punkcie &#8222;Pobieranie offline token&#8221;. Token typu offline znajduje si\u0119 w odpowiedzi w polu <strong>refresh_token<\/strong>.<\/li>\n\n\n\n<li>U\u017cytkownik zapisuje <strong>refresh token<\/strong> typu offline wraz z jego dat\u0105 wa\u017cno\u015bci. Data wa\u017cno\u015bci zapisana jest w tokenie i mo\u017cna j\u0105 odczyta\u0107 poprzez analiz\u0119 jego zawarto\u015bci. Token zwracany jest w formacie JWT, w kt\u00f3rym data wyga\u015bni\u0119cia zapisana formacie UNIX znajduje si\u0119 w polu <strong>exp<\/strong>.<\/li>\n\n\n\n<li>System uczelniany na pocz\u0105tku sesji wysy\u0142ania danych do Systemu POL-on powinien pobra\u0107 standardowy token dost\u0119powy. Pobranie standardowego tokena dost\u0119powego powinno zosta\u0107 wykonane z u\u017cyciem zapisanego wcze\u015bniej <strong>oflline tokena<\/strong>.<\/li>\n<\/ul>\n\n\n\n<p>Pobranie tokena dost\u0119powego na podstawie offline tokena wymaga wys\u0142ania \u017c\u0105dania HTTP metod\u0105 POST z podaniem odpowiednich parametr\u00f3w. Poni\u017cej przyk\u0142ad pobrania standardowego tokena dost\u0119powego z u\u017cyciem offline tokena.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-obs-uga-osadzania wp-block-embed-obs-uga-osadzania\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"oembed-gist\"><script src=\"https:\/\/gist.github.com\/MO-ska\/6f330c584d017578f5695745a729d654.js\"><\/script><noscript>View the code on <a href=\"https:\/\/gist.github.com\/MO-ska\/6f330c584d017578f5695745a729d654\">Gist<\/a>.<\/noscript><\/div>\n<\/div><\/figure>\n\n\n\n<p><em>Numery wierszy w kodzie odpowiadaj\u0105 poni\u017cszym numerom<\/em>.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>adres us\u0142ugi uwierzytelniaj\u0105cej: <a href=\"https:\/\/mcl.opi.org.pl\/auth\/realms\/OPI\/protocol\/openid-connect\/token:\">https:\/\/mcl.opi.org.pl\/auth\/realms\/OPI\/protocol\/openid-connect\/token<\/a><\/li>\n\n\n\n<li><strong>header<\/strong>: nag\u0142\u00f3wek \u017c\u0105dania.<\/li>\n\n\n\n<li><strong>client_id<\/strong>: identyfikator systemu, w kt\u00f3rym zostanie uwierzytelniony u\u017cytkownik (dla Systemu POL-on 2.0 nale\u017cy poda\u0107 &#8222;polon2&#8221;).<\/li>\n\n\n\n<li><strong>grant_type<\/strong>: rodzaj dost\u0119pu potrzebny do uzyskania tokena dost\u0119powego. W przypadku pobierania tokena dost\u0119powego na podstawie offline tokena nale\u017cy poda\u0107 warto\u015b\u0107 <strong>refresh_token<\/strong>.<\/li>\n\n\n\n<li><strong>refresh_token<\/strong>: warto\u015b\u0107 zapisanego offline tokena. Nale\u017cy poda\u0107 warto\u015b\u0107, kt\u00f3ra zosta\u0142a zwr\u00f3cona w polu <strong>refresh_token<\/strong> w odpowiedzi na \u017c\u0105danie opisane w punkcie &#8222;Pobranie offline token&#8221;.<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>System uczelniany powinien zapisa\u0107 otrzymany standardowy <strong>refresh_token<\/strong> oraz <strong>access_token<\/strong> jako<br>tymczasowe zmienne zwi\u0105zane z sesj\u0105 wysy\u0142ania danych.<\/li>\n\n\n\n<li>W trakcie wysy\u0142ania danych do Systemu POL-on 2.0 do uwierzytelniania nale\u017cy korzysta\u0107 z pobranego tymczasowego <strong>access_tokena<\/strong>. Gdy jego wa\u017cno\u015b\u0107 wyga\u015bnie, nale\u017cy u\u017cy\u0107 <strong>refresh_tokena<\/strong> do uzyskiwania nowych <strong>access token\u00f3w<\/strong>, zgodnie z procedur\u0105 opisan\u0105 w punkcie &#8222;Od\u015bwie\u017canie tokena dost\u0119powego&#8221;. Przy ka\u017cdej kolejnej operacji generowania tymczasowego <strong>access_tokena<\/strong> nale\u017cy aktualizowa\u0107 powi\u0105zany z nim <strong>refresh_token<\/strong>.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-black-color has-text-color has-background has-link-color wp-elements-ded85fd7341c10f3c00573a0304441f0\" style=\"background-color:#fdeeeb\">Zaleca si\u0119 u\u017cywanie <strong>offline tokena<\/strong> tylko do inicjowania sesji wysy\u0142ania danych do Systemu<br>POL-on. Operacje wykonywanie w trakcie sesji wysy\u0142ania danych powinny by\u0107<br>uwierzytelniane za pomoc\u0105 standardowego tokena dost\u0119powego, o kt\u00f3rym mowa w<br>punkcie &#8222;Pobieranie tokena&#8221; oraz w punkcie &#8222;Od\u015bwie\u017canie tokena dost\u0119powego&#8221;.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Na koniec sesji wysy\u0142ania danych do Systemu POL-on, nale\u017cy od\u015bwie\u017cy\u0107 <strong>offline token<\/strong>, zgodnie z procedur\u0105 opisan\u0105 w punkcie &#8222;Od\u015bwie\u017canie tokena dost\u0119powego na podstawie offline tokena&#8221; oraz zaktualizowa\u0107 zapisany <strong>offline token<\/strong> wraz z jego dat\u0105 wa\u017cno\u015bci.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-black-color has-text-color has-background has-link-color wp-elements-10be14601d2de0e5df4dd209ed95390d\" style=\"background-color:#fdeeeb\">Offline token traci wa\u017cno\u015bci po 30 dniach. W zwi\u0105zku z powy\u017cszym zalecane jest od\u015bwie\u017canie offline tokena po ka\u017cdej sesji przekazywania danych do systemu POL-on, co zapobiegnie jego wyga\u015bni\u0119ciu. Od\u015bwie\u017canie tokena zosta\u0142o om\u00f3wione w punkcie &#8222;Od\u015bwie\u017canie tokena dost\u0119powego na podstawie offline tokena&#8221;.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>System uczelniany raz na miesi\u0105c powinien sprawdza\u0107, czy nie wygasa wa\u017cno\u015b\u0107 <strong>offline tokena<\/strong>. Je\u017celi jego wa\u017cno\u015b\u0107 wygasa nale\u017cy go od\u015bwie\u017cy\u0107 tak jak zosta\u0142o to opisane w punkcie &#8222;Od\u015bwie\u017canie tokena dost\u0119powego na podstawie offline tokena&#8221;<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Uniewa\u017cnienie<\/strong> <strong>sesji powi\u0105zanej z offline tokenem<\/strong><\/h3>\n\n\n\n<p>Uniewa\u017cnienie sesji z offline tokenem nale\u017cy wykona\u0107 zgodnie z opisem umieszczonym w punkcie &#8222;Uniewa\u017cnienie sesji powi\u0105zanej z tokenem dost\u0119powym&#8221;.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wszystkie \u017c\u0105dania REST API wymagaj\u0105 przekazania w nag\u0142\u00f3wku (Authorization) tokena dost\u0119powego (access token). Token dost\u0119powy mog\u0105 pobra\u0107 u\u017cytkownicy Systemu POL-on posiadaj\u0105cy konto w Module Centralnego Logowania (MCL). Token dost\u0119powy nale\u017cy pobra\u0107 wykonuj\u0105c \u017c\u0105danie HTTP metod\u0105 POST do serwera produkcyjnego Modu\u0142u Centralnego Logowania. Modu\u0142 Centralnego Logowania nie posiada \u015brodowiska demonstracyjnego. Token dost\u0119powy nale\u017cy pobra\u0107 ze \u015brodowiska [&hellip;]<\/p>\n","protected":false},"author":33,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"class_list":["post-13730","lsvr_lore_kb","type-lsvr_lore_kb","status-publish","format-standard","hentry","lsvr_lore_kb_cat-api-rest-masowe-interfejsy","lsvr_lore_kb_tag-api","lsvr_lore_kb_tag-uwierzytelnianie","post-item"],"categories":"REST API","tags":"REST API, uwierzytelnianie","date_content_updated":"1696982400","_links":{"self":[{"href":"https:\/\/polon.nauka.gov.pl\/pomoc\/wp-json\/wp\/v2\/lsvr_lore_kb\/13730","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/polon.nauka.gov.pl\/pomoc\/wp-json\/wp\/v2\/lsvr_lore_kb"}],"about":[{"href":"https:\/\/polon.nauka.gov.pl\/pomoc\/wp-json\/wp\/v2\/types\/lsvr_lore_kb"}],"author":[{"embeddable":true,"href":"https:\/\/polon.nauka.gov.pl\/pomoc\/wp-json\/wp\/v2\/users\/33"}],"replies":[{"embeddable":true,"href":"https:\/\/polon.nauka.gov.pl\/pomoc\/wp-json\/wp\/v2\/comments?post=13730"}],"version-history":[{"count":23,"href":"https:\/\/polon.nauka.gov.pl\/pomoc\/wp-json\/wp\/v2\/lsvr_lore_kb\/13730\/revisions"}],"predecessor-version":[{"id":20883,"href":"https:\/\/polon.nauka.gov.pl\/pomoc\/wp-json\/wp\/v2\/lsvr_lore_kb\/13730\/revisions\/20883"}],"wp:attachment":[{"href":"https:\/\/polon.nauka.gov.pl\/pomoc\/wp-json\/wp\/v2\/media?parent=13730"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}