Media is too big
VIEW IN TELEGRAM
دورهمی هفته یازدهم مهندسین گولنگ
(پیشنهاد میشه ببینید)
موضوع: GRPC, Protocol Buffers, Google API Design, Transcoding (بخش اول)
این هفته به موضوع GRPC, Protocol Buffers پرداختیم و یک پروژه کوچک را آغاز کردیم و grpc server, client را توسعه دادیم.
🔗 لینک ویدئو در یوتیوب: https://www.youtube.com/watch?v=iAvGdVDkbG8
🔗 شنیدن پادکست در اسپاتیفای: https://open.spotify.com/show/6aQdgKiOF5tuzI7mpijlfj
🔗 شنیدن پادکست در گوگل پادکست: https://podcasts.google.com/feed/aHR0cHM6Ly9hbmNob3IuZm0vcy9kZGY3OWRiNC9wb2RjYXN0L3Jzcw
🔗 شنیدن پادکست در کست باکس: https://castbox.fm/va/5381928
🔗 آدرس پروژه: https://github.com/GoFarsi/grpc-service
@gopher_academy
(پیشنهاد میشه ببینید)
موضوع: GRPC, Protocol Buffers, Google API Design, Transcoding (بخش اول)
این هفته به موضوع GRPC, Protocol Buffers پرداختیم و یک پروژه کوچک را آغاز کردیم و grpc server, client را توسعه دادیم.
🔗 لینک ویدئو در یوتیوب: https://www.youtube.com/watch?v=iAvGdVDkbG8
🔗 شنیدن پادکست در اسپاتیفای: https://open.spotify.com/show/6aQdgKiOF5tuzI7mpijlfj
🔗 شنیدن پادکست در گوگل پادکست: https://podcasts.google.com/feed/aHR0cHM6Ly9hbmNob3IuZm0vcy9kZGY3OWRiNC9wb2RjYXN0L3Jzcw
🔗 شنیدن پادکست در کست باکس: https://castbox.fm/va/5381928
🔗 آدرس پروژه: https://github.com/GoFarsi/grpc-service
@gopher_academy
👍3🔥1
سلام به همه وقتتون بخیر
من این چند وقت پست کم گذاشتم دلیل آنلاین نبودنم در واقع این کسب و کاریه که تازگیا شروع کردم😁
همیشه به راه اندازی فروشگاه آنلاین علاقه خاصی داشتم در کل از تولید کردن و فروختن خیلی خوشم میاد. بالاخره دارم انجامش میدم:)
تابلو های این شکلی میفروشیم که اسمشو گذاشتیم«تابلو لومن»
تابلو بصورت نقاشی با قلم سیاه هستش ولی وقتی روشن میشه همه چی خیلی خوشگل تر میشه
همچنین طرح مورد علاقه خودتونم میتونیم براتون آماده کنیم👌
برای تزئین و هدیه دادن خیلی مناسبه
لینک کانال استلار هنر:
@StellarHonar
گالری محصولاتمون:
https://stellarhonar.ir
الان که اول راهمون هستیم اگه تو کانال و گروهتون فوروارد کنید کمک بزرگی کردید دوستان🙏
من این چند وقت پست کم گذاشتم دلیل آنلاین نبودنم در واقع این کسب و کاریه که تازگیا شروع کردم😁
همیشه به راه اندازی فروشگاه آنلاین علاقه خاصی داشتم در کل از تولید کردن و فروختن خیلی خوشم میاد. بالاخره دارم انجامش میدم:)
تابلو های این شکلی میفروشیم که اسمشو گذاشتیم«تابلو لومن»
تابلو بصورت نقاشی با قلم سیاه هستش ولی وقتی روشن میشه همه چی خیلی خوشگل تر میشه
همچنین طرح مورد علاقه خودتونم میتونیم براتون آماده کنیم👌
برای تزئین و هدیه دادن خیلی مناسبه
لینک کانال استلار هنر:
@StellarHonar
گالری محصولاتمون:
https://stellarhonar.ir
الان که اول راهمون هستیم اگه تو کانال و گروهتون فوروارد کنید کمک بزرگی کردید دوستان🙏
🔥6👍3👏3🥰1😁1
به دنبال ساختار باشید و نه چارچوب
چند روز پیش یه مربی کودک یه حرف خیلی مهمی زد با این مفهوم: «ما اینجا برای بچه ها ساختار تعیین می کنیم نه چارچوب، چارچوب یعنی حد و مرز!»
این جمله رو باید قاب کرد و زد رو دیوار، احتمالا در ابعاد خیلی زیادی از زندگی مهم باشه. در مهندسی نرم افزار و توسعه محصول هم خیلی حرف مهمیه.
بیشتر اوقات ما دنبال چارچوب هستیم در مهندسی نرم افزار، به همین دلیل وقتی خودمون رو به یه چارچوب خاص محدود می کنیم با چالش های زیادی روبرو میشیم. در حالیکه بهتره ما برای توسعه محصول ساختار داشته باشیم و طبق اصول ساختاری کار رو پیش ببریم، اینطوری چالش مون کمتر میشه.
اجازه بدید برداشت خودم از چارچوب و ساختار رو کمی بیشتر باز کنم. ساختار میشه مجموعه از قواعد رفتاری که باید سعی کنیم در توسعه محصول بهشون پایبند باشیم، در مقابل، چارچوب میشه تعیین کردن یه سری حد و مرز مشخص به شیوه ای سختگیرانه.
مثلا اگه بخوام برای توسعه یک سرویس ساختار تعیین کنم احتمالا میگم: این سرویس باید توان پاسخگویی بالایی داشته باشه، در مقابل خطا مقاوم باشه، قابلیت مقیاس پذیری داشته باشه، یک قرارداد ساده و شفاف به کلاینت ها ارائه بده و مواردی از این دست.
اما اگه بخوام چارچوب برای سرویس تعیین کنم احتمالا میگم: ما باید از ساختار کد مبتنی بر clean code یا ddd در فلان repository که خودمون یا دیگران اونو نوشتن پیروی کنیم، باید همه ورودی هارو تو پوشه port قرار بدیم، باید همه مدل هامون تو پوشه models باشه، باید از فلان روش ci/cd استفاده کنیم.
در توسعه محصول تعیین کردن حد و مرز و چارچوب میتونه خوب باشه، اما بشرطی که تعیین این حد و مرز تنها زمان پیاده سازی سرویس باشه و متعهد بشیم که کورکورانه و سختگیرانه نخوایم این چارچوب رو به همه سرویس ها و محصولات تحمیل کنیم.
خیلی از practiceهایی که معروف شدند مثل clean code و ddd و tdd و غیره هم از نظر من بیشتر به دنبال این هستند که به شما کمک کنند که برای کارتون ساختار تعیین کنید. در حالیکه اشتباهی که زیاد رخ میده اینه که ما با خوندن این مطالب احتمالا بیشتر به سمت درآوردن چارچوب میریم... همه ش به دنبال این هستیم که مثلا یه boilerplate داشته باشیم که از clean code پیروی کنه و همون رو همه جا استفاده کنیم.
من گاها به دوستان متذکر میشم که خوندن این الگوها و منابع خیلی خوبه، به شرطی که شما سعی کنی جان کلام و دغدغه اصلی رو متوجه بشی، نه اینکه سعی کنی به دنبال یک راه حل فست فودی و چارچوب مشخص و معین باشی که کورکورانه همه جا ازش استفاده کنی.
شما وقتی برای کارت ساختار داشته باشی میتونی انعطاف پذیر باشی و بسته به نیازت چارچوب تعیین کنی، اما اگه بخوای یه چارچوب معین رو همه جا رعایت کنی احتمالا یه جاهایی اصول ساختاری خودت رو مجبور میشی زیر پا بذاری چون هیچ چارچوب واحدی وجود نداره که برای همه نیازها مناسب باشه.
@gocasts
#Note
@Syntax_fa
چند روز پیش یه مربی کودک یه حرف خیلی مهمی زد با این مفهوم: «ما اینجا برای بچه ها ساختار تعیین می کنیم نه چارچوب، چارچوب یعنی حد و مرز!»
این جمله رو باید قاب کرد و زد رو دیوار، احتمالا در ابعاد خیلی زیادی از زندگی مهم باشه. در مهندسی نرم افزار و توسعه محصول هم خیلی حرف مهمیه.
بیشتر اوقات ما دنبال چارچوب هستیم در مهندسی نرم افزار، به همین دلیل وقتی خودمون رو به یه چارچوب خاص محدود می کنیم با چالش های زیادی روبرو میشیم. در حالیکه بهتره ما برای توسعه محصول ساختار داشته باشیم و طبق اصول ساختاری کار رو پیش ببریم، اینطوری چالش مون کمتر میشه.
اجازه بدید برداشت خودم از چارچوب و ساختار رو کمی بیشتر باز کنم. ساختار میشه مجموعه از قواعد رفتاری که باید سعی کنیم در توسعه محصول بهشون پایبند باشیم، در مقابل، چارچوب میشه تعیین کردن یه سری حد و مرز مشخص به شیوه ای سختگیرانه.
مثلا اگه بخوام برای توسعه یک سرویس ساختار تعیین کنم احتمالا میگم: این سرویس باید توان پاسخگویی بالایی داشته باشه، در مقابل خطا مقاوم باشه، قابلیت مقیاس پذیری داشته باشه، یک قرارداد ساده و شفاف به کلاینت ها ارائه بده و مواردی از این دست.
اما اگه بخوام چارچوب برای سرویس تعیین کنم احتمالا میگم: ما باید از ساختار کد مبتنی بر clean code یا ddd در فلان repository که خودمون یا دیگران اونو نوشتن پیروی کنیم، باید همه ورودی هارو تو پوشه port قرار بدیم، باید همه مدل هامون تو پوشه models باشه، باید از فلان روش ci/cd استفاده کنیم.
در توسعه محصول تعیین کردن حد و مرز و چارچوب میتونه خوب باشه، اما بشرطی که تعیین این حد و مرز تنها زمان پیاده سازی سرویس باشه و متعهد بشیم که کورکورانه و سختگیرانه نخوایم این چارچوب رو به همه سرویس ها و محصولات تحمیل کنیم.
خیلی از practiceهایی که معروف شدند مثل clean code و ddd و tdd و غیره هم از نظر من بیشتر به دنبال این هستند که به شما کمک کنند که برای کارتون ساختار تعیین کنید. در حالیکه اشتباهی که زیاد رخ میده اینه که ما با خوندن این مطالب احتمالا بیشتر به سمت درآوردن چارچوب میریم... همه ش به دنبال این هستیم که مثلا یه boilerplate داشته باشیم که از clean code پیروی کنه و همون رو همه جا استفاده کنیم.
من گاها به دوستان متذکر میشم که خوندن این الگوها و منابع خیلی خوبه، به شرطی که شما سعی کنی جان کلام و دغدغه اصلی رو متوجه بشی، نه اینکه سعی کنی به دنبال یک راه حل فست فودی و چارچوب مشخص و معین باشی که کورکورانه همه جا ازش استفاده کنی.
شما وقتی برای کارت ساختار داشته باشی میتونی انعطاف پذیر باشی و بسته به نیازت چارچوب تعیین کنی، اما اگه بخوای یه چارچوب معین رو همه جا رعایت کنی احتمالا یه جاهایی اصول ساختاری خودت رو مجبور میشی زیر پا بذاری چون هیچ چارچوب واحدی وجود نداره که برای همه نیازها مناسب باشه.
@gocasts
#Note
@Syntax_fa
👍15❤2
https://www.youtube.com/watch?v=L8m9E0hSA4M&list=PLUKW34GJxYOYwKyyikVHIv2NY_zc4yynr&index=4
@SyntaxFa
@SyntaxFa
YouTube
تحلیل عملکرد بکاند با اندازه گیری Latency و Throughput
بعد از اینکه APIهایی که ساختیم آماده شد و با تستهایی که نوشتیم چطور مطمئن شیم پرفورمنس وعملکردش نیازهای ما رو رفع میکنه؟ لود تست میگیریم و کلی در موردشم صحبت کردیم. اما چطور عددهایی که خروجی لود تستمون هست رو متوجه بشیم و با توجه به نیاز محصول، از عملکرد…
👍7👀1
تجربه مصاحبه جدیدم:
اولش تماس گرفتن که از فلان شرکت هستیم و حدود بیست دقیقه ای صحبت کردیم
بعدش به یکباره گفتن مصاحبه فنی رو ده دقیقه دیگه اوکیه بریم؟
منم گفتم بریم بریم
حدود یکونیم ساعت صحبت کردیم که نسبتا سوالات چالش بر انگیز و سختی بود اما شخص مصاحبه گر خیلی با تجربه بود و کلی چیز ازش یاد گرفتم.
چه سوالاتی پرسیده شد؟
سوالات pure python
نمونه ای از سوال:
اگه ما یه لیست بزرگ داشته باشیم و بخوایم دونه دونه عناصرشون رو بگیریم و یه عملیاتی انجام بدیم چیکار کنم بهتره؟
اگه مشکل منابع نداشته باشیم، از چه روشی استفاده کنیم بهتره؟
قسمت بعدی سوالات درباره شی گرایی، دیزاین پترن ها بود
اصول solid رو تقریبا هرچهارتاشو پرسید.
یک سوال درباره الگوی طراحی Circuit breaker پرسید که متاسفانه یادم نبود
قسمت بعدی درباره دیتابیس و django orm بود
سوالات زیادی پرسید
یک سری حالت رو توضیح داد و گفت توی raw sql و orm چجوری کوئری بزنیم.
درباره مایگریشن ها سوالات عمیقی پرسید که نحوه کارکردنش دقیقا تو جنگو چجوریه
یه قسمت دیگم در خصوص چالش های معماری میکروسرویس بود
سوالاتی که پرسید واقعا عالی بودن. اما فکر نمیکنم کار خوبی باشه همه رو لو بدم😂
در کل مصاحبه یهوییه خیلی خوبی بود👌
#interview
@Syntax_fa
اولش تماس گرفتن که از فلان شرکت هستیم و حدود بیست دقیقه ای صحبت کردیم
بعدش به یکباره گفتن مصاحبه فنی رو ده دقیقه دیگه اوکیه بریم؟
منم گفتم بریم بریم
حدود یکونیم ساعت صحبت کردیم که نسبتا سوالات چالش بر انگیز و سختی بود اما شخص مصاحبه گر خیلی با تجربه بود و کلی چیز ازش یاد گرفتم.
چه سوالاتی پرسیده شد؟
سوالات pure python
نمونه ای از سوال:
اگه ما یه لیست بزرگ داشته باشیم و بخوایم دونه دونه عناصرشون رو بگیریم و یه عملیاتی انجام بدیم چیکار کنم بهتره؟
اگه مشکل منابع نداشته باشیم، از چه روشی استفاده کنیم بهتره؟
قسمت بعدی سوالات درباره شی گرایی، دیزاین پترن ها بود
اصول solid رو تقریبا هرچهارتاشو پرسید.
یک سوال درباره الگوی طراحی Circuit breaker پرسید که متاسفانه یادم نبود
قسمت بعدی درباره دیتابیس و django orm بود
سوالات زیادی پرسید
یک سری حالت رو توضیح داد و گفت توی raw sql و orm چجوری کوئری بزنیم.
درباره مایگریشن ها سوالات عمیقی پرسید که نحوه کارکردنش دقیقا تو جنگو چجوریه
یه قسمت دیگم در خصوص چالش های معماری میکروسرویس بود
سوالاتی که پرسید واقعا عالی بودن. اما فکر نمیکنم کار خوبی باشه همه رو لو بدم😂
در کل مصاحبه یهوییه خیلی خوبی بود👌
#interview
@Syntax_fa
👍25
یه مقاله جالب درباره سرویس احراز هویت یکتانت
https://virgool.io/yektanet/%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C-%D8%A7%D8%AD%D8%B1%D8%A7%D8%B2-%D9%87%D9%88%DB%8C%D8%AA-%DB%8C%DA%A9%D8%AA%D8%A7%D9%86%D8%AA-dqsxziraa2gk
@Syntax_fa
https://virgool.io/yektanet/%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C-%D8%A7%D8%AD%D8%B1%D8%A7%D8%B2-%D9%87%D9%88%DB%8C%D8%AA-%DB%8C%DA%A9%D8%AA%D8%A7%D9%86%D8%AA-dqsxziraa2gk
@Syntax_fa
ویرگول
سرویس احراز هویت یکتانت | معماری
پروتکلی در معماری میکروسرویس برای احراز هویت امن کاربران
👍9😁1
اگه میخواید یه سری مقالات خوب در خصوص پروتکل های احراز هویت، مدیریت احراز هویت و ... بخونید، حتما یه سر به وبلاگ آتین بزنید:
https://authin.ir/authin-blog/
@Syntax_fa
https://authin.ir/authin-blog/
@Syntax_fa
آتین
وبلاگ آتین | سامانه مدیریت هویت و دسترسی
وبـــلاگ آتــیــن دسته بندی مطالب وبلاگ : همه مطالب مدیریت هویت و دسترسی احراز هویت پروتکل های احراز هویت امنیت سایبری دورکاری مقالات پربازدید: مقــالات وبـــلاگ آتــیــن 03 آذر پروتکل FIDO پروتکل FIDO در حال حاضر گذرواژه ها رایج ترین روش برای احراز هویت…
👍6
Keycloak
یک ابزار احراز هویت و مدیریت دسترسی بسیار کاربردی و محبوب است. به زبان ساده میشه گفت Keycloak یک برنامه ای هست که به شما این امکانو میده که یک سیستم احراز هویت و کنترل دسترسی برای برنامه هاتون راه اندازی کنید(همونطور که میدونید این بخش پروژه پیاده سازیش خیلی حساسه).
اصلی ترین کاربرد Keycloak اینه که به شما کمک میکنه تا کاربران رو به راحتی مدیریت کنید و به برنامه هاتون متصل کنید. با استفاده از Keycloak میتونید:
- یک سیستم ورود به سیستم یکپارچه (SSO) برای کاربران خودتون راه اندازی کنید
- به راحتی حساب های کاربری رو ایجاد، مدیریت و پشتیبانی کنید
- دسترسی های کاربران رو به برنامه ها و منابع مختلف کنترل و مدیریت کنید
- احراز هویت چند مرحله ای رو برای افزایش امنیت پیاده سازی کنید
- امکانات پیشرفته مثل اعمال سیاست های امنیتی، گزارش گیری و تجزیه و تحلیل رو داشته باشید
استفاده از این ابزار باعث میشه که دیگه نگران مدیریت حساب های کاربری نباشید و روی توسعه برنامه های اصلیتون تمرکز کنید.
(تو پستای بعدی نحوه کار کردن باهاشو میگم)
#SSO #Keycloak
@Syntax_fa
یک ابزار احراز هویت و مدیریت دسترسی بسیار کاربردی و محبوب است. به زبان ساده میشه گفت Keycloak یک برنامه ای هست که به شما این امکانو میده که یک سیستم احراز هویت و کنترل دسترسی برای برنامه هاتون راه اندازی کنید(همونطور که میدونید این بخش پروژه پیاده سازیش خیلی حساسه).
اصلی ترین کاربرد Keycloak اینه که به شما کمک میکنه تا کاربران رو به راحتی مدیریت کنید و به برنامه هاتون متصل کنید. با استفاده از Keycloak میتونید:
- یک سیستم ورود به سیستم یکپارچه (SSO) برای کاربران خودتون راه اندازی کنید
- به راحتی حساب های کاربری رو ایجاد، مدیریت و پشتیبانی کنید
- دسترسی های کاربران رو به برنامه ها و منابع مختلف کنترل و مدیریت کنید
- احراز هویت چند مرحله ای رو برای افزایش امنیت پیاده سازی کنید
- امکانات پیشرفته مثل اعمال سیاست های امنیتی، گزارش گیری و تجزیه و تحلیل رو داشته باشید
استفاده از این ابزار باعث میشه که دیگه نگران مدیریت حساب های کاربری نباشید و روی توسعه برنامه های اصلیتون تمرکز کنید.
(تو پستای بعدی نحوه کار کردن باهاشو میگم)
#SSO #Keycloak
@Syntax_fa
🔥10❤2👎1
Syntax | سینتکس
Keycloak یک ابزار احراز هویت و مدیریت دسترسی بسیار کاربردی و محبوب است. به زبان ساده میشه گفت Keycloak یک برنامه ای هست که به شما این امکانو میده که یک سیستم احراز هویت و کنترل دسترسی برای برنامه هاتون راه اندازی کنید(همونطور که میدونید این بخش پروژه پیاده…
Single Sign-On (SSO)
فرایندی است که به کاربران امکان میدهد با استفاده از یک حساب کاربری واحد، به چندین برنامه و سرویس دسترسی داشته باشند. این روش به جای اینکه کاربران برای هر برنامه ای که استفاده میکنند، باید حساب کاربری جداگانه ای ایجاد کنند، به آنها امکان میدهد با تنها یک بار ورود به سیستم، به همه برنامه های مورد نیازشان دسترسی داشته باشند.
برای مثال، در مورد سرویس های گوگل، اگر SSO وجود نداشت، هر بار که کاربر میخواست به برنامه های مختلف گوگل مانند Gmail، Google Drive، Google Calendar و غیره دسترسی پیدا کند، میبایست مجددا نام کاربری و رمز عبور خود را وارد میکرد. اما با استفاده از SSO، یک بار که کاربر وارد حساب کاربری گوگل خود میشود، میتواند به تمام سرویس های مرتبط با این حساب دسترسی پیدا کند، بدون نیاز به ورود مجدد.
این روش علاوه بر افزایش راحتی و بهبود تجربه کاربری، باعث افزایش امنیت نیز میشود. زیرا کاربران دیگر نیاز ندارند اطلاعات حساب های متعدد را به خاطر بسپارند و مدیریت کنند، که این امر خطر افشای این اطلاعات را کاهش میدهد. همچنین سازمانها میتوانند کنترل بیشتری بر روی حسابهای کاربری و سیاستهای دسترسی داشته باشند.
پیادهسازی سرویسهای تکورودی (Single Sign-On) بر اساس پروتکل OIDC
یکی از پرکاربردترین پروتکلهای مورد استفاده در سیستمهای SSO، پروتکل OIDC (OpenID Connect) است. این پروتکل بر پایه OAuth2 ساخته شده و دارای ویژگیهای پیشرفتهتری نسبت به آن میباشد.
در حالی که OAuth2 به مدیریت دسترسیها و اعطای مجوز به برنامهها برای دسترسی به منابع متمرکز است، OIDC علاوه بر این موارد، بر مدیریت هویت کاربر نیز تمرکز دارد. به عبارت دیگر، OIDC نه تنها به برنامهها اجازه میدهد به منابع و اطلاعات دسترسی داشته باشند، بلکه به آنها امکان میدهد تا هویت کاربر را نیز تأیید کنند.
برای مثال، فرض کنید برنامهای قصد دارد به گوگل درایو کاربر متصل شود تا بتواند در آنجا چیزی را ذخیره کند. در این حالت، با استفاده از OAuth2، کاربر دسترسی مورد نیاز برنامه را به آن اعطا میکند و در مقابل، برنامه یک توکن دسترسی (Access Token) دریافت میکند که فقط محدود به آن سطح دسترسی است، بدون اینکه اطلاعات هویتی کاربر را دریافت نماید.
اما در صورت استفاده از OIDC، علاوه بر اعطای سطح دسترسی مورد نیاز به برنامه، اطلاعات هویتی کاربر مانند نام، ایمیل و عکس پروفایل نیز در اختیار آن قرار میگیرد. این ویژگی اضافی OIDC را به انتخاب مناسبتری برای پیادهسازی سیستمهای SSO تبدیل میکند، زیرا به برنامهها امکان میدهد تا هویت کاربر را نیز تأیید کنند.
در مجموع، OIDC با بهرهگیری از مفهوم ID Token (در مقابل Access Token در OAuth2)، ضمن مدیریت دسترسیها، امکان احراز هویت کاربر و دریافت اطلاعات هویتی را نیز فراهم میآورد، و از این طریق تجربه کاربری بهتری را در سیستمهای SSO ایجاد میکند.
خب حالا ما با keycloak، authelia و اینجور ابزار ها چیکار میکنیم؟
بدون اینکه خودمونو درگیر پیچیدگی قسمت احراز هویت کنیم برامون از قبل پیادش کرده و کافیه بر اساس نیازمون شخصی سازیشون کنیم
#SSO #OAUTH2 #OIDC
@Syntax_fa
فرایندی است که به کاربران امکان میدهد با استفاده از یک حساب کاربری واحد، به چندین برنامه و سرویس دسترسی داشته باشند. این روش به جای اینکه کاربران برای هر برنامه ای که استفاده میکنند، باید حساب کاربری جداگانه ای ایجاد کنند، به آنها امکان میدهد با تنها یک بار ورود به سیستم، به همه برنامه های مورد نیازشان دسترسی داشته باشند.
برای مثال، در مورد سرویس های گوگل، اگر SSO وجود نداشت، هر بار که کاربر میخواست به برنامه های مختلف گوگل مانند Gmail، Google Drive، Google Calendar و غیره دسترسی پیدا کند، میبایست مجددا نام کاربری و رمز عبور خود را وارد میکرد. اما با استفاده از SSO، یک بار که کاربر وارد حساب کاربری گوگل خود میشود، میتواند به تمام سرویس های مرتبط با این حساب دسترسی پیدا کند، بدون نیاز به ورود مجدد.
این روش علاوه بر افزایش راحتی و بهبود تجربه کاربری، باعث افزایش امنیت نیز میشود. زیرا کاربران دیگر نیاز ندارند اطلاعات حساب های متعدد را به خاطر بسپارند و مدیریت کنند، که این امر خطر افشای این اطلاعات را کاهش میدهد. همچنین سازمانها میتوانند کنترل بیشتری بر روی حسابهای کاربری و سیاستهای دسترسی داشته باشند.
پیادهسازی سرویسهای تکورودی (Single Sign-On) بر اساس پروتکل OIDC
یکی از پرکاربردترین پروتکلهای مورد استفاده در سیستمهای SSO، پروتکل OIDC (OpenID Connect) است. این پروتکل بر پایه OAuth2 ساخته شده و دارای ویژگیهای پیشرفتهتری نسبت به آن میباشد.
در حالی که OAuth2 به مدیریت دسترسیها و اعطای مجوز به برنامهها برای دسترسی به منابع متمرکز است، OIDC علاوه بر این موارد، بر مدیریت هویت کاربر نیز تمرکز دارد. به عبارت دیگر، OIDC نه تنها به برنامهها اجازه میدهد به منابع و اطلاعات دسترسی داشته باشند، بلکه به آنها امکان میدهد تا هویت کاربر را نیز تأیید کنند.
برای مثال، فرض کنید برنامهای قصد دارد به گوگل درایو کاربر متصل شود تا بتواند در آنجا چیزی را ذخیره کند. در این حالت، با استفاده از OAuth2، کاربر دسترسی مورد نیاز برنامه را به آن اعطا میکند و در مقابل، برنامه یک توکن دسترسی (Access Token) دریافت میکند که فقط محدود به آن سطح دسترسی است، بدون اینکه اطلاعات هویتی کاربر را دریافت نماید.
اما در صورت استفاده از OIDC، علاوه بر اعطای سطح دسترسی مورد نیاز به برنامه، اطلاعات هویتی کاربر مانند نام، ایمیل و عکس پروفایل نیز در اختیار آن قرار میگیرد. این ویژگی اضافی OIDC را به انتخاب مناسبتری برای پیادهسازی سیستمهای SSO تبدیل میکند، زیرا به برنامهها امکان میدهد تا هویت کاربر را نیز تأیید کنند.
در مجموع، OIDC با بهرهگیری از مفهوم ID Token (در مقابل Access Token در OAuth2)، ضمن مدیریت دسترسیها، امکان احراز هویت کاربر و دریافت اطلاعات هویتی را نیز فراهم میآورد، و از این طریق تجربه کاربری بهتری را در سیستمهای SSO ایجاد میکند.
خب حالا ما با keycloak، authelia و اینجور ابزار ها چیکار میکنیم؟
بدون اینکه خودمونو درگیر پیچیدگی قسمت احراز هویت کنیم برامون از قبل پیادش کرده و کافیه بر اساس نیازمون شخصی سازیشون کنیم
#SSO #OAUTH2 #OIDC
@Syntax_fa
👍11
اگر نیاز داشتید که پر سرعت ترین میرور رجیستری داکر رو برای دانلود امیج های تحریمی به راحتی و سرعت پیدا کنید
یه اسکریپت دولوپ کردم میتونید ازش استفاده کنین
https://github.com/ArmanTaheriGhaleTaki/fastDocker403unlocker
[Armon taheri]
@Syntax_fa
یه اسکریپت دولوپ کردم میتونید ازش استفاده کنین
https://github.com/ArmanTaheriGhaleTaki/fastDocker403unlocker
[Armon taheri]
@Syntax_fa
GitHub
GitHub - 403unlocker/fastDocker403unlocker: Discover optimal docker registry mirror speed for efficient network performance
Discover optimal docker registry mirror speed for efficient network performance - GitHub - 403unlocker/fastDocker403unlocker: Discover optimal docker registry mirror speed for efficient network pe...
🔥4
نکته:
میدونستید جنگو translation بر اساس زبان دیفالت مروگر کاربر، زبانی که باید نشون بده رو انتخاب می کنه؟
اگه زبان دیفالت مرورگرش توی لیست زبان های برناممون نبود میره سراغ دومین زبانی که تو مرورگرش ست کرده
و اگه کلا اون زبانه نبود، اون زبانی که دیفالت توی settings.py ست کردیمو نشون میده
#Note #Django
@Syntax_fa
میدونستید جنگو translation بر اساس زبان دیفالت مروگر کاربر، زبانی که باید نشون بده رو انتخاب می کنه؟
اگه زبان دیفالت مرورگرش توی لیست زبان های برناممون نبود میره سراغ دومین زبانی که تو مرورگرش ست کرده
و اگه کلا اون زبانه نبود، اون زبانی که دیفالت توی settings.py ست کردیمو نشون میده
#Note #Django
@Syntax_fa
😱11👍8
بنظرتون محتوای خوب برنامه نویسی، توی تلگرام باید چجوری باشه؟ (کامنت کنید)
مثلا یچیزی که با سرچ کردن پیدا میشه رو بیایم بازگو کنیم خوبه؟
یا فقط نکات و تجربیاتمونو انتقال بدیم بهتره؟
مثلا یچیزی که با سرچ کردن پیدا میشه رو بیایم بازگو کنیم خوبه؟
یا فقط نکات و تجربیاتمونو انتقال بدیم بهتره؟
👍8
Syntax | سینتکس
بنظرتون محتوای خوب برنامه نویسی، توی تلگرام باید چجوری باشه؟ (کامنت کنید) مثلا یچیزی که با سرچ کردن پیدا میشه رو بیایم بازگو کنیم خوبه؟ یا فقط نکات و تجربیاتمونو انتقال بدیم بهتره؟
خب
طبق نظر اکثر دوستان
بیشتر محتواهامونو میبریم سمت:
تجربیات
تو یه پروژه واقعی چی میگذره؟
چیزهایی که تو آموزش ها بهش کمتر توجه شده
خیلی خوشحال میشم شما دوستان باسواد تر و یا حتی تازه کار، چالش ها و مسائلی که داشتید رو تو پیوی بنده یا گروه بگید تا توی کانال قرارش بدم و باهمدیگه چالشو حل کنیم
@Syntax_fa
طبق نظر اکثر دوستان
بیشتر محتواهامونو میبریم سمت:
تجربیات
تو یه پروژه واقعی چی میگذره؟
چیزهایی که تو آموزش ها بهش کمتر توجه شده
خیلی خوشحال میشم شما دوستان باسواد تر و یا حتی تازه کار، چالش ها و مسائلی که داشتید رو تو پیوی بنده یا گروه بگید تا توی کانال قرارش بدم و باهمدیگه چالشو حل کنیم
@Syntax_fa
🔥11👍3
Syntax | سینتکس
خب طبق نظر اکثر دوستان بیشتر محتواهامونو میبریم سمت: تجربیات تو یه پروژه واقعی چی میگذره؟ چیزهایی که تو آموزش ها بهش کمتر توجه شده خیلی خوشحال میشم شما دوستان باسواد تر و یا حتی تازه کار، چالش ها و مسائلی که داشتید رو تو پیوی بنده یا گروه بگید تا توی کانال…
بریم سراغ یکی از چالش های جالب
فرض کنید ما یک شبکه اجتماعی به اسم سینتکس گرام داریم
تو اپلیکیشن ما، کاربران میتونن فایل هاشونو با بقیه کاربر ها به اشتراک بذارن
چالش:
اگه یکی از کاربر ها یک فایلی رو آپلود کرد و یک یا چند کاربر دیگم همون فایل رو آپلود کنن، برای جلوگیری از ذخیره یک فایل تکراری، چه راه حلی دارید؟
بنظرتون اصلا نیازه راه حلی برای این شرایط داشته باشیم یا اینکه فایل های تکراری رو هم ذخیرش کنیم؟
#challenge
@Syntax_fa
فرض کنید ما یک شبکه اجتماعی به اسم سینتکس گرام داریم
تو اپلیکیشن ما، کاربران میتونن فایل هاشونو با بقیه کاربر ها به اشتراک بذارن
چالش:
اگه یکی از کاربر ها یک فایلی رو آپلود کرد و یک یا چند کاربر دیگم همون فایل رو آپلود کنن، برای جلوگیری از ذخیره یک فایل تکراری، چه راه حلی دارید؟
بنظرتون اصلا نیازه راه حلی برای این شرایط داشته باشیم یا اینکه فایل های تکراری رو هم ذخیرش کنیم؟
#challenge
@Syntax_fa
👍6