Π˜Π΄Π΅Π½Ρ‚ΠΈΡ‚ΠΈΠ‘Π΅Ρ€Π²Π΅Ρ€4. Основни појмови. ΠžΠΏΠ΅Π½Π˜Π” Π¦ΠΎΠ½Π½Π΅Ρ†Ρ‚, ΠžΠΡƒΡ‚Ρ… 2.0 ΠΈ ΠˆΠ’Π’

Овим постом ΠΆΠ΅Π»ΠΈΠΌ Π΄Π° ΠΎΡ‚Π²ΠΎΡ€ΠΈΠΌ Π½ΠΈΡ‚ Ρ‡Π»Π°Π½Π°ΠΊΠ° посвСћСних Π˜Π΄Π΅Π½Ρ‚ΠΈΡ‚ΠΈΠ‘Π΅Ρ€Π²Π΅Ρ€4. ΠŸΠΎΡ‡Π½ΠΈΠΌΠΎ са основним ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΠΈΠΌΠ°.

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π·Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ који највишС ΠΎΠ±Π΅Ρ›Π°Π²Π° Ρƒ ΠΎΠ²ΠΎΠΌ Ρ‚Ρ€Π΅Π½ΡƒΡ‚ΠΊΡƒ јС ΠžΠΏΠ΅Π½Π˜Π” Π¦ΠΎΠ½Π½Π΅Ρ†Ρ‚, Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π°ΡƒΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Π΅ (ΠΎΠ±Π΅Π·Π±Π΅Ρ’ΠΈΠ²Π°ΡšΠ΅ приступа) јС ΠžΠΡƒΡ‚Ρ… 2.0. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ‚ΠΈΠ‘Π΅Ρ€Π²Π΅Ρ€4 ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° ΠΎΠ²Π° Π΄Π²Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΎΠ²Π°Π½ јС Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°ΡšΠ΅ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ сигурност.

ΠžΠΏΠ΅Π½Π˜Π” Π¦ΠΎΠ½Π½Π΅Ρ†Ρ‚ јС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΈ стандард Π·Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ, Π½Π΅ ΠΏΡ€ΡƒΠΆΠ° приступ рСсурсима (Π’Π΅Π± АПИ), Π°Π»ΠΈ ΠΏΠΎΡˆΡ‚ΠΎ Π΄ΠΈΠ·Π°Ρ˜Π½ΠΈΡ€Π°Π½ јС Π½Π° Π²Ρ€Ρ…Ρƒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π·Π° Π°ΡƒΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Ρƒ ΠžΠΡƒΡ‚Ρ… 2.0, ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° Π²Π°ΠΌ Π΄Π° Π΄ΠΎΠ±ΠΈΡ˜Π΅Ρ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ корисничког ΠΏΡ€ΠΎΡ„ΠΈΠ»Π° ΠΊΠ°ΠΎ Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ приступ рСсурсу ΠŸΠΎΠ΄Π°Ρ†ΠΈ ΠΎ кориснику.

ΠˆΠ’Π’ (ЈБОН Π’Π΅Π± Π’ΠΎΠΊΠ΅Π½) јС Π²Π΅Π± стандард који Π΄Π΅Ρ„ΠΈΠ½ΠΈΡˆΠ΅ Π½Π°Ρ‡ΠΈΠ½ Π·Π° прСнос корисничких ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° Ρƒ ЈБОН Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ Ρƒ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΎΠΌ ΠΎΠ±Π»ΠΈΠΊΡƒ.

ΠžΠΡƒΡ‚Ρ… 2.0 (Π Π€Π¦ 6749) јС Π°ΡƒΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΈ стандард. ΠžΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°ΠΌΠ° Π΄Π° приступС Π·Π°ΡˆΡ‚ΠΈΡ›Π΅Π½ΠΈΠΌ рСсурсима, ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ су Π²Π΅Π± АПИ-ји.

Π₯ајдС Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π°ΠΌΠΎ Π΄ΠΈΡ˜Π°Π³Ρ€Π°ΠΌ приступа Π·Π°ΡˆΡ‚ΠΈΡ›Π΅Π½ΠΎΠΌ рСсурсу ΠΈ Ρ€Π°Π·ΡƒΠΌΠ΅ΠΌΠΎ Π³Π»Π°Π²Π½Π΅ ΠΊΠΎΡ€Π°ΠΊΠ΅ ΠΈ ΠΏΡ€ΠΈΡ…Π²Π°Ρ›Π΅Π½Ρƒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ˜Ρƒ:

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ‚ΠΈΠ‘Π΅Ρ€Π²Π΅Ρ€4. Основни појмови. ΠžΠΏΠ΅Π½Π˜Π” Π¦ΠΎΠ½Π½Π΅Ρ†Ρ‚, ΠžΠΡƒΡ‚Ρ… 2.0 ΠΈ ΠˆΠ’Π’

  1. ΠšΠ»ΠΈΡ˜Π΅Π½Ρ‚ Ρ‚Ρ€Π°ΠΆΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»Ρƒ ΠΎΠ΄ корисника Π΄Π° сС Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΡƒΡ˜Π΅ Ρƒ њСгово ΠΈΠΌΠ΅. ЦустомСр јС ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ΡΠΊΠ° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° која приступа Π·Π°ΡˆΡ‚ΠΈΡ›Π΅Π½ΠΈΠΌ рСсурсима Ρƒ ΠΈΠΌΠ΅ власника рСсурса. рСсурс - Ρ‚ΠΎ су свС нашС Π·Π°ΡˆΡ‚ΠΈΡ›Π΅Π½Π΅ услугС Π’Π΅Π± АПИ.

  2. ΠšΠΎΡ€ΠΈΡΠ½ΠΈΠΊ Π΄ΠΎΠ·Π²ΠΎΡ™Π°Π²Π° ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ΡΠΊΠΎΡ˜ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜ΠΈ Π΄Π° сС Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΡƒΡ˜Π΅ Ρƒ њСгово ΠΈΠΌΠ΅, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠ½ΠΎΡˆΠ΅ΡšΠ΅ΠΌ корисничког ΠΈΠΌΠ΅Π½Π° ΠΈ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ΅. ΠŸΡ€ΠΈΡ˜Π°Π²Π° ΠΈ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ° Ρ›Π΅ Π±ΠΈΡ‚ΠΈ ΠΎΠ΄ΠΎΠ±Ρ€Π΅ΡšΠ΅ Π·Π° ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ΡΠΊΡƒ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ. ΠšΠΎΡ€ΠΈΡΠ½ΠΈΠΊ (власник рСсурса) β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ ΠΈΠ»ΠΈ особа која ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ΄ΠΎΠ±Ρ€ΠΈ приступ Π·Π°ΡˆΡ‚ΠΈΡ›Π΅Π½ΠΈΠΌ рСсурсима, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠ½ΠΎΡˆΠ΅ΡšΠ΅ΠΌ корисничког ΠΈΠΌΠ΅Π½Π° (корисничког ΠΈΠΌΠ΅Π½Π°) ΠΈ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ΅ (Π»ΠΎΠ·ΠΈΠ½ΠΊΠ΅);

  3. ΠšΠ»ΠΈΡ˜Π΅Π½Ρ‚ΡΠΊΠ° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π·Π°Ρ…Ρ‚Π΅Π²Π° приступни Ρ‚ΠΎΠΊΠ΅Π½ ΠΎΠ΄ IdentityServer4 ΠΏΡ€ΡƒΠΆΠ°ΡšΠ΅ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π° ΠΎ сСби (client_id, client_secret), Π΄ΠΎΠ΄Π΅Ρ™ΠΈΠ²Π°ΡšΠ΅ Π΄ΠΎΠ·Π²ΠΎΠ»Π΅ Π·Π° Π°ΡƒΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Ρƒ ΠΎΠ΄ корисника (username, password) ΠΈ ΠΎΠ±Π΅Π·Π±Π΅Ρ’ΠΈΠ²Π°ΡšΠ΅ grant_type ΠΈ scope. Π—Π°Ρ‚ΠΈΠΌ Π°ΡƒΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½ΠΈ сСрвСр ΠΏΡ€ΠΎΠ²Π΅Ρ€Π°Π²Π° аутСнтичност ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚Π° ΠΈ Π΄Π΅Ρ‚Π°Ρ™Π΅ ΠΎ власнику рСсурса (Π»ΠΎΠ³ΠΈΠ½ ΠΈ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°).

    ΠžΠΡƒΡ‚Ρ… 2.0 ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΏΠΎΡ‚Π²Ρ€Ρ’ΡƒΡ˜Π΅ аутСнтичност Π½Π΅ само корисника, Π²Π΅Ρ› ΠΈ ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ΡΠΊΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ која приступа рСсурсима. Π£ Ρ‚Ρƒ сврху, ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΎΠ±Π΅Π·Π±Π΅Ρ’ΡƒΡ˜Π΅ Ρ‚Π°ΠΊΠ²Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ ΠΊΠ°ΠΎ Π˜Π” ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚Π° ΠΈ Ρ†Π»ΠΈΠ΅Π½Ρ‚_сСцрСт.
    Π˜Π” ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚Π° јС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ΡΠΊΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ који сС користи IdentityServer4 Π·Π° Ρ‚Ρ€Π°ΠΆΠ΅ΡšΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π° ΠΎ ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚Ρƒ.
    Ρ†Π»ΠΈΠ΅Π½Ρ‚_сСцрСт јС Π°Π½Π°Π»ΠΎΠ³Π½Π° Π»ΠΎΠ·ΠΈΠ½ΠΊΠΈ Π·Π° ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ΡΠΊΡƒ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ ΠΈ користи сС Π·Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ΡΠΊΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ Π½Π° IdentityServer4. Вајна ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚Π° Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π±ΡƒΠ΄Π΅ ΠΏΠΎΠ·Π½Π°Ρ‚Π° само Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜ΠΈ ΠΈ АПИ-Ρ˜Ρƒ. На основу Π½Π°Π²Π΅Π΄Π΅Π½ΠΎΠ³ Π·Π°ΠΊΡ™ΡƒΡ‡ΡƒΡ˜Π΅ΠΌΠΎ Π΄Π° Π˜Π΄Π΅Π½Ρ‚ΠΈΡ‚ΠΈΠ‘Π΅Ρ€Π²Π΅Ρ€4 Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π·Π½Π° ΠΎ својим ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ΠΈΠΌΠ°.

  4. Ако јС Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΠΏΠΎΡ‚Π²Ρ€Ρ’Π΅Π½Π° ΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»Π° Π·Π° Π°ΡƒΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Ρƒ јС Π²Π°ΠΆΠ΅Ρ›Π°, IdentiryServer4 ствара access-Ρ‚ΠΎΠΊΠ΅Π½ (Ρ‚ΠΎΠΊΠ΅Π½ Π·Π° приступ) Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ ΠΈ ΠΎΠΏΡ†ΠΈΠΎΠ½ΠΈ ΠΊΡ™ΡƒΡ‡ Π·Π° освСТавањС (refresh-Ρ‚ΠΎΠΊΠ΅Π½). ΠŸΡ€ΠΎΡ†Π΅Ρ Π°ΡƒΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Π΅ јС Π·Π°Π²Ρ€ΡˆΠ΅Π½. Ако јС Π·Π°Ρ…Ρ‚Π΅Π² Π½Π΅Π²Π°ΠΆΠ΅Ρ›ΠΈ ΠΈΠ»ΠΈ Π½Π΅ΠΎΠ²Π»Π°ΡˆΡ›Π΅Π½, сСрвСр Π·Π° Π°ΡƒΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Ρƒ Π²Ρ€Π°Ρ›Π° ΠΊΠΎΠ΄ са ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π°Ρ˜ΡƒΡ›ΠΎΠΌ ΠΏΠΎΡ€ΡƒΠΊΠΎΠΌ ΠΎ Π³Ρ€Π΅ΡˆΡ†ΠΈ.

  5. ΠšΠ»ΠΈΡ˜Π΅Π½Ρ‚ΡΠΊΠ° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° приступа Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΠΌ Π²Π΅Π± АПИ-Ρ˜Ρƒ Π·Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΊΠ΅, ΠΎΠ±Π΅Π·Π±Π΅Ρ’ΡƒΡ˜ΡƒΡ›ΠΈ приступни Ρ‚ΠΎΠΊΠ΅Π½ Π·Π° Π°ΡƒΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Ρƒ. Ако ΠΊΠΎΠ΄ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€Π° сСрвСра рСсурса 401, 403 ΠΈΠ»ΠΈ 498, ΠΎΠ½Π΄Π° јС Ρ‚ΠΎΠΊΠ΅Π½ Π·Π° приступ који сС користи Π·Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ Π½Π΅Π²Π°ΠΆΠ΅Ρ›ΠΈ ΠΈΠ»ΠΈ истСкао.

  6. Ако јС Ρ‚ΠΎΠΊΠ΅Π½ Π²Π°Π»ΠΈΠ΄Π°Π½, Web API дајС ΠΏΠΎΠ΄Π°Ρ‚ΠΊΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜ΠΈ.

ВрстС Ρ‚ΠΎΠΊΠ΅Π½Π°

РСгистрован Ρƒ IdentityServer4 ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ΠΈΠΌΠ° јС Π΄ΠΎΠ·Π²ΠΎΡ™Π΅Π½ΠΎ Π΄Π° Ρ‚Ρ€Π°ΠΆΠ΅ IdentityServer4 identity- ΠΆΠ΅Ρ‚ΠΎΠ½, access-ΠΆΠ΅Ρ‚ΠΎΠ½ ΠΈ refresh-Ρ‚ΠΎΠΊΠ΅Π½.

  • Ρ‚ΠΎΠΊΠ΅Π½ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚Π° (ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½ΠΈ Ρ‚ΠΎΠΊΠ΅Π½) β€” Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ процСса Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅. Π‘Π°Π΄Ρ€ΠΆΠΈ кориснички Π˜Π” ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π΅ ΠΎ Ρ‚ΠΎΠΌΠ΅ ΠΊΠ°ΠΊΠΎ ΠΈ ΠΊΠ°Π΄Π° јС корисник Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠΎΠ²Π°Π½. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π³Π° ΠΏΡ€ΠΎΡˆΠΈΡ€ΠΈΡ‚ΠΈ сопствСним ΠΏΠΎΠ΄Π°Ρ†ΠΈΠΌΠ°.
  • приступни Ρ‚ΠΎΠΊΠ΅Π½ β€” сС прСноси Π·Π°ΡˆΡ‚ΠΈΡ›Π΅Π½ΠΎΠΌ АПИ-Ρ˜Ρƒ ΠΈ користи Π³Π° Π΄Π° овласти (Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈ приступ) својим ΠΏΠΎΠ΄Π°Ρ†ΠΈΠΌΠ°.
  • рСфрСсх-Ρ‚ΠΎΠΊΠ΅Π½ (Ρ‚ΠΎΠΊΠ΅Π½ Π·Π° освСТавањС) јС ΠΎΠΏΡ†ΠΈΠΎΠ½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ који сСрвСр Π·Π° Π°ΡƒΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Ρƒ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²Ρ€Π°Ρ‚ΠΈ ΠΊΠ°ΠΎ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ Π½Π° Π·Π°Ρ…Ρ‚Π΅Π² Ρ‚ΠΎΠΊΠ΅Π½Π° Π·Π° приступ.

Π₯ајдС Π΄Π° прСдставимо још Π΄Π²Π° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚Π°:

Π£Ρ€Π» сСрвСра Π·Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ β€” ΠΊΡ€Π°Ρ˜ΡšΠ° Ρ‚Π°Ρ‡ΠΊΠ° Π·Π° добијањС приступног ΠΊΡ™ΡƒΡ‡Π°. Π‘Π²Π΅ Π·Π°Ρ…Ρ‚Π΅Π²Π΅ Π·Π° ΠΎΠ±Π΅Π·Π±Π΅Ρ’ΠΈΠ²Π°ΡšΠ΅ ΠΈ ΠΎΠ±Π½Π°Π²Ρ™Π°ΡšΠ΅ приступних ΠΊΡ™ΡƒΡ‡Π΅Π²Π° Ρ›Π΅ΠΌΠΎ усмСрити Π½Π° ΠΎΠ²Ρƒ Π£Π Π› адрСсу.

Π£Ρ€Π» рСсурса β€” Π£Π Π› Π·Π°ΡˆΡ‚ΠΈΡ›Π΅Π½ΠΎΠ³ рСсурса који сС ΠΌΠΎΡ€Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΈΡ€Π°Ρ‚ΠΈ Π΄Π° бистС ΠΌΡƒ приступили, ΠΏΡ€ΠΎΡΠ»Π΅Ρ’ΡƒΡ˜ΡƒΡ›ΠΈ ΠΌΡƒ приступни ΠΊΡ™ΡƒΡ‡ Ρƒ Π·Π°Π³Π»Π°Π²Ρ™Ρƒ Π°ΡƒΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Π΅.

Π—Π°Ρ…Ρ‚Π΅Π² Π·Π° приступни ΠΊΡ™ΡƒΡ‡

Π”Π° Π±ΠΈ Π·Π°Ρ‚Ρ€Π°ΠΆΠΈΠΎ приступни ΠΊΡ™ΡƒΡ‡, ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ Ρ‚ΠΎ Ρ‡ΠΈΠ½ΠΈ POST Π·Π°Ρ…Ρ‚Π΅Π² Π΄ΠΎ ΠΊΡ€Π°Ρ˜ΡšΠ΅ Ρ‚Π°Ρ‡ΠΊΠ΅ IdentityServer4 са слСдСћим насловом

'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json',
'Expect': '100-continue'

ΠΈ ΠΏΡ€ΠΎΡΠ»Π΅Ρ’ΠΈΠ²Π°ΡšΠ΅ слСдСћих ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€Π°:

'grant_type' : 'password',
'username' : login,
'password' : password,
'scope' : 'scope',
'client_id' : 'client_id',
'client_secret' : '{client_secret}'

username, password, client_id ΠΈ client_secret ΠΎ којима јС Π±ΠΈΠ»ΠΎ Ρ€Π΅Ρ‡ΠΈ Π³ΠΎΡ€Π΅. ПоглСдајмо прСосталС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅:

Π³Ρ€Π°Π½Ρ‚_Ρ‚ΠΈΠΏΠ΅ β€” Ρ‚ΠΈΠΏ ΠΎΠ΄ΠΎΠ±Ρ€Π΅ΡšΠ° ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ ΠΎΠ²Π»Π°ΡˆΡ›Π΅ΡšΠ°. Π’ΠΈΠΏ Π΄ΠΎΠ·Π²ΠΎΠ»Π΅ Π·Π° Π°ΡƒΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Ρƒ зависи ΠΎΠ΄ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Π·Π°Ρ…Ρ‚Π΅Π²Π° Π·Π° Π°ΡƒΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Ρƒ ΠΊΠΎΡ˜Ρƒ користи Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°, ΠΊΠ°ΠΎ ΠΈ ΠΎΠ΄ Ρ‚ΠΎΠ³Π° којС Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π΄ΠΎΠ·Π²ΠΎΠ»Π° ΠΏΠΎΠ΄Ρ€ΠΆΠ°Π²Π° АПИ. Π£ нашСм ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ Ρ‚ΠΎ Ρ›Π΅ Π±ΠΈΡ‚ΠΈ Π²Π°ΠΆΠ½ΠΎ password, ΡˆΡ‚ΠΎ јС ΠΏΡ€Π΅ΠΌΠ° ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜ΠΈ OAuth 2.0 ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π° Π΄Π΅Ρ‚Π°Ρ™ΠΈΠΌΠ° ΠΎ Π΄ΠΎΠ΄Π΅Π»ΠΈ приступа власника рСсурса (ΠΎΠ²Π»Π°ΡˆΡ›Π΅ΡšΠ΅ ΠΏΡƒΡ‚Π΅ΠΌ Π»ΠΎΠ³ΠΈΠ½-Π° ΠΈ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ΅).

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» OAuth 2.0 Π΄Π΅Ρ„ΠΈΠ½ΠΈΡˆΠ΅ слСдСћС врстС Π΄ΠΎΡ‚Π°Ρ†ΠΈΡ˜Π° којС Π·Π°Ρ…Ρ‚Π΅Π²Π°Ρ˜Ρƒ ΠΎΠ±Π°Π²Π΅Π·Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Π° са корисницима:

  • ΠΊΠΎΠ΄ Π·Π° Π΄ΠΎΠ·Π²ΠΎΠ»Ρƒ. Π’ΠΎ јС јСдна ΠΎΠ΄ Π½Π°Ρ˜Ρ‡Π΅ΡˆΡ›ΠΈΡ… врста Π΄ΠΎΠ·Π²ΠΎΠ»Π΅ Π·Π° Π°ΡƒΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Ρƒ, Ρ˜Π΅Ρ€ ΠΏΠΎΠ³ΠΎΠ΄Π°Π½ Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ Π½Π° страни сСрвСра, Π³Π΄Π΅ ΠΈΠ·Π²ΠΎΡ€Π½ΠΈ ΠΊΠΎΠ΄ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ ΠΈ Ρ‚Π°Ρ˜Π½Π° ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚Π° нису доступни Π°ΡƒΡ‚ΡΠ°Ρ˜Π΄Π΅Ρ€ΠΈΠΌΠ°;
  • ΠΈΠΌΠΏΠ»ΠΈΡ†ΠΈΡ‚Π½ΠΎ. Π’ΠΈΠΏ Π΄ΠΎΠ·Π²ΠΎΠ»Π΅ ΠΈΠΌΠΏΠ»ΠΈΡ†ΠΈΡ‚Π½Π΅ Π°ΡƒΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Π΅ користС ΠΌΠΎΠ±ΠΈΠ»Π½Π΅ ΠΈ Π²Π΅Π± Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ Π³Π΄Π΅ сС Π½Π΅ ΠΌΠΎΠΆΠ΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΎΠ²Π°Ρ‚ΠΈ повСрљивост Ρ‚Π°Ρ˜Π½Π΅ ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚Π°;

И врстС Π³Ρ€Π°Π½Ρ‚ΠΎΠ²Π° којС ΠΌΠΎΠΆΠ΅ сС ΠΈΠ·Π²Ρ€ΡˆΠΈΡ‚ΠΈ Π±Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Π΅ корисника:

  • ΠΏΠΎΠ΄Π°Ρ†ΠΈ ΠΎ власнику рСсурса. Ова врста Π΄ΠΎΠ·Π²ΠΎΠ»Π΅ Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС користи само Π°ΠΊΠΎ корисник ΠΈΠΌΠ° ΠΏΠΎΠ²Π΅Ρ€Π΅ΡšΠ° Ρƒ ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ΡΠΊΡƒ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ ΠΈ Π°ΠΊΠΎ јС корисник спрСман Π΄Π° унСсС ΡΠ²ΠΎΡ˜Ρƒ ΠΏΡ€ΠΈΡ˜Π°Π²Ρƒ ΠΈ Π»ΠΎΠ·ΠΈΠ½ΠΊΡƒ. Овај Ρ‚ΠΈΠΏ Π΄ΠΎΠ·Π²ΠΎΠ»Π΅ Ρ‚Ρ€Π΅Π±Π° користити само ΠΊΠ°Π΄Π° Π΄Ρ€ΡƒΠ³Π΅ ΠΎΠΏΡ†ΠΈΡ˜Π΅ нису доступнС. Ова врста Π΄ΠΎΠ·Π²ΠΎΠ»Π΅ јС ΠΏΠΎΠ³ΠΎΠ΄Π½Π° Π·Π° ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Π΅ ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚Π΅ који су Π²Π΅Ρ› користили корисничкС Π°ΠΊΡ€Π΅Π΄ΠΈΡ‚ΠΈΠ²Π΅ Ρƒ свом систСму ΠΈ ΠΆΠ΅Π»Π΅ Π΄Π° ΠΏΡ€Π΅Ρ’Ρƒ Π½Π° OAuth 2.0.
  • Π°ΠΊΡ€Π΅Π΄ΠΈΡ‚ΠΈΠ²Π΅ ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚Π°. ΠšΠΎΡ€ΠΈΡΡ‚ΠΈ сС ΠΊΠ°Π΄Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° приступа АПИ-Ρ˜Ρƒ. Ово ΠΌΠΎΠΆΠ΅ Π±ΠΈΡ‚ΠΈ корисно, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°Π΄Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΠΆΠ΅Π»ΠΈ Π΄Π° Π°ΠΆΡƒΡ€ΠΈΡ€Π° сопствСнС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π΅ ΠΎ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜ΠΈ услугС ΠΈΠ»ΠΈ прСусмСри УРИ, ΠΈΠ»ΠΈ Π΄Π° приступи Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π°ΠΌΠ° ΡƒΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅Π½ΠΈΠΌ Π½Π° Π½Π°Π»ΠΎΠ³Ρƒ услугС Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ ΠΏΡ€Π΅ΠΊΠΎ АПИ-ја услугС.

ΠΎΠ±ΠΈΠΌ - Ово јС ΠΎΠΏΡ†ΠΈΠΎΠ½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€. Π”Π΅Ρ„ΠΈΠ½ΠΈΡˆΠ΅ ΠΎΠ±ΠΈΠΌ. ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠ½ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ који Π²Ρ€Π°Ρ‚ΠΈ сСрвСр Ρ›Π΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈΡ‚ΠΈ приступ само услугама којС ΡΠΏΠ°Π΄Π°Ρ˜Ρƒ Ρƒ Ρ‚Π°Ρ˜ опсСг. ОнС. ΠΌΠΎΠΆΠ΅ΠΌΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΎΠ²Π°Ρ‚ΠΈ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ услуга ΠΏΠΎΠ΄ јСдним опсСгом ΠΈ Π°ΠΊΠΎ ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ добијС приступни ΠΊΡ™ΡƒΡ‡ Π·Π° овај опсСг, добија приступ свим ΠΎΠ²ΠΈΠΌ услугама. ОпсСг сС Ρ‚Π°ΠΊΠΎΡ’Π΅ ΠΌΠΎΠΆΠ΅ користити Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°ΡšΠ΅ ΠΏΡ€Π°Π²Π° Π°ΡƒΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Π΅ (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, приступ Π·Π° Ρ‡ΠΈΡ‚Π°ΡšΠ΅ ΠΈΠ»ΠΈ писањС)

Π˜Π·Π²ΠΎΡ€: Π²Π²Π².Ρ…Π°Π±Ρ€.Ρ†ΠΎΠΌ

ΠšΡƒΠΏΠΈΡ‚Π΅ ΠΏΠΎΡƒΠ·Π΄Π°Π½ хостинг Π·Π° ΡΠ°Ρ˜Ρ‚ΠΎΠ²Π΅ са Π”Π”ΠΎΠ‘ Π·Π°ΡˆΡ‚ΠΈΡ‚ΠΎΠΌ, Π’ΠŸΠ‘ Π’Π”Π‘ сСрвСрС πŸ”₯ ΠšΡƒΠΏΠΈΡ‚Π΅ ΠΏΠΎΡƒΠ·Π΄Π°Π½ Π²Π΅Π± хостинг са DDoS Π·Π°ΡˆΡ‚ΠΈΡ‚ΠΎΠΌ, VPS VDS сСрвСрС | ProHoster