সাইন ইন এবং অ্যাকাউন্ট

নির্ধারণ করুন কে অ্যাকাউন্ট তৈরি করতে পারে এবং মানুষ কীভাবে সাইন ইন করে। Antimatter-এর প্রতিটি সাইন ইন পদ্ধতি লাইসেন্স ছাড়াই কাজ করে, একক প্রবেশ (single sign-on) এবং ডিরেক্টরি সহ।

কে অ্যাকাউন্ট তৈরি করতে পারে

ইনস্টল করার পরপরই সিস্টেম কনসোল › প্রমাণীকরণ › সাইন আপ দেখুন। ডিফল্ট সেটিংস অনুযায়ী, যেকোনো ব্যক্তি যার কাছে কমিউনিটির আমন্ত্রণ লিংক আছে, সে অ্যাকাউন্ট তৈরি করতে পারে, কিন্তু আমন্ত্রণ ছাড়া কেউ সাইন আপ করতে পারে না।

সেটিংকীডিফল্টএটি কী করে
অ্যাকাউন্ট তৈরি সক্রিয় করুনTeamSettings.EnableUserCreationঅনবন্ধ থাকলে, কোনো পদ্ধতিতে কেউ অ্যাকাউন্ট তৈরি করতে পারে না; শুধুমাত্র অ্যাডমিনরা পারে (সিস্টেম কনসোল বা amctl user create)।
ওপেন সার্ভার সক্রিয় করুনTeamSettings.EnableOpenServerবন্ধচালু থাকলে, সার্ভারে পৌঁছানো যেকোনো ব্যক্তি আমন্ত্রণ ছাড়াই ইমেইল ঠিকানা দিয়ে সাইন আপ করতে পারে। এটি শুধুমাত্র পাবলিক কমিউনিটির জন্য ব্যবহার করুন।
নির্দিষ্ট ইমেইল ডোমেইনে নতুন সিস্টেম এবং টিম সদস্যদের সীমাবদ্ধ করুনTeamSettings.RestrictCreationToDomainsখালিকমা-সেপারেটেড ডোমেইন, যেমন example.com, example.org: শুধুমাত্র এই ডোমেইনের ঠিকানাগুলো অ্যাকাউন্ট তৈরি করতে পারে।
ইমেইল আমন্ত্রণ সক্রিয় করুনServiceSettings.EnableEmailInvitationsনতুন সার্ভারে বন্ধসদস্যদের ইমেইল দিয়ে মানুষ আমন্ত্রণ করার অনুমতি দেয় (SMTP প্রয়োজন)। পেন্ডিং ইমেইল আমন্ত্রণ বাতিল করুন এখনও গ্রহণ করা হয়নি এমন আমন্ত্রণগুলো বাতিল করে; তবে ৪৮ ঘণ্টা পরে তারা স্বয়ংক্রিয়ভাবে মেয়াদোত্তীর্ণ হয়ে যায়।

কমিউনিটির অ্যাডমিনরা আমন্ত্রণ লিংক এবং তাদের অনুমোদিত ডোমেইন ব্যবহার করে তাদের কমিউনিটিতে কে যোগ দিচ্ছে তাও নিয়ন্ত্রণ করেন: কমিউনিটি পরিচালনা গাইড দেখুন।

কমান্ড লাইন থেকে: amctl user create (যেমন --system-admin বা --guest যোগ করুন), amctl user invite, amctl user deactivate, কাউকে সিস্টেম অ্যাডমিন করতে amctl roles system-admin <user>, এবং তা বাতিল করতে amctl roles member <user>।

ইমেইল এবং পাসওয়াড

সিস্টেম কনসোল › প্রমাণীকরণ › ইমেইল-এ:

সেটিংকীডিফল্ট
ইমেইল দিয়ে অ্যাকাউন্ট তৈরি চালু করুনEmailSettings.EnableSignUpWithEmailচালু। যখন সবাই একক প্রবেশ (single sign-on) দিয়ে সাইন ইন করে, তখন এটি বন্ধ করুন।
ইমেইল ভেরিফিকেশন আবশ্যকEmailSettings.RequireEmailVerificationবন্ধ। ইমেইল কাজ করার পর এটি চালু করুন: তখন মানুষ সাইন ইন করার আগে তাদের ঠিকানা নিশ্চিত করতে হবে।
ইমেইল দিয়ে সাইন ইন চালু করুনEmailSettings.EnableSignInWithEmailঅন
ইউজারনেম দিয়ে সাইন ইন চালু করুনEmailSettings.EnableSignInWithUsernameঅন

সিস্টেম কনসোল › প্রমাণীকরণ › পাসওয়াড-এ:

সেটিংকীডিফল্ট
সর্বনিম্ন পাসওয়াড দৈর্ঘ্যPasswordSettings.MinimumLength৮ (৫ থেকে ৭২)
পাসওয়াডের শর্তাবলী: লোয়ারকেস, আপারকেস, সংখ্যা, প্রতীকPasswordSettings.Lowercase, .Uppercase, .Number, .Symbolসব বন্ধ
সর্বোচ্চ লগইন চেষ্টাServiceSettings.MaximumLoginAttempts১০: এই সংখ্যক ব্যর্থতার পরে, ইমেইলের মাধ্যমে পাসওয়ার্ড রিসেট করা পর্যন্ত অ্যাকাউন্টটি লক হয়ে যায়
পাসওয়ার্ড ভুলে গেছেন লিংক সক্রিয় করুনPasswordSettings.EnableForgotLinkঅন

১২ বা তার বেশি দৈর্ঘ্যের পাসওয়ার্ড চরিত্রের নিয়মের চেয়ে নিরাপত্তার জন্য বেশি কার্যকরী। কারও পাসওয়ার্ড রিসেট করতে: সিস্টেম কনসোল › ব্যবহারকারী ব্যবস্থাপনা › ব্যবহারকারীসমূহ, অথবা amctl user change-password <user> --password <new>।

মাল্টি-ফ্যাক্টর অথেনটিকেশন

মাল্টি-ফ্যাক্টর অথেনটিকেশন (MFA) পাসওয়ার্ডের সাথে একটি অথেনটিকেটর অ্যাপ থেকে পাওয়া কোড যোগ করে। এটি ইমেইল বা AD/LDAP দিয়ে সাইন ইন করা অ্যাকাউন্টে প্রযোজ্য; সিঙ্গেল সাইন-অনের ক্ষেত্রে, আপনার আইডেন্টিটি প্রোভাইডারের MFA ব্যবহার করুন। সিস্টেম কনসোল › প্রমাণীকরণ › MFA-তে:

  • মাল্টি-ফ্যাক্টর অথেনটিকেশন সক্রিয় করুন (ServiceSettings.EnableMultifactorAuthentication, বন্ধ): ব্যবহারকারীরা তাদের নিরাপত্তা সেটিংসে MFA চালু করতে পারেন।
  • মাল্টি-ফ্যাক্টর অথেনটিকেশন বাধ্যতামূলক করুন (ServiceSettings.EnforceMultifactorAuthentication, বন্ধ): সবাইকে সাইন-আপের সময় বা পরবর্তী সাইন-ইনের সময় এটি সেটআপ করতে হবে।

যদি কেউ তাদের ডিভাইস হারিয়ে ফেলে: amctl user resetmfa <user>, অথবা সিস্টেম কনসোল › ব্যবহারকারী ব্যবস্থাপনা › ব্যবহারকারীসমূহ-এ তাদের পেজ থেকে রিসেট করুন।

সিঙ্গেল সাইন-অন

Antimatter আপনার আইডেন্টিটি প্রোভাইডারের মাধ্যমে ব্যবহারকারীদের সাইন ইন করতে পারে। প্রথম সাইন-ইনের সময় এটি প্রোভাইডার যে নাম, ইমেইল এবং ইউজারনেম পাঠায় তার থেকে তাদের অ্যাকাউন্ট তৈরি করে (যদি অ্যাকাউন্ট তৈরি অনুমোদিত হয়)।

OpenID Connect, GitLab, Google এবং Entra ID

সিস্টেম কনসোল › প্রমাণীকরণ › OpenID Connect-এ যান এবং সার্ভিস প্রোভাইডার নির্বাচন করুন-এর নিচে নির্বাচন করুন: GitLab, Google Apps, Entra ID (Office 365) বা অন্য যেকোনো প্রোভাইডারের (Keycloak, Authentik, Zitadel, Okta, Auth0…) জন্য OpenID Connect (অন্যান্য)।

  1. আপনার প্রোভাইডারে, আপনার সাইট URL-এর জন্য এই রিডাইরেক্ট URI সহ ওয়েব টাইপের একটি অ্যাপ্লিকেশন (একটি "ক্লায়েন্ট") তৈরি করুন:
    প্রোভাইডাররিডাইরেক্ট URI
    OpenID Connect (অন্যান্য)https://chat.example.com/signup/openid/complete
    GitLabhttps://chat.example.com/signup/gitlab/complete
    Googlehttps://chat.example.com/signup/google/complete
    Entra IDhttps://chat.example.com/signup/office365/complete
  2. Antimatter-এ, ডিসকভারি এন্ডপয়েন্ট (প্রোভাইডারের /.well-known/openid-configuration URL; GitLab-এর ক্ষেত্রে এর পরিবর্তে GitLab সাইট URL), ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট পূরণ করুন। অন্যান্য প্রোভাইডারের জন্য, সাইন-ইন বাটনের বাটন নাম এবং বাটনের রঙও পূরণ করুন।
  3. প্রেফার্ড ইউজারনেম ব্যবহার করুন (GitLab এবং অন্যান্য প্রোভাইডার) Antimatter ইউজারনেম প্রোভাইডারের preferred_username ক্লেইম থেকে নেয়।
  4. সেভ করুন, সাইন আউট করুন এবং সাইন-ইন পেজে নতুন বাটনটি পরীক্ষা করুন।

সেটিংসগুলো OpenIdSettings, GitLabSettings, GoogleSettings বা Office365Settings-এ সংরক্ষিত থাকে (যেমন AM_OPENIDSETTINGS_ENABLE, AM_OPENIDSETTINGS_DISCOVERYENDPOINT, AM_OPENIDSETTINGS_ID, AM_OPENIDSETTINGS_SECRET)। Additional Scopes (AM_OPENIDSETTINGS_ADDITIONALSCOPES) ডিফল্ট স্কোপের পাশাপাশি আরও OAuth স্কোপের জন্য প্রোভাইডারকে অনুরোধ করে, যা স্পেস-সেপারেটেড হতে হবে। পুরনো OAuth 2.0 পৃষ্ঠাটি শুধুমাত্র সেই সার্ভারগুলোর জন্য দেখা যায় যেখানে এখনও OAuth 2.0 GitLab, Google বা Entra ID কনফিগারেশন বিদ্যমান।

সাধারণ OpenID Connect-এর ক্ষেত্রে (GitLab, Google বা Entra ID নয়), সাইন ইন করার সময় আপনি যেসব ইউজার অ্যাট্রিবিউটকে একটি ক্লেইমের সাথে লিংক করেছেন সেগুলোও সিঙ্ক হয়: Antimatter ID টোকেন এবং userinfo রেসপন্স পড়ে (যখন উভয়ই একটি ক্লেইম বহন করে, তখন userinfo-এর মানটি প্রাধান্য পায়), প্রথমে ক্লেইমের নামটি একটি একক টপ-লেভেল কী হিসেবে খোঁজে, এবং যদি কিছু না মেলে তবে ডট-সেপারেটেড নেস্টিং হিসেবে (যেমন address.country) খোঁজে। রেসপন্সে যে ক্লেইমটি অন্তর্ভুক্ত নয়, তা সিঙ্ক করার জন্য প্রোভাইডারকে সোর্স অফ ট্রুথ হিসেবে গণ্য করা হয়, তাই এটি সংশ্লিষ্ট অ্যাট্রিবিউটটি পরিষ্কার করে দেয়। এই ফিচারটি ডিফল্টভাবে চালু থাকে; এটি বন্ধ করতে AM_FEATUREFLAGS_OPENIDATTRIBUTESYNC=false ব্যবহার করুন।

SAML 2.0

সিস্টেম কনসোল › প্রমাণীকরণ › SAML 2.0-এ SAML 2.0 দিয়ে লগইন সক্রিয় করুন (SamlSettings.Enable) চালু করুন এবং আপনার আইডেন্টিটি প্রোভাইডার যে তথ্য দেয় তা পূরণ করুন: আইডেন্টিটি প্রোভাইডার মেটাদেট URL, অথবা SAML SSO URL, আইডেন্টিটি প্রোভাইডার ইস্যুয়া URL এবং Identity Provider পাবলিক সার্টিফিকেট। আইডেন্টিটি প্রোভাইডারের পক্ষে:

  • সার্ভিস প্রোভাইডার লগইন URL (assertion consumer service): https://chat.example.com/login/sso/saml;
  • যে প্রোভাইডাররা এটি ইমপোর্ট করে তাদের জন্য Antimatter-এর মেটাদেটা: https://chat.example.com/api/v4/saml/metadata।

আপনার প্রোভাইডার যে অ্যাট্রিবিউট পাঠায় তা ম্যাপ করুন: কমপক্ষে ইমেইল অ্যাট্রিবিউট এবং ইউজারনেম অ্যাট্রিবিউট, এবং ঐচ্ছিকভাবে ID, প্রথম ও শেষ নাম, নিকনেম, পদবি, ভাষা, অতিথি এবং অ্যাডমিন অ্যাট্রিবিউট। সাইগনেচার যাচাই করুন এবং এনক্রিপশন সক্রিয় করুন ডিফল্টভাবে চালু থাকে (এনক্রিপশনের জন্য সার্ভিস প্রোভাইডারের কী এবং সার্টিফিকেট প্রয়োজন; শুধুমাত্র RSA কী সাপোর্ট করা হয়); রিকোয়েস্ট সাইন করুন বন্ধ থাকে। সাইগনেচার অ্যালগরিদমের ডিফল্ট মান RSAwithSHA256।

AD/LDAP

সিস্টেম কনসোল › প্রমাণীকরণ › AD/LDAP-এ, একটি ধাপে ধাপে পেজ Antimatter-কে Active Directory বা অন্য কোনো LDAP সার্ভারের সাথে সংযুক্ত করে: সার্ভার এবং পোর্ট (LdapSettings.LdapServer, LdapSettings.LdapPort, ডিফল্ট 389), সংযোগের নিরাপত্তা (কোনোটিই নয়, TLS বা STARTTLS), বেস DN এবং একটি বাইন্ড অ্যাকাউন্ট (BaseDN, BindUsername, BindPassword), ইউজার, অতিথি, অ্যাডমিন এবং গ্রুপের জন্য ফিল্টার, এবং ইমেইল, ইউজারনেম, ID, নাম এবং ছবির জন্য অ্যাট্রিবিউট। এরপর মানুষরা তাদের ডিরেক্টরি লগইন দিয়ে সাইন ইন করে।

প্রতি ৬০ মিনিটে (LdapSettings.SyncIntervalMinutes) একটি সিংক্রোনাইজেশন জব চলে যা নাম আপডেট করে এবং ডিরেক্টরি থেকে সরানো মানুষদের নিষ্ক্রিয় করে; amctl ldap sync দিয়ে এটি এখনই চালানো যায়। LDAP গ্রুপগুলো সিস্টেম কনসোল › ব্যবহারকারী ব্যবস্থাপনা › গ্রুপসমূহ-এ কমিউনিটি এবং চ্যানেলের সাথে লিঙ্ক করা যায়। SAML অ্যাকাউন্টগুলোকেও AD/LDAP-এর সাথে সিংক্রোনাইজ রাখা যায় (AD/LDAP-এর সাতের SAML অ্যাকাউন্ট সিংক্রোনাইজ করা সক্রিয় করুন)।

সিস্টেম কনসোল › সিস্টেম অ্যাট্রিবিউট-এ AD/LDAP বা SAML অ্যাট্রিবিউটের সাথে ম্যাপ করা কাস্টম প্রোফাইল অ্যাট্রিবিউটগুলো একইভাবে সিঙ্ক হয়: একটি টেক্সট অ্যাট্রিবিউটের মান ডিরেক্টরি বা অ্যাসার্শন যেভাবে পাঠায়, ঠিক সেভাবেই কপি করা হয়, সর্বোচ্চ ৬৪টি অক্ষর পর্যন্ত (দীর্ঘ মানটি অ্যাট্রিবিউটটি পরিষ্কার করে দেয়, কেটে ছোট করা হয় না); একটি সিলেক্ট বা মাল্টিসিলেক্ট অ্যাট্রিবিউটের মান কেস নির্বিশেষে বিদ্যমান কোনো অপশনের সাথে মেলে, সেই অপশনের নিজস্ব বানান বজায় রাখা হয়, এবং যদি কোনো অপশন না মেলে তবে একটি নতুন অপশন তৈরি করা হয়। যেসব অপশন আর কেউ ধরে নেই সেগুলো সরিয়ে ফেলা হয়, এবং একটি সিঙ্ক করা অ্যাট্রিবিউটের অপশন তালিকা শুধুমাত্র সেই সিঙ্কের মাধ্যমে পরিবর্তন করা যায় যা এটি নিয়ন্ত্রণ করে, সিস্টেম কনসোলে হাতে পরিবর্তন করা যায় না।

অবস্থিত অ্যাকাউন্ট স্থানান্তর

অবস্থিত ইমেল অ্যাকাউন্টগুলোকে সিঙ্গেল সাইন-অনে পরিবর্তন করতে, amctl user migrate-auth email saml users.json (অথবা ldap) ব্যবহার করে একসাথে স্থানান্তর করা যায়। প্রমাণীকরণ স্থানান্তর অনুমতি দিন (ServiceSettings.ExperimentalEnableAuthenticationTransfer, সিস্টেম কনসোল › পরীকষামূলক › ফিচারসমূহ) চালু থাকলে, একজন ব্যবহারকারী নিজের নিরাপত্তা সেটিংসে নিজের সাইন-ইন পদ্ধতি পরিবর্তন করতে পারেন।

অতিথি অ্যাকাউন্ট

অতিথি হলেন আপনার প্রতিষ্ঠানের বাইরের এমন ব্যক্তিরা যারা শুধুমাত্র তাদের আমন্ত্রিত চ্যানেলগুলো দেখতে পান। সিস্টেম কনসোল › প্রমাণীকরণ › অতিথি অ্যাক্সেস-এ এগুলো চালু করুন:

সেটিংকীডিফল্ট
অতিথি অ্যাক্সেস সক্রিয় করুনGuestAccountsSettings.Enableবন্ধ
অনুমোদিত অতিথি ডোমেনGuestAccountsSettings.RestrictCreationToDomainsখালি: অতিথিরা যেকোনো ইমেল ডোমেন ব্যবহার করতে পারেন
মাল্টি-ফ্যাক্টর অথেনটিকেশন বাধ্যতামূলক করুনGuestAccountsSettings.EnforceMultifactorAuthenticationবন্ধ; কেবল তখনই উপলব্ধ যখন MFA সবাইয়ের জন্য চালু এবং বাধ্যতামূলক করা হয়
অতিথি ট্যাগ লুকানGuestAccountsSettings.HideTagsবন্ধ: তাদের নামের পাশে একটি "অতিথি" ট্যাগ দেখানো হয়

একবার চালু হলে, কমিউনিটি অ্যাডমিনরা অতিথিদের নির্দিষ্ট চ্যানেলে আমন্ত্রণ জানান। অ্যাডমিনরা amctl user demote ব্যবহার করে একজন সদস্যকে অতিথিতে পরিণত করতে পারেন, এবং amctl user promote ব্যবহার করে একজন অতিথিকে সদস্যে পরিণত করতে পারেন।

সেশন

ব্যবহারকারীরা কতক্ষণ সাইন-ইন থাকেন তা সিস্টেম কনসোল › এনভাইরনমেন্ট › সেশন দৈর্ঘ্য-এ সেট করা হয়:

সেটিংকীনতুন সার্ভারে ডিফল্ট
সক্রিয়তার সাথে সেশন দৈর্ঘ্য বাড়ানServiceSettings.ExtendSessionLengthWithActivityচালু: Antimatter ব্যবহারের সময় সেশন নবায়িত হয়
সেশন দৈর্ঘ্য AD/LDAP এবং ইমেল (ঘণ্টা)ServiceSettings.SessionLengthWebInHours৭২০ ঘণ্টা (৩০ দিন)
মোবাইল সেশন দৈর্ঘ্য (ঘণ্টা)ServiceSettings.SessionLengthMobileInHours৭২০ ঘণ্টা
SSO সেশন দৈর্ঘ্য (ঘণ্টা)ServiceSettings.SessionLengthSSOInHours৭২০ ঘণ্টা
সেশন আইডল টাইমআউট (মিনিট)ServiceSettings.SessionIdleTimeoutInMinutes৪৩২০০ মিনিট (৩০ দিন); শুধুমাত্র তখনই দেখানো হয় যখন সেশন সক্রিয়তার সাথে নবায়িত হয় না
পাসওয়ার্ড পরিবর্তনে সেশন বন্ধ করুনServiceSettings.TerminateSessionsOnPasswordChangeঅন

সবাইকে একসাথে সাইন-আউট করতে, সিস্টেম কনসোল › ব্যবহাৰকৰী ব্যৱস্থাপনা › ব্যৱহাৰকৰীসমূহ-এ সব সেশন বাতিল করুন ব্যবহার করুন। একজন ব্যক্তিকে সাইন-আউট করতে, সেখানে তার পেজ খুলুন।