{"id":71307,"date":"2020-02-24T22:18:55","date_gmt":"2020-02-24T19:18:55","guid":{"rendered":"https:\/\/prohoster.info\/blog\/identityserver4-osnovnye-ponyatiya-openid-connect-oauth-2-0-i-jwt"},"modified":"2020-03-03T16:14:27","modified_gmt":"2020-03-03T13:14:27","slug":"identityserver4-osnovnye-ponyatiya-openid-connect-oauth-2-0-i-jwt","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/identityserver4-osnovnye-ponyatiya-openid-connect-oauth-2-0-i-jwt","title":{"rendered":"IdentityServer4. Grundl\u00e4ggande begrepp. OpenID Connect, OAuth 2.0 och JWT","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Med detta inl\u00e4gg vill jag starta en serie artiklar som handlar om IdentityServer4. Vi b\u00f6rjar med de grundl\u00e4ggande begreppen.<\/p>\n<p><\/p>\n<p>Den mest lovande autentiseringsprotokollet just nu \u00e4r <noindex><a rel=\"nofollow\" href=\"https:\/\/openid.net\/connect\/\">OpenID Connect<\/a><\/noindex>, medan auktoriseringsprotokollet (\u00e5tkomstbeviljande) \u00e4r <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/OAuth#OAuth_2.0\">OAuth 2.0<\/a><\/noindex>. <noindex><a rel=\"nofollow\" href=\"https:\/\/identityserver4.readthedocs.io\/en\/latest\/\">IdentityServer4<\/a><\/noindex> implementerar dessa tv\u00e5 protokoll. Det \u00e4r optimerat f\u00f6r att l\u00f6sa <strong>typiska s\u00e4kerhetsproblem.<\/strong> s\u00e4kerhet.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<blockquote><p><noindex><a rel=\"nofollow\" href=\"https:\/\/openid.net\/connect\/\">OpenID Connect<\/a><\/noindex> \u2014 det \u00e4r ett autentiseringsprotokoll och standard, det ger inte tillg\u00e5ng till resurser (Web API), men eftersom det \u00e4r utvecklat ovanp\u00e5 auktoriseringsprotokollet <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/OAuth#OAuth_2.0\">OAuth 2.0<\/a><\/noindex>, l\u00e5ter det dig h\u00e4mta anv\u00e4ndarprofilens parametrar som om du fick tillg\u00e5ng till resursen <noindex><a rel=\"nofollow\" href=\"http:\/\/docs.identityserver.io\/en\/latest\/endpoints\/userinfo.html\">UserInfo<\/a><\/noindex>.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/JSON_Web_Token\">JWT<\/a><\/noindex> (JSON Web Token) \u00e4r en webstandard som definierar hur anv\u00e4ndardata kan \u00f6verf\u00f6ras i JSON-format p\u00e5 ett s\u00e4kert s\u00e4tt.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/rfc6749\">OAuth 2.0 (RFC 6749)<\/a><\/noindex> \u2014 det \u00e4r ett auktoriseringsprotokoll och standard. Det till\u00e5ter applikationer att f\u00e5 tillg\u00e5ng till skyddade resurser, till exempel Web API.<\/p><\/blockquote>\n<p>L\u00e5t oss titta p\u00e5 diagrammet f\u00f6r att f\u00e5 \u00e5tkomst till en skyddad resurs och g\u00e5 igenom de grundl\u00e4ggande stegen och den accepterade terminologin:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"IdentityServer4. Grundl\u00e4ggande begrepp. OpenID Connect, OAuth 2.0 och JWT\" src=\"\/wp-content\/uploads\/2020\/02\/0515b7bc9a4598c557189f8e5ff2c3f5.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<ol>\n<li>\n<p>Klienten beg\u00e4r tillst\u00e5nd av anv\u00e4ndaren att genomg\u00e5 autentisering \u00e5 hans eller hennes v\u00e4gnar. <strong>Klient<\/strong> \u2014 det \u00e4r en klientapplikation som beg\u00e4r \u00e5tkomst till skyddade resurser \u00e5 \u00e4garens v\u00e4gnar. <strong>Resurs<\/strong> \u2014 det \u00e4r alla v\u00e5ra skyddade tj\u00e4nster <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/ru-ru\/aspnet\/core\/tutorials\/first-web-api?view=aspnetcore-3.1&amp;tabs=visual-studio\">Web API<\/a><\/noindex>.<\/p>\n<p>\n<\/li>\n<li>\n<p>Anv\u00e4ndaren till\u00e5ter klientapplikationen att genomg\u00e5 autentisering \u00e5 hans eller hennes v\u00e4gnar, till exempel genom att ange anv\u00e4ndarnamn och l\u00f6senord. Anv\u00e4ndarnamn och l\u00f6senord kommer att fungera som ett auktoriseringstillst\u00e5nd f\u00f6r klientapplikationen. <strong>Anv\u00e4ndare (resurs\u00e4garen)<\/strong> \u2014 ett program eller en person som kan ge \u00e5tkomst till skyddade resurser, till exempel genom att ange anv\u00e4ndarnamn (username) och l\u00f6senord (password);<\/p>\n<p>\n<\/li>\n<li>\n<p>Klientapplikationen beg\u00e4r en \u00e5tkomsttoken fr\u00e5n <code>IdentityServer4<\/code> genom att tillhandah\u00e5lla information om sig sj\u00e4lv (<code>client_id<\/code>, <code>client_secret<\/code>), tillhandah\u00e5lla tillst\u00e5nd f\u00f6r autentisering fr\u00e5n anv\u00e4ndaren (<code>username<\/code>, <code>password<\/code>) och tillhandah\u00e5lla <code>grant_type<\/code> och <code>scope<\/code>. Sedan verifierar auktoriseringsservern klientens \u00e4kthet och resurshavaren (anv\u00e4ndarnamn och l\u00f6senord). <\/p>\n<p><\/p>\n<blockquote><p>OAuth 2.0-protokollet autentiserar inte bara anv\u00e4ndaren, utan \u00e4ven klientapplikationen som f\u00e5r \u00e5tkomst till resurser. F\u00f6r detta \u00e4ndam\u00e5l f\u00f6reskriver protokollet parametrar som <strong>client_id<\/strong> och <strong>client_secret<\/strong>.<br \/>\n<strong>client_id<\/strong> \u2014 det \u00e4r identifieraren f\u00f6r klientapplikationen, som anv\u00e4nds <code>IdentityServer4<\/code> f\u00f6r att h\u00e4mta information om klienten.<br \/>\n<strong>client_secret<\/strong> \u00e4r en motsvarighet till l\u00f6senordet f\u00f6r klientapplikationen och anv\u00e4nds f\u00f6r att autentisera klientapplikationen mot <code>IdentityServer4<\/code>. <strong>Klienthemligheten ska endast vara k\u00e4nd f\u00f6r applikationen och API:et<\/strong>. Utifr\u00e5n det vi just har sagt kan vi dra slutsatsen att <strong>IdentityServer4 m\u00e5ste k\u00e4nna till sina klienter<\/strong>.<\/p><\/blockquote>\n<p>\n<\/li>\n<li>\n<p>Om applikationens \u00e4kthet bekr\u00e4ftas och beh\u00f6righeten att auktorisera \u00e4r giltig, <code>IdentiryServer4<\/code> skapar <code>access-token<\/code> (\u00e5tkomsttoken) f\u00f6r applikationen och en valfri uppdateringsnyckel (<code>refresh-token<\/code>). Auktoriseringsprocessen \u00e4r avslutad. Om beg\u00e4ran \u00e4r ogiltig eller oauktoriserad returnerar auktoriseringsservern en kod med ett motsvarande felmeddelande.<\/p>\n<p>\n<\/li>\n<li>\n<p>Klientapplikationen beg\u00e4r data fr\u00e5n det skyddade Web API:t, och tillhandah\u00e5ller en \u00e5tkomsttoken f\u00f6r auktorisering. Om serverns svarskod <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%B4%D0%BE%D0%B2_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_HTTP#401\">401<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%B4%D0%BE%D0%B2_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_HTTP#403\">403<\/a><\/noindex> eller <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/List_of_HTTP_status_codes\">498<\/a><\/noindex>, \u00e4r \u00e5tkomsttoken som anv\u00e4nds f\u00f6r autentisering ogiltig eller har g\u00e5tt ut.<\/p>\n<p>\n<\/li>\n<li>\n<p>Om token \u00e4r giltig, <code>Web API<\/code> tillhandah\u00e5ller den data till applikationen.<\/p>\n<p>\n<\/li>\n<\/ol>\n<p><\/p>\n<h4 id=\"_tipy-tokenov_\"><em>Typer av token<\/em><\/h4>\n<p><\/p>\n<p>Registrerade <code>IdentityServer4<\/code> klienter f\u00e5r beg\u00e4ra <code>IdentityServer4<\/code> <code>identity<\/code>-token, <code>access<\/code>-token och <code>refresh<\/code>-token.<\/p>\n<p><\/p>\n<ul>\n<li><strong>identity-token (identitetstoken)<\/strong> \u2014 resultatet av autentiseringsprocessen. Inneh\u00e5ller anv\u00e4ndarens identifierare och information om hur och n\u00e4r anv\u00e4ndaren autentiserades. Kan utvidgas med egna data.<\/li>\n<li><strong>access-token (\u00e5tkomsttoken)<\/strong> \u2014 \u00f6verf\u00f6rs till det skyddade API:t och anv\u00e4nds av det f\u00f6r att \u00e5ta sig (ge tillg\u00e5ng till) sina data.<\/li>\n<li><strong>refresh-token (uppdateringstoken)<\/strong> \u2014 en valfri parameter som auktoriseringsservern kan returnera som svar p\u00e5 beg\u00e4ran om \u00e5tkomsttoken.<\/li>\n<\/ul>\n<p><\/p>\n<p>L\u00e5t oss introducera ytterligare tv\u00e5 begrepp:<\/p>\n<p><\/p>\n<p><strong>Authenticatation Server Url<\/strong> \u2014 slutpunkt f\u00f6r att f\u00e5 \u00e5tkomstnyckeln. Alla beg\u00e4rningar om att utf\u00e4rda och f\u00f6rl\u00e4nga \u00e5tkomstnycklar kommer att riktas till denna URL.<\/p>\n<p><\/p>\n<p><strong>Resource Url<\/strong> \u2014 URL-adress till den skyddade resursen som man m\u00e5ste n\u00e5 f\u00f6r att f\u00e5 tillg\u00e5ng till den, genom att skicka med \u00e5tkomstnyckeln i auktoriseringshuvudet.<\/p>\n<p><\/p>\n<h4 id=\"_zapros-klyucha-dostupa_\"><em>Beg\u00e4ran om \u00e5tkomstnyckel<\/em><\/h4>\n<p><\/p>\n<p>F\u00f6r att beg\u00e4ra \u00e5tkomstnyckeln g\u00f6r klienten <code>POST<\/code> beg\u00e4ran till slutpunkten <code>IdentityServer4<\/code> med f\u00f6ljande huvuden<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">'Content-Type': 'application\/x-www-form-urlencoded',\n'Accept': 'application\/json',\n'Expect': '100-continue'<\/code><\/pre>\n<p><\/p>\n<p>och skickar f\u00f6ljande parametrar:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">'grant_type' : 'password',\n'username' : login,\n'password' : password,\n'scope' : 'scope',\n'client_id' : 'client_id',\n'client_secret' : '{client_secret}'<\/code><\/pre>\n<p><\/p>\n<p><code>username<\/code>, <code>password<\/code>, <code>client_id<\/code> och <code>client_secret<\/code> har redogjorts f\u00f6r ovan. L\u00e5t oss g\u00e5 igenom de \u00f6vriga parametrarna:<\/p>\n<p><\/p>\n<p><strong>grant_type<\/strong> \u2014 granttyp eller beh\u00f6righetstyp. Beh\u00f6righetstypen beror p\u00e5 den metod som anv\u00e4nds av applikationen f\u00f6r att beg\u00e4ra autentisering samt vilka typer av beh\u00f6righeter som st\u00f6ds av API:et. I v\u00e5rt fall kommer det att ha v\u00e4rdet <code>password<\/code>, vilket enligt specifikationen <code>OAuth 2.0<\/code> motsvarar grant-type f\u00f6r beh\u00f6righetsuppgifter fr\u00e5n resurs\u00e4garen (autentisering med anv\u00e4ndarnamn och l\u00f6senord).<\/p>\n<p><\/p>\n<p>Protokoll <code>OAuth 2.0<\/code> definierar f\u00f6ljande typer av grants som kr\u00e4ver <strong>obligatorisk interaktion med anv\u00e4ndarna<\/strong>:<\/p>\n<p><\/p>\n<ul>\n<li><strong>autentiseringskod (authorization code)<\/strong>. \u00c4r en av de vanligaste typerna av autentisering, eftersom den passar bra f\u00f6r serverbaserade applikationer (server-side applications), d\u00e4r applikationens k\u00e4llkod och klienthemlighet inte \u00e4r tillg\u00e4ngliga f\u00f6r utomst\u00e5ende;<\/li>\n<li><strong>implicit<\/strong>. Den implicita typen av autentisering anv\u00e4nds av mobila och webbapplikationer, d\u00e4r sekretessen f\u00f6r klienthemligheten inte kan garanteras;<\/li>\n<\/ul>\n<p><\/p>\n<p>Och typerna av grants som <strong>kan utf\u00f6ras utan interaktivt samspel med anv\u00e4ndarna<\/strong>:<\/p>\n<p><\/p>\n<ul>\n<li><strong>resurs\u00e4garen.<\/strong>. Denna typ av autentisering b\u00f6r endast anv\u00e4ndas n\u00e4r klientapplikationen har anv\u00e4ndarens f\u00f6rtroende och anv\u00e4ndaren \u00e4r bekv\u00e4m med att ange sitt anv\u00e4ndarnamn och l\u00f6senord. Denna typ av autentisering b\u00f6r endast anv\u00e4ndas n\u00e4r andra alternativ inte \u00e4r tillg\u00e4ngliga. Denna typ av autentisering \u00e4r praktisk f\u00f6r f\u00f6retagskunder som redan har anv\u00e4nt anv\u00e4ndarens uppgifter i sitt system och vill g\u00e5 \u00f6ver till <code>OAuth 2.0<\/code>.<\/li>\n<li><strong>klientuppgifter.<\/strong>. Anv\u00e4nds vid applikationens \u00e5tkomst till API:et. Detta kan vara anv\u00e4ndbart n\u00e4r applikationen vill uppdatera sin egen registreringsinformation p\u00e5 tj\u00e4nsten eller URI:n f\u00f6r omdirigering, eller f\u00e5 \u00e5tkomst till annan information som lagras i applikationens konto p\u00e5 tj\u00e4nsten via API:et.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>scope<\/strong> \u2014 det \u00e4r en valfri parameter. Den definierar omfattningen. \u00c5tkomsttoken som returneras av servern ger endast \u00e5tkomst till de tj\u00e4nster som ing\u00e5r i denna omfattning. Det vill s\u00e4ga, vi kan kombinera flera tj\u00e4nster under en och samma scope, och om klienten f\u00e5r en \u00e5tkomstnyckel till denna scope f\u00e5r den \u00e5tkomst till alla dessa tj\u00e4nster. Omfattning kan ocks\u00e5 anv\u00e4ndas f\u00f6r att begr\u00e4nsa beh\u00f6righeter (till exempel l\u00e4s- eller skriv\u00e5tkomst)<\/p>\n<p>K\u00e4lla: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/489354\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u042d\u0442\u0438\u043c \u043f\u043e\u0441\u0442\u043e\u043c \u044f \u0445\u043e\u0447\u0443 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432\u0435\u0442\u043a\u0443 \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u0443\u044e IdentityServer4. \u041d\u0430\u0447\u043d\u0435\u043c \u043c\u044b \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u043e\u043d\u044f\u0442\u0438\u0439. \u0421\u0430\u043c\u044b\u043c \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f OpenID Connect, \u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 (\u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430) \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f OAuth 2.0. IdentityServer4 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u044d\u0442\u0438 \u0434\u0432\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430. \u041e\u043d \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438. OpenID Connect \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u043e\u043d \u043d\u0435 \u0434\u0430\u0435\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":71308,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-71307","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u042d\u0442\u0438\u043c \u043f\u043e\u0441\u0442\u043e\u043c \u044f \u0445\u043e\u0447\u0443 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432\u0435\u0442\u043a\u0443 \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u0443\u044e IdentityServer4.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/identityserver4-osnovnye-ponyatiya-openid-connect-oauth-2-0-i-jwt\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47IdentityServer4. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u044f. OpenID Connect, OAuth 2.0 \u0438 JWT | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u042d\u0442\u0438\u043c \u043f\u043e\u0441\u0442\u043e\u043c \u044f \u0445\u043e\u0447\u0443 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432\u0435\u0442\u043a\u0443 \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u0443\u044e IdentityServer4.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/identityserver4-osnovnye-ponyatiya-openid-connect-oauth-2-0-i-jwt\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-02-24T19:18:55+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-03T13:14:27+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47IdentityServer4. Grundl\u00e4ggande begrepp. OpenID Connect, OAuth 2.0 och JWT | ProHoster","description":"Med detta inl\u00e4gg vill jag \u00f6ppna en serie artiklar som handlar om IdentityServer4.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/identityserver4-osnovnye-ponyatiya-openid-connect-oauth-2-0-i-jwt","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47IdentityServer4. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u044f. OpenID Connect, OAuth 2.0 \u0438 JWT | ProHoster","og:description":"\u042d\u0442\u0438\u043c \u043f\u043e\u0441\u0442\u043e\u043c \u044f \u0445\u043e\u0447\u0443 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432\u0435\u0442\u043a\u0443 \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u0443\u044e IdentityServer4.","og:url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/identityserver4-osnovnye-ponyatiya-openid-connect-oauth-2-0-i-jwt","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-02-24T19:18:55+00:00","article:modified_time":"2020-03-03T13:14:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"71307","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:04:25","updated":"2022-09-27 22:46:39","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/71307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=71307"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/71307\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/71308"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=71307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=71307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=71307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}