احراز هویت ورود Microsoft Azure

احراز هویت ورود Microsoft Azure OAuth یک عملکرد مفید است که به کاربران Odoo اجازه می‌دهد با حساب Microsoft Azure خود به پایگاه دادهٔ خود وارد شوند.

این به‌ویژه مفید است اگر سازمان از Azure Workspace استفاده می‌کند و می‌خواهد کارمندان درون سازمان با استفاده از حساب‌های Microsoft خود به Odoo متصل شوند.

هشدار

پایگاه‌های داده میزبانی‌شده روی Odoo.com نباید از OAuth login برای owner یا administrator پایگاه داده استفاده کنند زیرا این کار پایگاه داده را از حساب Odoo.com آنها جدا می‌کند. اگر OAuth برای آن کاربر راه‌اندازی شود، پایگاه داده دیگر نمی‌تواند از پورتال Odoo.com تکثیر، تغییر نام یا به‌گونه‌ای دیگر مدیریت شود.

پیکربندی

ادغام عملکرد ورود Microsoft نیازمند پیکربندی روی Microsoft و Odoo است.

پارامتر سیستم Odoo

ابتدا developer mode را فعال کنید، سپس به تنظیمات ↤ فنی ↤ پارامترهای سیستم بروید.

روی جدید کلیک کنید و در ردیف خالی که ظاهر می‌شود، پارامتر سیستم زیر auth_oauth.authorization_header را به فیلد کلید اضافه کنید و مقدار را به 1 تنظیم کنید. سپس روی ذخیره کلیک کنید تا به پایان برسد.

داشبورد Microsoft Azure

ایجاد یک اپلیکیشن جدید

اکنون که پارامترهای سیستم در Odoo راه‌اندازی شده‌اند، زمان آن است که یک اپلیکیشن مربوطه درون Microsoft Azure ایجاد کنید. برای شروع ایجاد اپلیکیشن جدید، به پورتال Microsoft Azure بروید. اگر حساب Microsoft Outlook Office 365 دارید با آن وارد شوید، در غیر این صورت با یک Microsoft account شخصی وارد شوید.

مهم

یک کاربر با دسترسی administrative به Azure Settings باید متصل شود و مراحل پیکربندی زیر را انجام دهد.

در ادامه، به بخشی با برچسب Manage Microsoft Entra ID (به‌طور رسمی Azure Active Directory) بروید. محل این پیوند معمولاً در مرکز صفحه است.

اکنون، روی آیکون Add (+) که در منوی بالا قرار دارد کلیک کنید، سپس App registration را از منوی کشویی انتخاب کنید. در صفحهٔ Register an application، فیلد نام را به Odoo Login OAuth یا یک عنوان مشابه قابل تشخیص تغییر دهید. زیر بخش Supported account types گزینهٔ Accounts in this organizational directory only (Default Directory only - Single tenant) را انتخاب کنید.

هشدار

Supported account types می‌تواند بسته به نوع حساب Microsoft و کاربرد نهایی OAuth متفاوت باشد. برای مثال: آیا login برای کاربران داخلی درون یک سازمان در نظر گرفته شده است یا برای دسترسی به پورتال مشتری؟ پیکربندی فوق برای کاربران داخلی در یک سازمان استفاده می‌شود.

Personal Microsoft accounts only را انتخاب کنید اگر مخاطب هدف برای کاربران پورتال در نظر گرفته شده است. Accounts in this organizational directory only (Default Directory only - Single tenant) را انتخاب کنید اگر مخاطب هدف کاربران شرکت است.

زیر بخش نشانی جدید، Web را به‌عنوان پلتفرم انتخاب کنید، سپس https://<odoo base url>/auth_oauth/signin را در فیلد آدرس اینترنتی وارد کنید. URL پایهٔ Odoo دامنهٔ canonical است که نمونهٔ Odoo شما می‌تواند در آن دسترسی پیدا کند (مثلاً mydatabase.odoo.com اگر روی Odoo.com میزبانی می‌شوید) در فیلد آدرس اینترنتی. سپس، روی ثبت نام کلیک کنید، و اپلیکیشن ایجاد می‌شود.

احراز هویت

احراز هویت اپ جدید را با کلیک روی آیتم منوی اعتبارسنجی در منوی سمت چپ پس از هدایت شدن به تنظیمات اپلیکیشن از مرحلهٔ قبل ویرایش کنید.

در ادامه، نوع token‌های مورد نیاز برای احراز هویت OAuth انتخاب خواهد شد. اینها token‌های ارز نیستند بلکه token‌های احراز هویتی هستند که بین Microsoft و Odoo منتقل می‌شوند. بنابراین، هیچ هزینه‌ای برای این token‌ها وجود ندارد؛ آنها صرفاً برای اهداف احراز هویت بین دو APIs استفاده می‌شوند. token‌هایی را که باید توسط authorization endpoint صادر شوند با اسکرول کردن به پایین صفحه و تیک زدن چک‌باکس‌هایی با برچسب: Access tokens (used for implicit flows) و ID tokens (used for implicit and hybrid flows) انتخاب کنید.

تنظیمات احراز هویت و endpoint token‌ها.

روی ذخیره کلیک کنید تا اطمینان حاصل شود این تنظیمات ذخیره شده‌اند.

جمع‌آوری credentials

با ایجاد و احراز هویت اپلیکیشن در کنسول Microsoft Azure، در ادامه credentials‌ها جمع‌آوری خواهند شد. برای انجام این کار، روی آیتم منوی داشبورد در ستون سمت چپ کلیک کنید. Application (client) ID را در پنجره‌ای که ظاهر می‌شود انتخاب و کپی کنید. این credential را در یک clipboard / notepad پیست کنید، زیرا این credential بعداً در پیکربندی Odoo استفاده خواهد شد.

پس از پایان این مرحله، روی Endpoints در منوی بالا کلیک کنید و روی آیکون کپی در کنار فیلد OAuth 2.0 authorization endpoint (v2) کلیک کنید. این مقدار را در clipboard / notepad پیست کنید.

credentials‌های Application ID و OAuth 2.0 authorization endpoint (v2).

مجوزهای API

Odoo نیاز به مجوز برای خواندن اطلاعات پروفایل کاربر واردشده از Microsoft Graph در طول جریان OAuth دارد. حداقل اطمینان حاصل کنید که مجوز delegated User.Read در app registration Azure اعطا شده است. در غیر این صورت، فرآیند login ممکن است شکست بخورد یا قادر به پیوند صحیح حساب Microsoft به کاربر Odoo نباشد.

توجه

User.Read اغلب به‌صورت پیش‌فرض برای app registration‌های جدید اضافه می‌شود، اما باید به‌صورت صریح در اینجا تأیید شود.

برای پیکربندی این، روی آیتم منوی Manage در ستون سمت چپ کلیک کنید، سپس:

  1. روی API permissions در منوی سمت چپ کلیک کنید.

  2. روی (+) Add a Permission کلیک کنید.

  3. Microsoft Graph را زیر Commonly Used Microsoft APIs انتخاب کنید.

  4. Delegated Permissions را انتخاب کنید.

  5. User.Read را جستجو کنید، آن را انتخاب کنید و روی Add permissions کلیک کنید.

راه‌اندازی Odoo

در نهایت، آخرین مرحله در پیکربندی Microsoft Azure OAuth، تکمیل راه‌اندازی در Odoo است. به تنظیمات ↤ ادغامها بروید و چک‌باکس اعتبارسنجی OAuth را فعال کنید. روی ذخیره کلیک کنید تا تغییرات ذخیره شوند و صفحه refresh شود. به بخش ادغامها اسکرول کنید و روی ارائه دهندگان OAuth کلیک کنید. سپس روی جدید کلیک کنید.

نام ارائه دهنده را به‌عنوان Azure وارد کنید. Application (client) ID را از بخش قبلی در فیلد شناسه Client ID پیست کنید. پس از انجام این کار، مقدار جدید OAuth 2.0 authorization endpoint (v2) را در فیلد آدرس اختصاص دسترسی پیست کنید.

برای فیلد آدرس اطلاعات کاربر، URL زیر را پیست کنید: https://graph.microsoft.com/oidc/userinfo

در فیلد محدوده، مقدار زیر را پیست کنید: openid profile email. در ادامه، لوگوی Windows را می‌توان به‌عنوان کلاس CSS در صفحهٔ login با وارد کردن مقدار زیر استفاده کرد: fa fa-fw fa-windows در فیلد کلاس CSS.

چک‌باکس کنار فیلد مجاز را تیک بزنید تا ارائه‌دهندهٔ OAuth فعال شود. در نهایت، Microsoft Azure را به فیلد برچسب دکمه ورود اضافه کنید. این متن در کنار لوگوی Windows در صفحهٔ login ظاهر می‌شود.

راه‌اندازی provider Odoo در اپلیکیشن Settings.

تغییرات را ذخیره کنید تا راه‌اندازی احراز هویت OAuth در Odoo کامل شود.

جریان‌های تجربهٔ کاربر

برای اینکه یک کاربر بتواند با استفاده از Microsoft Azure به Odoo وارد شود، کاربر باید در Odoo password reset page باشد. این تنها روشی است که Odoo می‌تواند حساب Microsoft Azure را پیوند دهد و به کاربر اجازه ورود دهد.

توجه

کاربران موجود باید رمز عبور خود را reset کنند تا به Odoo password reset page دسترسی پیدا کنند. کاربران Odoo جدید باید روی پیوند دعوت کاربر جدید که از طریق ایمیل ارسال شده است کلیک کنند، سپس روی Microsoft Azure کلیک کنند. کاربران نباید یک رمز عبور جدید تنظیم کنند.

برای ورود به Odoo برای اولین بار با استفاده از ارائه‌دهندهٔ Microsoft Azure OAuth، به Odoo password reset page بروید (با استفاده از پیوند دعوت کاربر جدید). یک صفحهٔ reset رمز عبور باید ظاهر شود. سپس، روی گزینهٔ Microsoft Azure کلیک کنید. صفحه به صفحهٔ login Microsoft هدایت می‌شود.

Microsoft Email Address را وارد کنید و روی بعدی کلیک کنید. فرآیند ورود به حساب را دنبال کنید. اگر 2FA فعال باشد، ممکن است یک مرحلهٔ اضافی لازم باشد.

در نهایت، پس از ورود به حساب، صفحه به یک صفحهٔ مجوزها هدایت می‌شود که در آن از کاربر خواسته می‌شود شرایطی را که اپلیکیشن Odoo به اطلاعات Microsoft آنها دسترسی خواهد داشت پذیرفتن کند.