توسعه زیرساخت احراز هویت دیجیتالی

کد :13091710103
نهاد متولی: معاونت دولت الکترونیکی

سازمان فناوری اطلاعات ایران در راستای اجرای بند ۴-۳-۲ مصوبه جلسه پنجاه و نهم شورای عالی فضای مجازی تحت عنوان «نظام هویت معتبر در فضای مجازی»، مبتنی بر استقرار چارچوب تعامل‌پذیری بین تأمین‌کنندگان شناسه‌ها، صفت‌ها و دیگر موجودیت‌ها و ارائه خدمات برای دوره گذار سه ساله از طریق درگاه واحد بین تامین کنندگان شناسه و تامین‌کنندگان صفت ها، اقدام به راه‌اندازی سامانه احراز هویت معتبر در فضای مجازی تحت عنوان «سماوا» کرده است.

سامانه سماوا به عنوان پنجره واحد مابین تامین‌کنندگان مختلف شناسه معتبر عمل می‌کند و در صورت همکاری دستگاه‌های متولی تامین شناسه‌ی معتبر، امکان پیاده‌سازی و تکمیل این سامانه وجود خواهد داشت و با توجه به وجود همه‌ی شناسه‌های معتبر امکان ارایه سرویس‌های ترکیبی نیز وجود خواهد داشت.
بر اساس این سامانه، سازمان تنظیم مقررات و ارتباطات رادیویی نقش تامین‌کننده شناسه‌ی معتبر برای خدمات ارتباطی و سازمان ثبت احوال کشور نقش تامین‌کننده شناسه معتبر برای اشخاص حقیقی (اتباع ایرانی) و وزارت کشور نقش تامین‌کننده شناسه معتبر برای اتباع غیر ایرانی را دارد.
همچنین سازمان ثبت اسناد و املاک کشور، تامین‌کننده شناسه‌ی معتبر برای اشخاص حقوقی و شرکت ملی پست جمهوری اسلامی، تامین‌کننده شناسه‌ی معتبر برای نشانی اشخاص و بانک مرکزی، تامین‌کننده شناسه‌ی معتبر برای مالکیت حساب کارت و نیروی انتظامی جمهوری اسلامی، تامین‌کننده شناسه‌ی معتبر برای وسایل نقلیه (خودرو، موتور)است.

شناسنامه خدمت

سطح خدمت: ملی
نوع خدمت: خدمت به شهروندان (G2C) خدمت به کسب‌وکار (G2B) خدمت به دیگر دستگاه‌های دولتی (G2G)
ماهیت خدمت: حاکمیتی
نحوه آغاز خدمت: تقاضای گیرنده خدمت فرارسیدن زمانی مشخص رخداد رویدادی مشخص تشخیص دستگاه سایر: ...
متوسط مدت زمان ارايه خدمت: کمتر از دو روز کاری از زمان دریافت اطلاعات مورد نیاز از نهاد متکی
مدارک مورد نیاز: ارایه مشخصات خدمت و مستندات فنی و یا شماره قرارداد

فرآیندها


کاربر در این مرحله به آدرس کسب و کار(redirect_uri) بازگردانده می‌شود. همانطور که در مرحله پیش گفتیم، پارامتر state جزو پارامترهای پاسخ خواهند بود.

ابتدا باید صحت‌سنجی state را انجام دهید. یعنی:

  1. مطمئن شوید این پارامتر، در لیست stateهای شما (که در مرحله اول به آن اشاره شد) موجود است.
  2. زمان دریافت پاسخ را با زمان متناظر با این state در لیست stateها مقایسه کنید. فاصله این دو زمان باید کم‌تر از ۱۰ دقیقه باشد.

در صورت برقرار بودن دو شرط بالا:

  • اگر روی پاسخ دریافت شده پارامتر error موجود بود، باید پیغام خطایی مبنی بر «با مشکل مواجه شدن فرآیند احراز هویت» به کاربر نشان ‌دهید. در این حالت احراز هویت در همین مرحله به اتمام می‌رسد و مرحله پنجم انجام نخواهد شد.
  • اگر روی پاسخ دریافت شده پارامتر code موجود بود، یعنی عملیات موفقیت‌آمیز بوده و از پارامتر code برای گام پنجم استفاده خواهید کرد.

 در صورت برقرار نبودن دو شرط مذکور باید پیغام خطایی مبنی بر «با مشکل مواجه شدن فرآیند احراز هویت» به کاربر نشان ‌دهید. در این حالت احراز هویت در همین مرحله به اتمام می‌رسد و مرحله پنجم انجام نخواهد شد.

جزییات مرحله چهارم: بازگرداندن کاربر به سامانه کسب و کار
  1. مرحله اول (شناسایی کسب و کار): سرویس شناسایی کسب و کار را فراخوانی می‌کنید و در صورت تایید، یک URL دریافت خواهید کرد.
  2. مرحله دوم (درخواست شناسایی کاربر): کاربر را به آدرسی که در مرحله قبل دریافت کردید هدایت (redirect) می‌کنید.
  3. مرحله سوم (عملیات شناسایی کاربر): برگزاری مراسم شناسایی کاربر در سامانه سماوا.
  4. مرحله چهارم (بازگرداندن کاربر به سامانه کسب و کار): هدایت کاربر به سامانه کسب و کار.
  5. مرحله پنجم (درخواست توکن): درخواست توکن از سماوا.
فرآیند دریافت توکن

در ابتدا باید درخواستی با مشخصات زیر بر روی آدرس پایه https://idtest.iran.ir ارسال کنید. در صورت تأیید اطلاعات ارسالی، پاسخی شامل URL مورد استفاده در گام بعدی و کد امنیتی برگردانده می‌شود.

نمونه درخواست

نمونه درخواست

POST /oauth/create_authorize HTTP/1.1Host: idtest.iran.irContent-Type: application/json{"client_id": "test","client_secret": "Ze0fve15W2RG03M5yl9At5bV2RGZJg84pI2V3ZrlmNyfIhX0","scopes": ["mobile_number"],"redirect_uri": "https://iddemo.iran.ir/buy","state": "d4a560fc-c4c2-11ea-87d0-0242ac130003","loa": "LEVEL_2_2","mobile_number":"09120000000"}

شرح بدنه درخواست

نام فیلد مقدار جنس فیلد

client_id (شناسه)

شناسه کسب و کار که در زمان ثبت نام به شما داده شده‌است.

رشته

client_secret  (رمز) 

رمز کسب و کار که در زمان ثبت نام به شما داده شده‌است. رشته

scopes (حوزه)

پس از ثبت‌نام، لیست حوزه‌های موردنیاز به کسب و کار داده می‌شود برای توضیحات بیشتر به اینجا رجوع شود.  آرایه از نوع رشته

redirect_uri (آدرس بازگشت) 

آدرسی که کاربر نهایی پس از فرآیند شناسایی به آن منتقل خواهد شد. این آدرس باید برابر با یکی از redirect-uriهای تعریف‌شده برای کسب و کار در زمان ثبت نام باشد. رشته

state  (وضعیت) 

رشته ای یکتا با طول حداقل ۳۲ کاراکتر است که در سامانه شما (کسب و کار) به ازای هر درخواست تولید می‌شود.
رشته

loa (سطح اطمینان) 

  مقدار ثابت LEVEL_2_2 را قرار دهید. رشته

mobile_number (شماره موبایل)

پس از ثبت‌نام، اجباری بودن/نبودن این فیلد به کسب و کار اعلام می‌شود که البته با توجه به نیاز آن است در صورت اجباری بودن این فیلد در صورت مشاهده نشدن آن در درخواست به کسب و کار خطا برگردانده می‌شوددر صورت اختیاری بودن این فیلد اگر در درخواست مشاهده نشود مشکلی ندارد ولی اگر مشاهده شود صحت‌سنجی بر روی آن رخ‌می‌دهدکلا در هر دو حالت اجباری بودن/نبودن اگر شماره موبایلی در درخواست موجود و معتبر باشد آنگاه صحت‌سنجی کاربر در مرحله سوم فقط با همین شماره دریافتی امکان‌پذیر استولی اگر در حالت اختیاری بودن این فیلد، شماره موبایل در درخواست نباشد آنگاه کاربر در مرحله سوم باید شماره موبایلی وارد ‌کند تا عملیات احرازهویت با شماره‌ی وارد‌شده انجام ‌پذیرد رشته

نمونه پاسخ 200

"}

authorize_url": "https://idtest.iran.ir/oauth/authorize?client_id=test&scope=mobile_number&redirect_uri=https%3A%2F%2Fiddemo.iran.ir%3A9000%2Fbuy&response_type=code&state=d4a560fc-c4c2-11ea-87d0-0242ac130003","b2b_base_url": "https://idtest.iran.ir",  "secure_code": "KofxEBaEpPlM6lRnyhUC5kVAW7nuQwPV

{"

شرح بدنه پاسخ

نام فیلد

مقدار 

جنس

authorize_url

آدرسی که کسب و کار در مرحله بعدی، کاربر را به آن هدایت می‌کند. رشته
secure_code کد امنیتی که باید آن ‌را ذخیره ‌کنید. (در مرحله پنجم آن را لازم داریم) رشته
b2b_base_url آدرس پایه برای سرویس‌های مرحله پنجم(سرویس دریافت توکن) و صحت‌سنجی می‌باشد (آدرس پایه این سرویس‌ها به صورت داینامیک تبدیل شده‌است) رشته

با شروع فرآیند احراز هویت، سامانه کسب و کار یک کد به نام state را ارسال کرده و یک کد به نام secure_code دریافت می‌کند. با هر بار شروع فرآیند احراز هویت سماوا، کسب و کار باید این دو مقدار را به همراه زمان ایجاد state کنار یکدیگر تا پایان فرآیند نگهداری کند. جهت سهولت، در این سند این ذخیره‌سازی را «لیست stateها» نام‌گذاری می‌کنیم.

فیلدی به نام b2b_base_url اضافه شده‌است که شامل آدرس پایه برای سرویس دریافت توکن و سرویس‌های صحت‌سنجی توکن می‌باشد. اما چون آدرس پایه این سرویس‌ها می‌تواند به صورت داینامیک تغییر کند، کسب و کار نیاز دارد همانطور که مانند عبارت بالا مقدار secure_code را با توجه به state در نزد خود نگه می‌دارد، مقدار آدرس b2b_base_url را نیز به همین شکل نگهداری‌کند تا در زمان فراخوانی سرویس‌های موردنظر از آن استفاده‌کند.

نمونه پاسخ‌های خطا

پیام تمام حالت‌های خطا در آرایه errors ذخیره می‌شود

نمونه پاسخ (status=400)​

حالتی که وضعیت (state) دریافت‌شده برای کسب و کار تکراری باشد، خطا نشان داده می‌شود و قادر به ادامه مراحل احراز هویت نخواهید بود. 

حالتی که به جز فیلد client_id، مقادیر سایر فیلدها نامعتبر باشند، نمونه پاسخ به شرح زیر خواهد بود.

نمونه پاسخ (satus=400)

{"errors": ["اطلاعات هویتی به درستی وارد نشده‌است","مقدار حوزه به‌ درستی وارد نشده‌است","مقدار آدرس بازگشت به ‌درستی وارد نشده‌است","طول رشته وضعیت کمتر از حد مجاز است","مقدار سطح اطمینان به ‌درستی وارد نشده‌است","مقدار شماره موبایل به ‌درستی وارد نشده‌است"]}

نمونه پاسخ (status=500)

{"errors": ["مشکل داخلی به وجود آمده است"]}

 

روش اجرایی شناسایی کسب و کار

در این مرحله باید کاربر را به آدرس authorize_url که از مرحله قبل دریافت کردید، هدایت (redirect) کنید. البته این آدرس دارای محدودیت‌های زیر می‌باشد که باید به آن‌ها توجه داشته باشید.

  1. زمان مجاز برای استفاده: ۵ دقیقه
  2. تعداد دفعات مجاز برای استفاده: ۲ بار

سامانه سماوا با دریافت درخواست شناسایی کاربر تحت آدرس oauth/authorize/ شروع به صحت‌سنجی اطلاعات ارسالی می‌کند.

  1. در صورت بودن معتبر بودن اطلاعات، شناسایی کاربر در سماوا ادامه پیدا می‌کند.
  2. در صورت نامعتبر بودن اطلاعات، به هر یک از دلایل زیر، کاربر صفحه‌ خطا با ذکر دلیل را مشاهده خواهد کرد.
    1. زمان استفاده از این آدرس (authorize_url) به پایان رسیده‌ باشد.
    2. از این آدرس (authorize_url) بیش از حد مجاز استفاده شده‌ باشد.
    3. پارامترهای موجود روی درخواست نامعتبر باشند.
جزییات مرحله دوم: سرویس درخواست شناسایی کاربر

در این مرحله شناسایی کاربر از طریق پیامک و سامانه شاهکار صورت می‌گیرد و در هر دو صورت موفق یا ناموفق بودن عملیات، کاربر به آدرس کسب و کار هدایت می‌شود (آدرسی که در redirect_uri تعیین شده بود)

  1. در حالت موفقیت‌آمیز: بر روی آدرس بازگشتی (redirect_uri) دو مقدار code و state به صورت پارامتر (query parameter) قرار می‌گیرد.
  2. در حالت ناموفق: بر روی آدرس بازگشتی (redirect_uri) دو مقدار error و state به صورت پارامتر (query parameter) قرار می‌گیرد که در پارامتر error دلیل خطای احراز هویت کاربر قرار داده شده‌است.
جزییات مرحله سوم: عملیات شناسایی کاربر در سماوا

مدارک خدمت

در حال حاضر سرویس شاهکار از این طریق ارائه میشود که شامل موارد زیر می باشد:

نام کسب و کار: اسم رسمی شرکت (به فارسی)

تصویر logo به فرمت png یا jpg: این تصویر باید مربوط به برند شما باشد. دقت کنید لوگوی شرکت مد نظر نیست. ارتفاع این عکس حداکثر 64 پیکسل و حجم آن حداکثر 50K باشد. دقت بفرمایید این تصویر در پس زمینه‌ای با رنگ سرمه‌ای تیره نشان داده خواهد شد. لذا جهت نمایش مناسب، لوگویی را ارسال کنید که ترکیب رنگ آن مطابقت بیشتری با این پس زمینه دارد.

IP Valid  : در فرآیند احراز هویت دو سرویس وجود دارد که از نهادهای متکی (سرور کسب و کارها) فراخوانی می‌شوند که بر روی آدرس این دو سرویس محدودیت اعمال شده‌است و فقط بر روی یک IP معتبر و ثابت از سوی کسب و کار پاسخ داده خواهد شد. لذا لازم است این IP در زمان ثبت نام اعلام شود.

اطلاعات سرویس شاهکار:  شامل نام کاربری، گذرواژه و کد.

آدرس‌‌های بازگشت (redirect_uri): آدرسی در سامانه کسب و کار که در انتهای فرآیند احراز هویت، کاربر به آن هدایت می‌شود. دقت کنید در زمان ثبت نام کسب و کار می‌تواند بیش از یک مورد آدرس بازگشتی داشته باشد، اما در هر بار شروع فرآیند احراز هویت، فقط یکی از آدرس‌ها قابل ارسال می‌باشد (به صورت معمول هر کسب و کار یک آدرس بازگشت دارد).

مدل مفهومی

ساختار سازمانی

سوالات متداول

سامانه احراز هویت معتبر در فضای مجازی (سماوا) چیست؟

سامانه احراز هویت معتبر در فضای مجازی  (سماوا) سامانه‌ای امن برای تضمین صحت اطلاعات هویتی کاربران است. این سامانه توسط وزارت فناوری اطلاعات و ارتباطات ایجاد شده و واسطی امن برای ارائه خدمت به کاربران و کسب‌وکارها(نهاد متکی) می باشد. کاربران این اطمینان را خواهند داشت که اطلاعات ارائه شده به این سامانه محرمانه بوده و بدون اجازه آن‌ها در اختیار کسب‌وکارها قرار نمی گیرد. کسب‌وکارها نیز می‌توانند از صحت اطلاعات اعلامی توسط کاربران اطمینان حاصل نمایند.

سامانه احراز هویت معتبر در فضای مجازی  در فاز اول به کسب‌وکارها کمک می‌کند تا هویت ادعایی افراد را با خصیصه‌های هویتی آن‌ها تطبیق دهند. این سامانه بین کاربر و کسب و کار قرار می‌گیرد و کاربران به جای آن‌که اطلاعات هویتی خود را به کسب‌وکار بدهند در این سامانه وارد می‌کنند. در صورت صحت اطلاعات اعلامی توسط کاربر، این امر به اطلاع کسب‌وکار رسیده و مجوزی با محدودیت زمانی مشخص برای ارائه خدمات صادر می‌شود. این مجوز  که به آن توکن نیز گفته می‌شود در شرایط مخاطره‌انگیز و عدم اطمینان، با درخواست نهادمتکی، کاربر و یا از طریق استعلامات انجام شده توسط خود سامانه لغو می‌گردد. برای مثال کاربر برای جلوگیری از هرگونه سرقت هویت یا سوء استفاده از هویت و مجوزهای خود در سامانه می‌تواند توکن‌های صادر شده را لغو نماند. همچنین در صورتی که سیم‌کارت کاربر واگذار شود تمامی مجوزهای صادر شده بر مبنای آن سیم کارت به صورت خودکار باطل خواهند شد.

اهداف اصلی راه اندازی سامانه سماوا چیست؟

حرکت به سمت ساماندهی نظام احراز هویت مطابق با (نظام هویت معتبر در فضای مجازی کشور)

کاهش مخاطرات ناشی از جمع‌آوری و افشای اطلاعات هویتی در فضای مجازی

ارایه دسترسی یکپارچه، کنترل و مدیریت شده و با واسطه به اطلاعات هویتی پایه و غیر پایه موجودیت‌ها در فضای مجازی کشور

نظارت و پایش متمرکز و فراهم نمودن اطلاعات استنادپذیر برای مراجع ذیصلاح

بازیگران دولتی سامانه سماوا کیستند؟

سازمان تنظیم مقررات و ارتباطات رادیویی : تامین کننده شناسه معتبر تطبیق کد ملی با شماره موبایل

سازمان ثبت احوال کشور: تامین کننده شناسه معتبر برای اشخاص حقیقی (اتباع ایرانی)

وزارت کشور: تامین کننده شناسه معتبر برای اتباع غیر ایرانی

سازمان ثبت اسناد و املاک کشور: تامین کننده شناسه معتبر برای اشخاص حقوقی

شرکت ملی پست جمهوری اسلامی: تامین‌کننده شناسه معتبر نشانی اشخاص

بانک مرکزی: تامین‌کننده شناسه معتبر مالکیت حساب کارت

نیروی انتظامی جمهوری اسلامی: تامین‌کننده شناسه معتبر وسایل نقلیه (خودرو، موتور)

بازیگران غیردولتی سماوا کیستند؟

شرکت‌های ارایه دهنده خدمات احراز هویت

مراکز میانی صدور گواهی امضا

چه اطلاعاتی از کسب و کارها در زمان ثبت نام دریافت می‌شود؟

نام کسب و کار: اسم رسمی شرکت (به فارسی)

تصویر logo به فرمت png یا jpg: این تصویر باید مربوط به برند شما باشد. دقت کنید لوگوی شرکت مد نظر نیست. ارتفاع این عکس حداکثر 64 پیکسل و حجم آن حداکثر 50K باشد. دقت بفرمایید این تصویر در پس زمینه‌ای با رنگ سرمه‌ای تیره نشان داده خواهد شد. لذا جهت نمایش مناسب، لوگویی را ارسال کنید که ترکیب رنگ آن مطابقت بیشتری با این پس زمینه دارد.

IP Valid  : در فرآیند احراز هویت دو سرویس وجود دارد که از نهادهای متکی (سرور کسب و کارها) فراخوانی می‌شوند که بر روی آدرس این دو سرویس محدودیت اعمال شده‌است و فقط بر روی یک IP معتبر و ثابت از سوی کسب و کار پاسخ داده خواهد شد. لذا لازم است این IP در زمان ثبت نام اعلام شود.

اطلاعات سرویس شاهکار:  شامل نام کاربری، گذرواژه و کد.

آدرس‌‌های بازگشت (redirect_uri): آدرسی در سامانه کسب و کار که در انتهای فرآیند احراز هویت، کاربر به آن هدایت می‌شود. دقت کنید در زمان ثبت نام کسب و کار می‌تواند بیش از یک مورد آدرس بازگشتی داشته باشد، اما در هر بار شروع فرآیند احراز هویت، فقط یکی از آدرس‌ها قابل ارسال می‌باشد (به صورت معمول هر کسب و کار یک آدرس بازگشت دارد).

مراحل احراز هویت در سامانه سماو چگونه است؟

برای اتصال به سامانه سماوا و دریافت توکن برای هر کاربر، فرآیندی شامل مراحل زیر طراحی شده‌است. دقت کنید طی یک مرحله کسب و کار شناسایی می‌شود و بعد از آن نوبت به شناسایی کاربر (مشتری یا خدمت گیرنده کسب و کار) می‌رسد:

مرحله اول (شناسایی کسب و کار): سرویس شناسایی کسب و کار را فراخوانی می‌شود

مرحله دوم (درخواست شناسایی کاربر): کاربر به سامانه سماوا هدایت (redirect) می‌شود.

مرحله سوم (عملیات شناسایی کاربر): عملیات شناسایی کاربر در سامانه سماوا.

مرحله چهارم (بازگرداندن کاربر به سامانه کسب و کار): هدایت کاربر به سامانه کسب و کار.

مرحله پنجم (درخواست توکن): درخواست توکن از سماوا.

چه اطلاعاتی به کسب و کارها پس از ثبت نام ارائه می‌شود؟

شناسه کلاینت (client-id)

رمز کلاینت (client-secret)

پروتکل OAuth2 چیست؟

OAuth2 یک پرتکل امنیتی به شمار می‌آید که هدف اصلیش را می‌توان در امن کردن اطلاعات برنامه مورد استفاده‌ی کاربر و محفوظ نگه‌داشتن خود اطلاعات کاربر تعریف کرد.

چهار مدل پیاده‌سازی برای این پرتکل وجود دارد که هرکدام درصد امنیت متفاوتی دارند و براساس همین، هرچه درصد بالاتر برود فرآیند سخت‌تر می‌شود و این سختی میزانش با دخالت کاربر رابطه‌ی مستقیم دارد.

چهار مدل پیاده‌سازی عبارتند از :

  1. Client Credentials
  2. Password
  3. Implict
  4. Authorization Code

سامانه سماوا براساس مدل 4 یعنی Authorization Code پیاده‌سازی شده‌است که امن‌ترین حالت ممکن به حساب می‌آید.

پیوست‌ها



اطلاعات تماس


تلفن: 88115980
پست الکترونیکی: id@ito.gov.ir