ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

АутСнтификация ΠΏΠΎ Cookies

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Web API примСняСт ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Oath2, которая описываСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ². ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ этой спСцификации ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ OWIN, благодаря ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ гСнСрация Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ², ΠΈΡ… Π²Ρ‹Π΄Π°Ρ‡Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΈ ΠΈΡ… Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ°Ρ валидация. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈ создании прилоТСния Web API Π½Π°ΠΌ Π½Π΅ Π½Π°Π΄ΠΎ самим Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ сСрвСр Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, всС эти Π΄Π΅Ρ‚Π°Π»ΠΈ, Π° Π΄ΠΎΡΡ‚ΠΎΡ‡Π½ΠΎ Π²Π·ΡΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

АутСнтификация ΠΏΠΎ Cookies (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘Ρ…Π΅ΠΌΠ° дСйствия:

Π’ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½ΠΎΠΌ RESTful сСрвисС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π·Π° ΡΠΎΡΡ‚ояниями ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ производится Π½Π° ΡΡ‚ΠΎΡ€ΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

Для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², ΠΏΠΎΠΌΠΈΠΌΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², COOKIES слоТны Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…, Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΉ сцСнарий использования Ρ‚Π°ΠΊΠΎΠΉ:

  • — api смотрит Π½Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ «Authorization», Π² ΡΠ»ΡƒΡ‡Π°Π΅ Π½Π΅-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΡƒΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π° информация для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ
  • — Π΅ΡΠ»ΠΈ Ρ‚Π°ΠΊΠΎΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ отсутсвуСт, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ся сСссионная cookie для осущСствлСния Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΡΡ‚ΠΎΡ€ΠΎΠ½Π΅ сСрвСра.

НСдостатки:

Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ трСбованиям RESTful сСрвиса Π² Π²ΠΎΠΏΡ€ΠΎΡΠ΅ нСзависимости ΠΎΡ‚ ΡΠΎΡΡ‚ояния, уязвима ΠΊ Π°Ρ‚Π°ΠΊΠ°ΠΌ man-in-the middle, воспроизвСдСниС, Π½Π° ΡΡ‚ΠΎΡ€ΠΎΠ½Π΅ сСрвСра ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΡΠ΅ΡΡΠΈΠΎΠ½Π½ΡƒΡŽ id, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ REST-ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΠΈ.

Π’Π°Π±Π»ΠΈΡ†Π° 1.6 — Запрос ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (RFC 6749) для получСния Ρ‚ΠΎΠΊΠ΅Π½Π°.

Запрос.

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ.

Π’Π΅Π»ΠΎ.

GET /api//user_info HTTP/1.0.

Host: rucont.ru.

Cookie: theme=light; sessionToken=abc123.

;

АутСнтификация ΠΏΠΎ Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌ ΠΈ SSO

Π’Π°ΠΊΠΎΠΉ способ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‡Π°Ρ‰Π΅ всСго примСняСтся ΠΏΡ€ΠΈ построСнии распрСдСлСнных систСм, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Π΅Π΄ΠΈΠ½Ρ‹ΠΉ сСрвис для Π²Ρ…ΠΎΠ΄Π° (SSO), Π³Π΄Π΅ ΠΎΠ΄Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰Π΅Π΅ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ CСрвиса-поставщика (Π°Π½Π³Π». «service provider», «relying party», «SP»), — Π² Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Ρ… Π²ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΈ БСрвисов, — Π΄Π΅Π»Π΅Π³ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ (identity provider ΠΈΠ»ΠΈ authentication service). Π’Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ прСдставляСт собой сСрвис-поставщик ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… услуг. БСрвис-поставщик ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… услуг (Π°Π½Π³Π». «identity provider», ««identity assertion provider», «IdP») — Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ основныС Π·Π°Π΄Π°Ρ‡ΠΈ:

прСдоставляСт ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… с ΡΠΈΡΡ‚Π΅ΠΌΠΎΠΉ;

прСдоставляСт ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ извСстСн сСрвису-поставщику;

Π² ΡΠ»ΡƒΡ‡Π°Π΅ сущСствования Ρ‚Π°ΠΊΠΎΠΉ нСобходимости, прСдоставляСт ΠΈΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ извСстСн сСрвису-поставщику. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ достигнуто с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ модуля Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ этого способа — Π²Ρ…ΠΎΠ΄ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях. Π—Π΄Π΅ΡΡŒ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ сСти ΡΠ²Π»ΡΡŽΡ‚ΡΡ сСрвисами Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ довСряСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ сСтям.

РСализация этого способа Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ IdP-сСрвис прСдоставляСт достовСрныС свСдСния ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ Π² Π²ΠΈΠ΄Π΅ Ρ‚ΠΎΠΊΠ΅Π½Π°, Π° SP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ этот Ρ‚ΠΎΠΊΠ΅Π½ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

На ΠΎΠ±Ρ‰Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅, вСсь процСсс выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠΊΠ»ΠΈΠ΅Π½Ρ‚ аутСнтифицируСтся Π² identity provider ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², спСцифичным для Π½Π΅Π³ΠΎ (ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, ΠΊΠ»ΡŽΡ‡ доступа, сСртификат, Kerberos, ΠΈΡ‚Π΄.);

ΠΊΠ»ΠΈΠ΅Π½Ρ‚ просит identity provider ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅ΠΌΡƒ Ρ‚ΠΎΠΊΠ΅Π½ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ SP-прилоТСния. Identity provider Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠΊΠ΅Π½ ΠΈ ΠΎΡ‚правляСт Π΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ;

ΠΊΠ»ΠΈΠ΅Π½Ρ‚ аутСнтифицируСтся Π² SP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ этого Ρ‚ΠΎΠΊΠ΅Π½Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Β«Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎΒ» ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ‚ΠΎΠΊΠ΅Π½Π°, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ посрСдством Bearer-схСмы.

Рисунок 1.5 — ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ «Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ» ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ‚ΠΎΠΊΠ΅Π½Π°, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ посрСдством Bearer-схСмы.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ, описанный Π²Ρ‹ΡˆΠ΅, ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ρ‚. Π΅. Ρ‚Π°ΠΊΠΎΠ³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, iOS/Android прилоТСния). Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΆΠ΅ — пассивный ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π² Ρ‚ΠΎΠΌ смыслС, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ страницы, Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π’ ΡΡ‚ΠΎΠΌ случаС аутСнтификация достигаСтся посрСдством автоматичСского пСрСнаправлСния Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Π±-прилоТСниями IdP ΠΈ SP.

Рисунок 1.6 — ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ «ΠΏΠ°ΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ» ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° посрСдством пСрСнаправлСния запросов БущСствуСт нСсколько стандартов, Π² Ρ‚очности ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ (Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΠΈ ΠΏΠ°ΡΡΠΈΠ²Π½Ρ‹ΠΌΠΈ) ΠΈ IP/SP-прилоТСниями ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ². Π‘Ρ€Π΅Π΄ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных стандартов — OAuth, OpenID Connect, SAML, ΠΈ WS-Federation.

Π‘Π°ΠΌ Ρ‚ΠΎΠΊΠ΅Π½ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдставляСт собой структуру Π΄Π°Π½Π½Ρ‹Ρ…, которая содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΊΡ‚ΠΎ сгСнСрировал Ρ‚ΠΎΠΊΠ΅Π½, ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ‚ΠΎΠΊΠ΅Π½Π°, срок дСйствия, Π½Π°Π±ΠΎΡ€ свСдСний ΠΎ ΡΠ°ΠΌΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ (claims). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‚ΠΎΠΊΠ΅Π½ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ подписываСтся для прСдотвращСния нСсанкционированных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΉ подлинности.

ΠŸΡ€ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΎΠΊΠ΅Π½Π° SP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ:

Ρ‚ΠΎΠΊΠ΅Π½ Π±Ρ‹Π» Π²Ρ‹Π΄Π°Π½ Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ identity provider ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° поля issuer);

Ρ‚ΠΎΠΊΠ΅Π½ прСдназначаСтся Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ SP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° поля audience);

срок дСйствия Ρ‚ΠΎΠΊΠ΅Π½Π° Π΅Ρ‰Π΅ Π½Π΅ ΠΈΡΡ‚Π΅ΠΊ (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° поля expiration date);

Ρ‚ΠΎΠΊΠ΅Π½ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΈ Π½Π΅ Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° подписи).

Π’ ΡΠ»ΡƒΡ‡Π°Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ SP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ выполняСт Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ запроса Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅, содСрТащихся Π² Ρ‚ΠΎΠΊΠ΅Π½Π΅[16].

Π’Ρ‹Π±ΠΎΡ€ способов Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π’Ρ‹Π±ΠΎΡ€ способ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ находится Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ API, Π° Ρ‚Π°ΠΊΠΆΠ΅ основных Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ Π΄Π°Π½Π½ΠΎΠ΅ API.

НазначСниСм API ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

основноС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ВзаимодСйствиС с front-end Ρ‡Π°ΡΡ‚ΡŒΡŽ систСмы для выполнСния основной бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ систСмы Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½ΠΎΠ΅. ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², прСдоставляСмых API, сторонними прилоТСниями;

Ρ‚ΠΎΡ‡ΠΊΠ° доступа для осущСствлСния ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… использования Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… систСм ООО ΠΠ¦Π  «Π Π£ΠšΠžΠΠ’».

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹Π΅;

Π½Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹Π΅.

ΠžΡ‚ΡΡŽΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΎ Π½Π΅ΠΎΠ±Ρ…одимости внСдрСния Π΄Π²ΡƒΡ… способов Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

аутСнтификация ΠΏΠΎ cookie, ΡΠ²Π»ΡΡŽΡ‰Π°ΡΡΡ классичСским Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΌΡΡ для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ²;

аутСнтификация ΠΏΠΎ Ρ‚ΠΎΠΊΠ΅Π½Ρƒ, ΡΠ²Π»ΡΡŽΡ‰Π°ΡΡΡ ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСнным Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для RESTful сСрвисов.

О Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.

Web API примСняСт ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Oath2, которая описываСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ². ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ этой спСцификации ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ OWIN, благодаря ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ гСнСрация Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ², ΠΈΡ… Π²Ρ‹Π΄Π°Ρ‡Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΈ ΠΈΡ… Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ°Ρ валидация. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈ создании прилоТСния Web API Π½Π°ΠΌ Π½Π΅ Π½Π°Π΄ΠΎ самим Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ сСрвСр Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, всС эти Π΄Π΅Ρ‚Π°Π»ΠΈ, Π° Π΄ΠΎΡΡ‚ΠΎΡ‡Π½ΠΎ Π²Π·ΡΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт ASP.NET [17].

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ