
این نوشته توضیح می دهد که چگونه یک مدیر می تواند یک وب سرویس (web service) را برای دسترسی کاربران به یک سرویس (service) تنظیم کند. هر کاربر یک کلید امنیتی خاص و منحصر به فرد ( همچنین به عنوان “token – نشانه” نیز شناخته می شود ) برای دسترسی به سرویس دارد.
فعال کردن وب سرویس
- دسترسی به Administration > Site administration > Advanced features
- بررسی ‘Enable web services’ و سپس کلیک بر روی ‘Save Changes’
توجه : به دلایل امنیتی، تنها زمانی که قصد استفاده از وب سرویس ها را دارید آن ها را فعال کنید.

مسیر Access Administration > Site administration > Plugins > Web services > Manage protocols ، پروتکل های (SOAP, REST, XMLRPC, AMF, …) را در صورت نیاز فعال می کند.

معمولا بنا بر درخواست های خارجی کاربران ، پروتکلی که باید فراخوانی و استفاده شود ، فعال می شود.
فعال کردن مستندات تابع وب سرویس – Enabling web service function documentation
نتایج مستندات تابع وب سرویس (حتی در صفحه مدیریت پروتکل ها)،در مستندات وب سرویس مخصوص کاربر در صفحه کلیدهای امنیتی (Security Keys) مربوط به خودش، در دسترس است. این گزینه عمدتا برای توسعه دهندگان خدمات وب سرویس کلاینت مفید است. اگر هیچ کسی وب سرویس کلاینت را ایجاد نکند، نیازی به فعال کردن این ویژگی نیست.

ایجاد کردن یک سرویس – Creating a service
اگر هیچ کدام از وب سرویس های قبلی نیاز شما را برطرف نکرد، شما می توانید سرویس مورد نظر خودتان را ایجاد کنید. به عنوان مثال، انتخاب کنید که کدام تابع وب سرویس استاندارد از طریق آن سرویس در دسترس باشد.
شما می توانید تنها توابع خاصی را که مورد نیازتان است را فعال کنید، به این طریق امنیت خودتان را به خطر نمی اندازید.

دسترسی به Administration > Site administration > Plugins > Web services > External services و سپس کلیک بر روی Add new custom service.
اگر گزینه ‘Authorised users only’ فعال باشد ، شما نیاز دارید کاربران احراز هویت شده را به صورت دستی انتخاب کنید. در غیر این صورت به تمام کاربران دارای مجوز مناسب ، اجازه داده می شود.
اگر گزینه ‘Required capability’ فعال باشد ، هر کاربری که به وب سرویس دسترسی داشته باشد ، در برابر این قابلیت انتخاب شده ، بررسی می شود. (این گزینه تنها یک لایه امنیتی اضافی است.)
یک نام را وارد کنید و بررسی کنید فعال است و یا نه.
بر روی دکمه “اضافه کردن سرویس – Add service” کلیک کنید.
اضافه کردن تابع به سرویس – Adding functions to the service
سرویس شما در حال حاضر خالی است و کاری انجام نمی دهد. توابع وب سرویس باید اضافه شوند. انتخاب شما توسط مواردی که اجازه می دهید تا برنامه خارجی انجام دهد ، مشخص می شود. برای این مثال، «ایجاد گروه – Create group » را انتخاب کنید.
- لینک ‘ اضافه کردن تابع – Add functions‘ را کلیک کنید.
- تابع ‘ایجاد گروه – create group‘ را انتخاب کنید و دکمه ‘اضافه کردن توابع – Add functions‘ را کلیک کنید.
توجه داشته باشید که توابع ضعیف (deprecated ) را نمی توان به سرویس اضافه کرد، اگرچه آنهایی که قبلا بخشی از یک سرویس هستند می توانند در آنجا باقی بمانند تا از پایگاه داده کد Moodle حذف شوند.
شما باید به فهرست توابع سرویس برگردید. ‘قابلیت های مورد نیاز – Required Capabilities’ برای هر تابع نشان داده شده است. کاربران برای اجرای یک تابع نیاز به قابلیت های مورد نیاز دارند. همچنین توصیف عملکرد در مستندات API می تواند به شما اطلاعات بیشتری در مورد قابلیت های مورد نیاز بدهد.(Administration > Site administration > Plugins > Web services > API Documentation).

فعال سازی قابلیت ها – Enabling capabilities
مرحله نهایی اختصاص مجوزهای مناسب است. به قابلیت های زیر باید مجوز داده شود:
- moodle/webservice:createtoken : برای اجازه دادن به کاربران برای ایجاد یک کلید امنیتی
- webservice/rest:use, webservice/rest:use, webservice/rest:use, webservice/rest:use که پروتکل های فعال را منطبق (match) میکند.
- سرویس Required capability اگر (Administration > Site administration > Plugins > Web services > Manage services >Edit link) تنظیم شود.
- قابلیت های مورد نیاز برای توابع وب سرویس: این قابلیت های مورد نیاز در هنگام اضافه کردن یک تابع به سرویس لیست می شوند. برای کسب اطلاعات بیشتر در مورد نقش ها و قابلیت ها، مستندات نقش مدیریت (Manage roles) را بخوانید.
پس از انجام این مجوزها، وب سرویس باید تنظیم شود. کاربران باید بتوانند کلید امنیتی شخصی خود را بدست آورند.
تنظیمات اختیاری – Alternative settings
احراز هویت کاربران خاص – Authorise only specific users
- Administration > Site Administration > Plugins > Web services > External Services
- انتخاب لینک Authorised users (سرویس باید در لینک ویرایش به عنوان Authorised users only تنظیم شده باشد.)
- انتخاب تعدادی کاربر و کلیکک کردن بر روی دکمه Add
اگر نیاز باشد که برخی از قابلیت ها به یک کاربر مجاز اختصاص داده شود ، مودل آن ها را نشان می دهد. علاوه بر این اگر بر روی نام کامل کاربر احراز هویت شده کلیک کنید، می توانید برخی از گزینه های خاص را تنظیم کنید: مانند محدوده IP و Valid until.

ایجاد کردن یک توکن – creating a token
این ویژگی به شما کمک میکند که برای کاربران خاص توکن ایجاد کنید. اگر کاربر قابلیت moodle/create:token را نداشته باشد،این ویژگی می تواند مفید باشد. این تنها راه ایجاد یک نشانه (token) برای یک مدیر است. به دلایل امنیتی، نشانه ها (token) به طور خودکار در صفحه کلیدهای امنیتی مدیر تولید نمی شوند.
- Administration > Site Administration > Plugins > Web services > Manage tokens
- Add را کلیک کنید.
- created user and service را انتخاب کنید.
- دکمه Save changes را بفشارید.
به دلیل اینکه شما یک نشانه (token) برای این کاربر ایجاد کرده اید، لازم نیست که “moodle / webservice: createtoken” را به او اختصاص دهید. در نهایت، توجه داشته باشید که همانطور که می توانید کاربران را احراز هویت کنید، همانطور نیز می توانید محدوده IP و Valid until را برای یک نشانه (token) تنظیم کنید.


منبع : سایت رسمی مودل