۱۳۹۹ دی ۹, سه‌شنبه

سرویس های ضروری Keycloak

Keycloak یکی ازسرور های احراز هویت قدرتمند حال حاضر است. اپن سورس و در نتیجه رایگان است، اما امکان تهیه پشتیبان حرفه ای از ردهت هم موجود است.
وقتی در حال طراحی اپلیکیشن به صورت میکروسرویس هستیم، هر بیزینسی را به صورت یک سرویس میبینیم، و یکی از مهمترین این سرویس ها، مدیریت کاربران است. Kecloak این رو برای شما هندل میکنه و سرویس های شما رو امن میکنه.
حالا من میخوام یک سری از سرویس های کلی Keycloak رو براتون به اشتراک بزارم،‌که کارتون برای شروع راحتتر بشه.
لیست سرویس های عمومی Keycloak از قرار زیر است:
  • Login

  • 
    curl --location --request POST '{KEYCLOAK_ADDRESS}/auth/realms/{REALM_NAME}/protocol/openid-connect/token' \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --data-urlencode 'grant_type=password' \
    --data-urlencode 'username={USERNAME}' \
    --data-urlencode 'password={PASSWORD}' \
    --data-urlencode 'client_id={CLIENT_ID}' \
    --data-urlencode 'scope=openid profile email'
    
  • Logout

  • 
    curl --location --request POST '{KEYCLOAK_ADDRESS}/auth/realms/{REALM_NAME}/protocol/openid-connect/logout' \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --data-urlencode 'client_id={CLIENT_ID}' \
    --data-urlencode 'refresh_token={REFRESH_TOKEN}'
    
  • Refresh token

  • 
    curl --location --request POST '{KEYCLOAK_ADDRESS}/auth/realms/{REALM_NAME}/protocol/openid-connect/token' \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --data-urlencode 'grant_type=refresh_token'\
    --data-urlencode 'client_id={CLIENT_ID}' \
    --data-urlencode 'refresh_token={REFRESH_TOKEN}' \
    --data-urlencode 'scope=openid profile email'
    
  • User info

  • 
    curl --location --request GET '{KEYCLOAK_ADDRESS}/auth/realms/{REALM_NAME}/protocol/openid-connect/userinfo' \
    --header 'Authorization: Bearer {ACCESS_TOKEN}' 
متغیرهای بکاررفته (داخل آکولاد آمده اند {}):
  • KEYCLOAK_ADDRESS: آدرس هاست یا IP که Keycloak در دسترس است (به استثنا پورت های پیشفرض ۸۰ و ۴۴۳)
  • REALM_NAME: نام Realm که قرار نام کاربری و رمز عبور را بررسی کند
  • USERNAME: نام کاربری کاربر
  • PASSWORD: رمز عبور کاربر
  • CLIENT_ID: نام کلاینتی که اقدام به درخواست توکن کرده است، که مدیر Keycloak در اختیار شما میگذارد
  • ACCESS_TOKEN: بعد از لاگین موفق، این توکن به شما داده میشود
  • REFRESH_TOKEN: بعد از لاگین موفق، این توکن به شما داده میشود
    • بعد از اینکه لاگین کنید، یک آبجکت JSON به شما برگردانده میشود که شامل ACCESS_TOKEN و  REFRESH_TOKEN است:
      
      {
          "access_token": "",
          "expires_in": 1800,
          "refresh_expires_in": 1800,
          "refresh_token": "",
          "token_type": "bearer",
          "id_token": "",
          "not-before-policy": 1586858187,
          "session_state": "d198beba-1a53-4626-b7c8-43fba872b6c5",
          "scope": "openid profile email"
      }

هیچ نظری موجود نیست:

پست کردن نظر