സെഷൻ ടൈംഔട്ടിനുശേഷം SAML 2.0 സിംഗിൾ ലോഗ് ഔട്ട് മനസ്സിലാക്കുന്നു
SAML 2.0 സിംഗിൾ സൈൻ-ഓൺ (എസ്എസ്ഒ) സിസ്റ്റങ്ങൾ ഒരു സെറ്റ് ക്രെഡൻഷ്യലുകൾ ഉപയോഗിച്ച് വിവിധ ആപ്ലിക്കേഷനുകളിലേക്ക് സൈൻ ഇൻ ചെയ്യാൻ ഉപയോക്താക്കളെ അനുവദിക്കുന്നതിനാൽ, അവർക്ക് ഉപയോക്തൃ ആധികാരികത ഗണ്യമായി ലളിതമാക്കിയിട്ടുണ്ട്. എന്നാൽ സിംഗിൾ ലോഗ് ഔട്ട് (SLO) സങ്കൽപ്പത്തിൽ കാര്യമായ പ്രശ്നങ്ങളുണ്ട്, പ്രത്യേകിച്ചും ഒരു സേവന ദാതാവിൽ (SP) ഒരു ഉപയോക്താവിൻ്റെ സെഷൻ കാലഹരണപ്പെടുമ്പോൾ എന്ത് സംഭവിക്കുന്നു എന്നതുമായി ബന്ധപ്പെട്ട് അവർ ലോഗിൻ ചെയ്തിട്ടില്ല. ഈ സാഹചര്യത്തിൽ, ഐഡൻ്റിറ്റി പ്രൊവൈഡർ ചെയ്യണം (IDP) സെഷനും അവസാനിക്കുമോ?
SAML 2.0 ൻ്റെ പശ്ചാത്തലത്തിൽ സുരക്ഷിതവും കാര്യക്ഷമവുമായ പ്രവേശനം ഉറപ്പാക്കുന്നതിന് SP-യും IDP-യും തമ്മിലുള്ള സെഷൻ മാനേജ്മെൻ്റ് അത്യന്താപേക്ഷിതമാണ്. ഉപയോക്താവ് ഇപ്പോഴും IDP-യിലേക്ക് കണക്റ്റ് ചെയ്തിരിക്കണമോ എന്ന് ഒരു SP സെഷൻ അവസാനിക്കുമ്പോൾ അത് എല്ലായ്പ്പോഴും വ്യക്തമല്ല, അതേ IDP-യുമായി ലിങ്ക് ചെയ്തിരിക്കുന്ന മറ്റ് ആപ്പുകളെ ഇത് സ്വാധീനിച്ചേക്കാം. ഇത് ഉപയോഗക്ഷമതയെക്കുറിച്ചും സുരക്ഷയെക്കുറിച്ചും ചോദ്യങ്ങൾ ഉയർത്തുന്നു.
ഈ സെഷൻ ടൈംഔട്ടുകൾ കൈകാര്യം ചെയ്യുന്നതിനുള്ള വ്യക്തമായ മികച്ച സമ്പ്രദായം പല ബിസിനസ്സുകളും സ്ഥാപിക്കേണ്ടതുണ്ട്, പ്രത്യേകിച്ച് Microsoft Entra പോലുള്ള ഇൻ്റർഫേസുകൾ ഉപയോഗിക്കുന്നവ. ഒരു എസ്പിയുടെ സെഷൻ എസ്പി തലത്തിൽ നിർത്തുന്നതാണോ നല്ലത്, അതോ ഉപയോക്താവിനെ അവരുടെ ഐഡിപി അക്കൗണ്ടിൽ നിന്ന് ലോഗ് ഔട്ട് ചെയ്യുന്ന ഒരു എസ്എൽഒയ്ക്ക് ഇത് കാരണമാകുമോ?
സെഷൻ ടൈംഔട്ടുകൾ കൈകാര്യം ചെയ്യുന്നതിനും സുരക്ഷയും ഉപയോഗക്ഷമതയും ഉറപ്പുനൽകുന്നതിനുള്ള ഏറ്റവും കാര്യക്ഷമമായ സാങ്കേതിക വിദ്യകൾ ചിത്രീകരിക്കുന്നതിന് യഥാർത്ഥ ലോക ഉദാഹരണങ്ങൾ ഉപയോഗിച്ച്, അത്തരം സാഹചര്യങ്ങളിൽ SAML 2.0 SLO ഇവൻ്റുകൾ കൈകാര്യം ചെയ്യുന്നതിനുള്ള സ്റ്റാൻഡേർഡ് രീതികളും മാനദണ്ഡങ്ങളും ഈ പേപ്പർ പരിശോധിക്കുന്നു.
കമാൻഡ് | ഉപയോഗത്തിൻ്റെ ഉദാഹരണം |
---|---|
session() | ഉപയോക്തൃ സെഷനുകൾ നിയന്ത്രിക്കാൻ എക്സ്പ്രസ് ആപ്ലിക്കേഷനിൽ ഉപയോഗിച്ചു. ഉദാഹരണത്തിൽ, ഉപയോക്തൃ പ്രവർത്തനവും സെഷൻ ടൈംഔട്ടുകളും നിരീക്ഷിക്കുന്നതിന് ഇത് സഹായിക്കുന്നു, അതിനാൽ ആവശ്യമുള്ളപ്പോൾ ലോഗ്ഔട്ട് ലോജിക് പ്രവർത്തനക്ഷമമാക്കാനാകും. |
maxAge | സെഷൻ കുക്കി സാധുതയുള്ള സമയപരിധി വ്യക്തമാക്കുന്നു. ഈ സാഹചര്യത്തിൽ, ടൈമർ 600000 മില്ലിസെക്കൻഡ് അല്ലെങ്കിൽ 10 മിനിറ്റിന് ശേഷം കാലഹരണപ്പെടുകയും ഒരു ലോഗ്ഔട്ട് ഇവൻ്റ് ആരംഭിക്കുകയും ചെയ്യുന്നു. |
create_logout_request_url() | സേവന ദാതാവിൻ്റെ സെഷൻ അവസാനിക്കുമ്പോൾ, ഈ SAML2 ലൈബ്രറി രീതി സൃഷ്ടിച്ച സിംഗിൾ ലോഗ് ഔട്ട് (SLO) അഭ്യർത്ഥന URL ഐഡൻ്റിറ്റി പ്രൊവൈഡറിന് (IDP) കൈമാറും. |
readFileSync() | SAML2 സേവന ദാതാവ് സജ്ജീകരിക്കുന്നതിന് ആവശ്യമായ പ്രധാന ഫയലുകളും സർട്ടിഫിക്കറ്റുകളും സമന്വയത്തോടെ വായിക്കുന്നു. സേവന ദാതാവിനും ഐഡൻ്റിറ്റി പ്രൊവൈഡർക്കും സുരക്ഷിതമായി ആശയവിനിമയം നടത്തുന്നതിന്, ഈ സർട്ടിഫിക്കേഷനുകൾ ആവശ്യമാണ്. |
assert_endpoint | വിജയകരമായ പ്രാമാണീകരണത്തെത്തുടർന്ന്, ഐഡൻ്റിറ്റി പ്രൊവൈഡർ SAML ഉറപ്പ് കൈമാറാൻ ഉപയോഗിക്കുമെന്ന് URL സൂചിപ്പിക്കുന്നു. ഇത് ചെയ്യുന്നതിലൂടെ, ഉപയോക്തൃ പ്രാമാണീകരണത്തിൻ്റെ സേവന ദാതാവിൻ്റെ നില ഉറപ്പുനൽകുന്നു. |
window.onload | ഫ്രണ്ട്എൻഡിൽ സെഷൻ നിഷ്ക്രിയത്വ ടൈമർ പുനഃസജ്ജമാക്കാൻ ഈ ഇവൻ്റ് ഉപയോഗിക്കുന്നു. ഉപയോക്താവ് ആദ്യമായി പ്രോഗ്രാം ലോഡുചെയ്യുമ്പോൾ, ടൈമർ വീണ്ടും ആരംഭിക്കുന്നുവെന്ന് ഇത് ഉറപ്പാക്കുന്നു. |
onmousemove | സെഷൻ ടൈമർ പുനഃസജ്ജമാക്കാൻ, ഈ ഇവൻ്റ് ലിസണർ ഏതെങ്കിലും മൗസിൻ്റെ ചലനം കണ്ടെത്തുന്നു. ഉപയോക്തൃ പെരുമാറ്റം നിരീക്ഷിക്കുന്നതിനും ആകസ്മികമായ സെഷൻ ടൈംഔട്ടുകൾ ഒഴിവാക്കുന്നതിനും ഇത് അത്യന്താപേക്ഷിതമാണ്. |
fetch() | സെഷൻ കാലഹരണപ്പെട്ടതിനെത്തുടർന്ന്, സെർവറിലേക്ക് ഒരു SLO അഭ്യർത്ഥന അസമന്വിതമായി അയയ്ക്കാൻ ഉപയോഗിക്കുന്നു. ഐഡൻ്റിറ്റി പ്രൊവൈഡറുമായി കണക്റ്റുചെയ്യുന്നതിനും ഉപയോക്താവിനെ IDP-യിൽ നിന്ന് ലോഗ് ഔട്ട് ചെയ്യുന്നതിനും, അത് ബാക്കെൻഡ് ലോജിക്ക് ഓഫ് ചെയ്യുന്നു. |
setTimeout() | ഫ്രണ്ട്എൻഡ് കോഡിലെ ഈ ഫംഗ്ഷൻ, മുൻകൂട്ടി നിശ്ചയിച്ച നിഷ്ക്രിയത്വത്തിന് ശേഷം സെഷൻ ടൈംഔട്ട് ഇവൻ്റിന് കാരണമാകുന്നു. ഉപയോക്തൃ പെരുമാറ്റം നിരീക്ഷിക്കുന്നതിനും സുരക്ഷാ നിയന്ത്രണങ്ങൾ നടപ്പിലാക്കുന്നതിനും ഇത് അത്യന്താപേക്ഷിതമാണ്. |
SAML 2.0 സെഷൻ ടൈംഔട്ട് കൈകാര്യം ചെയ്യൽ ഉപയോഗിച്ച് ഒറ്റ ലോഗ് ഔട്ട് ഒപ്റ്റിമൈസ് ചെയ്യുന്നു
ഉപയോഗിക്കുന്നത് Node.js കൂടാതെ എക്സ്പ്രസ്, സിംഗിൾ ലോഗ് ഔട്ട് (SLO) കൈകാര്യം ചെയ്യുന്നതിനുള്ള ബാക്കെൻഡ് സ്ക്രിപ്റ്റ്, ഉപയോക്തൃ സെഷൻ കാലഹരണപ്പെടൽ ട്രാക്ക് ചെയ്യാനും സേവന ദാതാവ് (SP), ഐഡൻ്റിറ്റി പ്രൊവൈഡർ (IDP) തലങ്ങളിൽ ലോഗ്ഔട്ട് സീക്വൻസ് ആരംഭിക്കാനുമുള്ള കഴിവിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നു. എക്സ്പ്രസ് സെഷനുകളുടെ മാനേജ്മെൻ്റ് ഈ ന്യായവാദത്തിൻ്റെ ഹൃദയഭാഗത്താണ്. മുൻകൂട്ടി നിശ്ചയിച്ച നിഷ്ക്രിയത്വത്തിന് ശേഷം സെഷൻ അവസാനിപ്പിക്കാൻ സജ്ജീകരിച്ച് ഞങ്ങൾ ഒരു ട്രിഗർ പോയിൻ്റ് സ്ഥാപിക്കുന്നു - ഞങ്ങളുടെ ഉദാഹരണത്തിൽ പത്ത് മിനിറ്റ്. സെഷൻ അവസാനിക്കുമ്പോൾ, ഒരു SAML 2.0 ലോഗ്ഔട്ട് അഭ്യർത്ഥന ആരംഭിക്കുന്നതിന് സ്ക്രിപ്റ്റ് `create_logout_request_url()} രീതി ഉപയോഗിക്കുന്നു, അത് IDP-യിലേക്ക് ബന്ധിപ്പിക്കുന്നു (ഈ സാഹചര്യത്തിൽ, മൈക്രോസോഫ്റ്റ് എൻട്ര) ഉപയോക്തൃ സെഷൻ പൂർണ്ണമായും അവസാനിപ്പിക്കാൻ. ഉപയോക്താവ് സിസ്റ്റത്തിൽ നിന്ന് പൂർണ്ണമായും ലോഗ് ഔട്ട് ചെയ്തുവെന്ന് ഉറപ്പ് നൽകിക്കൊണ്ട് ഇത് സുരക്ഷ വർദ്ധിപ്പിക്കുന്നു.
ഞങ്ങൾ ലോഡ് ചെയ്യുന്നു SAML സർട്ടിഫിക്കറ്റുകൾ SP (MyApp) ഉം IDP (Microsoft Entra) ഉം തമ്മിലുള്ള സുരക്ഷിത ആശയവിനിമയം പ്രവർത്തനക്ഷമമാക്കാൻ `readFileSync()} കമാൻഡ് ഉപയോഗിച്ച് ആപ്ലിക്കേഷനിലേക്കുള്ള കീകളും. ലോഗ്ഔട്ട് അഭ്യർത്ഥന ആധികാരികമാക്കുന്നതിലൂടെ, ഈ സർട്ടിഫിക്കറ്റുകൾ നിയമവിരുദ്ധമായ ലോഗ്ഔട്ടുകളിൽ നിന്ന് സംരക്ഷിക്കുകയും ആശയവിനിമയം എൻക്രിപ്റ്റ് ചെയ്യുകയും സ്ഥിരീകരിക്കുകയും ചെയ്യുന്നുവെന്ന് ഉറപ്പ് നൽകുന്നു. ലോഗ്ഔട്ട് അഭ്യർത്ഥന URL സൃഷ്ടിച്ചതിന് ശേഷം ഉപയോക്താവിനെ ലോഗ്ഔട്ട് അഭ്യർത്ഥന URL-ലേക്ക് അയയ്ക്കുന്നു, അവിടെ IDP ലോഗ്ഔട്ട് കൈകാര്യം ചെയ്യുകയും ആവശ്യമെങ്കിൽ ഏതെങ്കിലും അനുബന്ധ ആപ്ലിക്കേഷനുകളിലുടനീളം ഉപയോക്താവിൻ്റെ സെഷൻ അവസാനിപ്പിക്കുകയും ചെയ്യുന്നു. മൾട്ടി-ആപ്ലിക്കേഷൻ സിംഗിൾ സൈൻ-ഓൺ (എസ്എസ്ഒ) ഇൻസ്റ്റാളേഷനുകളുടെ സുരക്ഷയും സമഗ്രതയും നിലനിർത്തുന്നതിന് ഈ രണ്ട്-വഴി ആശയവിനിമയം ആവശ്യമാണ്.
മുൻവശത്ത് തത്സമയം ഉപയോക്തൃ പ്രവർത്തനങ്ങൾ ട്രാക്കുചെയ്യുന്നതിന് JavaScript സ്ക്രിപ്റ്റ് അത്യാവശ്യമാണ്. ഓരോ തവണയും ഉപയോക്താവ് പ്രോഗ്രാമുമായി സംവദിക്കുമ്പോൾ, `onmousemove}, `onkeypress` എന്നിങ്ങനെയുള്ള ഇവൻ്റ് ലിസണറുകൾ ഉപയോഗിച്ച് ഞങ്ങൾ സെഷൻ ടൈംഔട്ട് പുനഃസജ്ജമാക്കുന്നു. `setTimeout()` ഉപയോഗിച്ച് സജ്ജീകരിച്ചിരിക്കുന്ന ഒരു ടൈമർ ഉപയോക്താവിനെ അലേർട്ട് ചെയ്യുകയും ഉപയോക്താവ് നിഷ്ക്രിയമാകുമ്പോൾ അവരെ SP (MyApp)-ൽ നിന്ന് സ്വയമേവ ലോഗ് ഔട്ട് ചെയ്യുകയും ചെയ്യുന്നു. ലോഗ്ഔട്ടിനെത്തുടർന്ന്, മുമ്പ് കവർ ചെയ്ത SAML 2.0 ലോഗ്ഔട്ട് പ്രോസസ്സ്, ഫ്രണ്ട്എൻഡ് സ്ക്രിപ്റ്റ്, `ഫെച്ച്()` ഉപയോഗിച്ച് ബാക്കെൻഡിലേക്ക് ഒരു SLO അഭ്യർത്ഥന അയച്ചുകൊണ്ട് ആരംഭിക്കുന്നു. എസ്പി തലത്തിലെ നിഷ്ക്രിയത്വം ഉടനടി, സുരക്ഷിതമായും, പരാജയപ്പെടാതെയും പരിഹരിക്കപ്പെടുന്നുവെന്ന് ഈ സാങ്കേതികവിദ്യ ഉറപ്പാക്കുന്നു.
എപ്പോൾ SAML 2.0 ഇൻ്റഗ്രേഷൻ ഒപ്പം സെഷൻ മാനേജ്മെൻ്റ് സംയോജിപ്പിച്ചിരിക്കുന്നു, ഉപയോക്തൃ അനുഭവം തടസ്സമില്ലാത്തതും സുരക്ഷാ മാനദണ്ഡങ്ങൾ ഉയർത്തിപ്പിടിക്കുന്നതുമാണ്. നിഷ്ക്രിയ സമയത്ത് അനുവദനീയമായതിലും കൂടുതൽ സമയം ഉപയോക്താവിനെ പ്രാമാണീകരിക്കുന്നത് തടയാൻ, സെഷൻ ടൈംഔട്ട് ലോക്കൽ എസ്പി ലോഗ്ഔട്ടും ഐഡിപി ലോഗ്ഔട്ടും ആരംഭിക്കുന്നു. സെഷൻ ടൈംഔട്ടുകളുമായി ബന്ധപ്പെട്ട് SAML 2.0 ന് പ്രത്യേക പെരുമാറ്റം ആവശ്യമില്ലെങ്കിലും, SLO ആരംഭിക്കുന്നതിന് സെഷൻ കാലഹരണപ്പെടൽ ഉപയോഗിക്കുന്നത് ഒരു മികച്ച സമ്പ്രദായമായി പൊതുവെ അംഗീകരിക്കപ്പെടുന്നു. നിഷ്ക്രിയ സെഷനുകൾ അവസാനിപ്പിക്കുന്നതിലൂടെ, വിവിധ SSO- കണക്റ്റുചെയ്ത പ്ലാറ്റ്ഫോമുകളിലുടനീളം സമന്വയിപ്പിച്ച ലോഗ്ഔട്ടുകൾ പ്രവർത്തനക്ഷമമാക്കുന്നതിലൂടെ ഇത് സുരക്ഷയും ഉപയോക്തൃ അനുഭവവും തമ്മിലുള്ള സന്തുലിതാവസ്ഥ കൈവരിക്കുന്നു.
സെഷൻ ടൈംഔട്ടിനൊപ്പം SAML 2.0 സിംഗിൾ ലോഗ് ഔട്ട് കൈകാര്യം ചെയ്യാൻ Node.js, Express എന്നിവ ഉപയോഗിക്കുന്നു
Node.js, Express എന്നിവ ഉപയോഗിച്ച് സർവീസ് പ്രൊവൈഡർ സെഷൻ ടൈംഔട്ടുകൾക്കൊപ്പം SAML 2.0 SLO കൈകാര്യം ചെയ്യുന്നതിനുള്ള ബാക്കെൻഡ് രീതി. സെഷൻ കാലഹരണപ്പെട്ടോ എന്ന് പരിശോധിക്കുന്നതിനും ഐഡൻ്റിറ്റി പ്രൊവൈഡർ തലത്തിൽ SLO ആരംഭിക്കുന്നതിനും ഈ പരിഹാരം SAML അഭ്യർത്ഥനകൾ ഉപയോഗിക്കുന്നു.
// Required modules for Node.js and SAML SSO
const express = require('express');
const session = require('express-session');
const saml2 = require('saml2-js');
const app = express();
// Service Provider (SP) setup
const sp = new saml2.ServiceProvider({
entity_id: "http://myapp.com/metadata.xml",
private_key: fs.readFileSync("./cert/sp-private-key.pem").toString(),
certificate: fs.readFileSync("./cert/sp-certificate.pem").toString(),
assert_endpoint: "http://myapp.com/assert"
});
// Identity Provider (IDP) setup
const idp = new saml2.IdentityProvider({
sso_login_url: "https://login.microsoftonline.com/sso",
sso_logout_url: "https://login.microsoftonline.com/logout",
certificates: fs.readFileSync("./cert/idp-certificate.pem").toString()
});
// Session management
app.use(session({
secret: 'mySecretKey',
resave: false,
saveUninitialized: true,
cookie: { maxAge: 600000 } // Set session expiration time
}));
// Middleware to handle session timeout and SLO
app.use((req, res, next) => {
if (req.session.expires && Date.now() > req.session.expires) {
sp.create_logout_request_url(idp, {}, (err, logout_url) => {
if (err) return res.status(500).send("Logout error");
return res.redirect(logout_url); // Trigger SLO
});
} else {
next(); // Continue if session is valid
}
});
app.listen(3000, () => {
console.log("Server running on port 3000");
});
SAML 2.0 SLO കൈകാര്യം ചെയ്യാൻ JavaScript ഫ്രണ്ടെൻഡും നിഷ്ക്രിയ സമയപരിധി കണ്ടെത്തലും ഉപയോഗിക്കുന്നു
ഒരു ഫ്രണ്ട്എൻഡ് രീതിയിൽ, ഉപയോക്തൃ നിഷ്ക്രിയത്വം നിരീക്ഷിക്കുന്നതിനും സിംഗിൾ ലോഗ് ഔട്ട് (SLO) ആരംഭിക്കുന്നതിനും വാനില ജാവാസ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് ഒരു സെഷൻ ടൈംഔട്ട് കണ്ടെത്തുന്നു. ഐഡൻ്റിറ്റി പ്രൊവൈഡർക്ക് ഒരു SLO അഭ്യർത്ഥന നൽകാൻ ഇത് സേവന ദാതാവിനോട് പറയുന്നു.
// Define variables for session timeout
let timeoutDuration = 600000; // 10 minutes
let timeoutTimer;
// Reset the timer on any user interaction
function resetTimer() {
clearTimeout(timeoutTimer);
timeoutTimer = setTimeout(triggerLogout, timeoutDuration);
}
// Trigger logout function
function triggerLogout() {
alert("Session expired due to inactivity.");
window.location.href = "/logout"; // Redirect to SP logout
}
// Monitor user actions
window.onload = resetTimer;
document.onmousemove = resetTimer;
document.onkeypress = resetTimer;
// SLO event triggered after logout
function sendSLORequest() {
fetch('/api/slo', { method: 'POST' })
.then(response => {
if (response.ok) {
console.log("SLO request sent to IDP");
}
})
.catch(err => console.error("SLO request failed", err));
}
SAML 2.0 പര്യവേക്ഷണം ചെയ്യുന്നു: സിംഗിൾ ലോഗ് ഔട്ടും നിഷ്ക്രിയത്വ സമയപരിധിയും
എങ്ങനെ SAML 2.0 സിംഗിൾ ലോഗ് ഔട്ട് (SLO) വിലാസങ്ങൾ നിഷ്ക്രിയത്വം സർവീസ് പ്രൊവൈഡർ (എസ്പി) തലത്തിൽ കൈകാര്യം ചെയ്യേണ്ട ഒരു നിർണായക ഘടകമാണ്. എസ്പിയിലെ ഒരു മാനുവൽ ലോഗ്ഔട്ട് ഒരു ഐഡൻ്റിറ്റി പ്രൊവൈഡർ (ഐഡിപി) ലോഗ്ഔട്ടിനും കാരണമാകുമെന്ന് വ്യക്തമാണെങ്കിലും, നിഷ്ക്രിയത്വം മൂലമുണ്ടാകുന്ന സെഷൻ ടൈംഔട്ടുകൾ പ്രശ്നങ്ങളെ സങ്കീർണ്ണമാക്കുന്നു. സെഷൻ കാലഹരണപ്പെടുമ്പോൾ SLO എങ്ങനെ കൈകാര്യം ചെയ്യണമെന്ന് SAML 2.0 സ്റ്റാൻഡേർഡ് വ്യക്തമായി പറയുന്നില്ല. എന്നിരുന്നാലും, ഉപയോക്തൃ അനുഭവവും സുരക്ഷയും മെച്ചപ്പെടുത്താൻ കഴിയുന്ന മികച്ച രീതികൾ സ്വീകരിക്കാൻ ഇത് അനുവദിക്കുന്നു.
ഉദാഹരണത്തിന്, നിഷ്ക്രിയത്വം കാരണം SP-ൽ നിന്ന് അടച്ചുപൂട്ടിയ ശേഷവും, Microsoft Entra (IDP) വഴി MyApp പോലുള്ള ആപ്ലിക്കേഷനിലേക്ക് ലോഗിൻ ചെയ്യുന്ന ഉപയോക്താക്കൾ ഇടയ്ക്കിടെ IDP-യിൽ ലോഗിൻ ചെയ്തിരിക്കും. അതേ എസ്എസ്ഒ ഉപയോഗിക്കുന്ന മറ്റ് ആപ്പുകൾ ഇപ്പോഴും പ്രവർത്തിക്കുമ്പോൾ തങ്ങൾ പൂർണ്ണമായും ലോഗ് ഔട്ട് ചെയ്തതായി ഉപയോക്താവ് വിശ്വസിക്കുന്നുവെങ്കിൽ, ഇത് ഉയർന്നേക്കാം സുരക്ഷാ ആശങ്കകൾ. IDP ലെവലിൽ SP ടൈംഔട്ട് ഇവൻ്റിനെ അനുകരിക്കുന്നതിന് SAML സെഷൻ മാനേജ്മെൻ്റ് സജ്ജീകരിക്കുകയും സമന്വയിപ്പിച്ച ലോഗ്ഔട്ടുകൾക്ക് ഗ്യാരണ്ടി നൽകുകയും ചെയ്യുന്നത് ഈ അപകടസാധ്യത കുറയ്ക്കുന്നതിനുള്ള ഒരു മാർഗമാണ്.
ഐഡൽ ഡിറ്റക്ഷൻ ടെക്നിക്കുകളുടെ ഫ്രണ്ട്എൻഡ് കോഡ് നടപ്പിലാക്കുന്നത് മറ്റൊരു ഘടകമാണ്. ഉപയോക്തൃ പ്രവർത്തനത്തിനായി ഇവൻ്റ് ലിസണർമാരെ ഉപയോഗിച്ച് സെഷൻ കാലഹരണപ്പെടുന്നതിന് മുമ്പ് ഡെവലപ്പർമാർക്ക് നിഷ്ക്രിയത്വത്തിൻ്റെ സമയങ്ങൾ മുൻകൂട്ടി കാണാനും ഉപയോക്താക്കളെ അറിയിക്കാനും കഴിയും. ഇത് ഉപയോഗിക്കുന്നതിലൂടെ, ഉപയോക്താക്കൾക്ക് അവരുടെ സെഷനുകളിൽ നിയന്ത്രണം നിലനിർത്തുകയും അവരുടെ കാര്യം ഉറപ്പാക്കുകയും ചെയ്യാം SSO സെഷൻ തുടർച്ചയായി പ്രവർത്തിക്കുന്നില്ല. ഒരു SSO- സംയോജിത പരിതസ്ഥിതിയിൽ, ഈ ഘടകങ്ങൾക്കിടയിൽ ഒരു സന്തുലിതാവസ്ഥ ഉണ്ടാക്കിക്കൊണ്ട് ഡവലപ്പർമാർക്ക് സുരക്ഷയും ഉപയോക്തൃ സൗകര്യവും സംരക്ഷിക്കാൻ കഴിയും.
SAML 2.0 SLO, സെഷൻ ടൈംഔട്ടുകൾ എന്നിവയെക്കുറിച്ചുള്ള പൊതുവായ ചോദ്യങ്ങൾ
- ഒരു സെഷൻ സമയം കഴിയുമ്പോൾ സേവന ദാതാവിൻ്റെ തലത്തിൽ എന്താണ് സംഭവിക്കുന്നത്?
- സാധാരണയായി, SP തലത്തിൽ ഒരു സെഷൻ സമയം കഴിയുമ്പോൾ ഉപയോക്താവ് പ്രോഗ്രാമിൽ നിന്ന് ലോഗ് ഔട്ട് ചെയ്യപ്പെടും. ഇത് സിസ്റ്റം എങ്ങനെ സജ്ജീകരിച്ചിരിക്കുന്നു എന്നതിനെ ആശ്രയിച്ചിരിക്കുന്നു, എന്നിരുന്നാലും, SAML 2.0 സ്പെസിഫിന് ഇത് IDP-യിൽ ഒരു SLO കാരണമാകണമെന്നില്ല.
- ഐഡൻ്റിറ്റി പ്രൊവൈഡറിലെ ഒരു SLO ഒരു സേവന ദാതാവിൻ്റെ സെഷൻ കാലഹരണപ്പെട്ടതിനാൽ പ്രവർത്തനക്ഷമമാക്കേണ്ടതുണ്ടോ?
- സംഘടനയുടെ നയം ഇത് നിയന്ത്രിക്കുന്നു. SAML 2.0 നിർബന്ധമാക്കിയിട്ടില്ലെങ്കിലും, സുരക്ഷാ കാരണങ്ങളാൽ SP സെഷൻ അവസാനിക്കുമ്പോൾ IDP-യിൽ SLO സജ്ജമാക്കാൻ പലരും തിരഞ്ഞെടുക്കുന്നു.
- ഒരു നിഷ്ക്രിയ സെഷൻ അവസാനിക്കുമ്പോൾ, എനിക്ക് എങ്ങനെ SLO സംഭവിക്കാം?
- ഒരു ബാക്കെൻഡ് മെക്കാനിസം വഴി സെഷൻ കാലഹരണപ്പെടൽ കണ്ടെത്താനാകും, അത് ആരംഭിക്കുന്നു a create_logout_request_url() ഐഡിപിയോട് ഒരു SLO അഭ്യർത്ഥന നടത്തുന്നതിനുള്ള നടപടിക്രമം.
- മുൻവശത്തെ സെഷൻ നിഷ്ക്രിയത്വം എങ്ങനെയാണ് കണ്ടെത്തുന്നത്?
- ഇവൻ്റ് ശ്രോതാക്കൾ ഇഷ്ടപ്പെടുന്നു onmousemove ഒപ്പം onkeypress ഓരോ തവണയും ഒരു ഉപയോക്താവ് ആപ്ലിക്കേഷനുമായി ഇടപഴകുമ്പോൾ ടൈമർ പുനഃസജ്ജമാക്കുമ്പോൾ നിഷ്ക്രിയത്വം ട്രാക്ക് ചെയ്യാൻ സാധാരണയായി ഉപയോഗിക്കുന്നു.
- എസ്പിയിൽ നിന്ന് ലോഗ് ഔട്ട് ചെയ്ത ശേഷം, ഐഡിപി സെഷൻ തുറന്നിരിക്കുന്നത് സുരക്ഷിതമാണോ?
- IDP സെഷൻ തുറന്ന് വെച്ചാൽ ഒരു സുരക്ഷാ അപകടസാധ്യത ഉണ്ടായേക്കാം, പ്രത്യേകിച്ചും അവർ പൂർണ്ണമായും പരിശോധിച്ചുവെന്ന് ഉപയോക്താവ് വിശ്വസിക്കുന്നുവെങ്കിൽ. SP സെഷൻ കാലഹരണപ്പെടുന്നതിന് SLO സജ്ജീകരിക്കാൻ നിർദ്ദേശിക്കുന്നു.
SAML 2.0 സെഷൻ ടൈംഔട്ട് മാനേജ്മെൻ്റ് പൊതിയുന്നു
ഒരു എസ്എസ്ഒ സിസ്റ്റത്തിൽ സുരക്ഷ നിലനിർത്തുന്നതിന്, ഐഡൻ്റിറ്റി പ്രൊവൈഡറും സേവന ദാതാവും അവരുടെ ലോഗ്ഔട്ട് പ്രക്രിയകൾ സമന്വയിപ്പിക്കുന്നുവെന്ന് ഉറപ്പാക്കേണ്ടതുണ്ട്. സെഷൻ ടൈംഔട്ടുകൾ എങ്ങനെ കൈകാര്യം ചെയ്യണമെന്ന് SAML 2.0 നിർബന്ധമാക്കിയിട്ടില്ലെങ്കിലും, പല ബിസിനസുകളും ഏകീകൃതമായ രീതിയിൽ സിംഗിൾ ലോഗ്ഔട്ടുകൾ കൈകാര്യം ചെയ്യുന്നു.
സുരക്ഷ മെച്ചപ്പെടുത്തുന്നതിനായി, നിഷ്ക്രിയമായതിനാൽ സേവന ദാതാവിൻ്റെ സെഷൻ അവസാനിക്കുമ്പോഴെല്ലാം ഒരു SLO അഭ്യർത്ഥന അയയ്ക്കാൻ നിർദ്ദേശിക്കുന്നു. പല പ്ലാറ്റ്ഫോമുകളിലും അനാവശ്യമായ ആക്സസ് ഒഴിവാക്കിക്കൊണ്ട്, ഐഡൻ്റിറ്റി പ്രൊവൈഡറിൽ നിന്നും ആപ്ലിക്കേഷനിൽ നിന്നും ഉപയോക്താവ് ലോഗ് ഔട്ട് ചെയ്തുവെന്ന് ഇത് ഉറപ്പാക്കുന്നു.
SAML 2.0 മികച്ച സമ്പ്രദായങ്ങൾക്കുള്ള റഫറൻസുകളും ഉറവിടങ്ങളും
- SAML 2.0, സിംഗിൾ ലോഗ് ഔട്ട് മാനദണ്ഡങ്ങളും മാർഗ്ഗനിർദ്ദേശങ്ങളും സംബന്ധിച്ച വിശദമായ ഡോക്യുമെൻ്റേഷൻ ഔദ്യോഗികത്തിൽ കാണാം OASIS SAML 2.0 കോർ സ്പെസിഫിക്കേഷൻ .
- മൈക്രോസോഫ്റ്റ് എൻട്രയെ കുറിച്ചുള്ള സ്ഥിതിവിവരക്കണക്കുകൾക്കും SSO, SLO എന്നിവയുമായുള്ള അതിൻ്റെ സംയോജനത്തിനും, ഔദ്യോഗിക Microsoft ഡോക്യുമെൻ്റേഷൻ കാണുക അസൂർ ആക്ടീവ് ഡയറക്ടറിയും SAML .
- ഉദാഹരണങ്ങളിൽ ഉപയോഗിച്ചിരിക്കുന്ന Node.js SAML ലൈബ്രറി, സെഷൻ മാനേജ്മെൻ്റ് ടെക്നിക്കുകൾ എന്നിവയിൽ കൂടുതൽ പര്യവേക്ഷണം ചെയ്യാവുന്നതാണ് SAML2-js ലൈബ്രറി ഡോക്യുമെൻ്റേഷൻ .
- സിംഗിൾ സൈൻ-ഓണും സെഷൻ മാനേജ്മെൻ്റും കോൺഫിഗർ ചെയ്യുന്നതിലെ മികച്ച രീതികൾ മനസിലാക്കാൻ, എന്നതിലെ ലേഖനം സന്ദർശിക്കുക SSO മികച്ച രീതികൾ Auth0 പ്രകാരം.