$lang['tuto'] = "ट्यूटोरियल"; ?>$lang['tuto'] = "ट्यूटोरियल"; ?>$lang['tuto'] = "ट्यूटोरियल"; ?> SAML 2.0 सिंगल लॉग आउट सेवा

SAML 2.0 सिंगल लॉग आउट सेवा प्रदात्याच्या निष्क्रियतेनंतर सर्वोत्तम पद्धती

SAML

सत्र कालबाह्य झाल्यानंतर SAML 2.0 सिंगल लॉग आउट समजून घेणे

कारण SAML 2.0 सिंगल साइन-ऑन (SSO) सिस्टीम वापरकर्त्यांना क्रेडेन्शियल्सचा एकच संच वापरून विविध ऍप्लिकेशन्समध्ये साइन इन करण्याची परवानगी देतात, त्यांच्याकडे वापरकर्ता प्रमाणीकरण बऱ्यापैकी सरलीकृत आहे. परंतु सिंगल लॉग आउट (SLO) कल्पनेमध्ये देखील महत्त्वपूर्ण समस्या आहेत, विशेषत: जेव्हा वापरकर्त्याचे सत्र सेवा प्रदात्यावर (SP) कालबाह्य होते तेव्हा काय होते कारण त्यांनी लॉग इन केले नाही. या प्रकरणात, ओळख प्रदाता (IDP) सत्र तसेच समाप्त?

SAML 2.0 च्या संदर्भात सुरक्षित आणि कार्यक्षम प्रवेश सुनिश्चित करण्यासाठी SP आणि IDP दरम्यान सत्र व्यवस्थापन आवश्यक आहे. वापरकर्ता अद्याप IDP शी कनेक्ट केलेला असला पाहिजे तर SP सत्र केव्हा संपेल हे नेहमीच स्पष्ट नसते, ज्याचा त्याच IDP शी लिंक असलेल्या इतर ॲप्सवर परिणाम होऊ शकतो. यामुळे उपयोगिता तसेच सुरक्षिततेबाबत प्रश्न निर्माण होतात.

हे सत्र कालबाह्य हाताळण्यासाठी एक स्पष्ट सर्वोत्तम सराव अनेक व्यवसायांनी स्थापित करणे आवश्यक आहे, विशेषतः जे Microsoft Entra सारखे इंटरफेस वापरतात. SP चे सत्र फक्त SP स्तरावर थांबणे चांगले आहे का, किंवा त्याचा परिणाम SLO मध्ये देखील व्हायला हवा जो वापरकर्त्याला त्यांच्या IDP खात्यातून लॉग आउट करतो?

सत्र कालबाह्य हाताळण्यासाठी आणि सुरक्षितता आणि उपयोगिता या दोन्हीची हमी देण्यासाठी सर्वात कार्यक्षम तंत्रे स्पष्ट करण्यासाठी वास्तविक-जगातील उदाहरणे वापरून, हा पेपर अशा परिस्थितीत SAML 2.0 SLO इव्हेंट हाताळण्यासाठी मानक पद्धती आणि मानकांचे परीक्षण करतो.

आज्ञा वापराचे उदाहरण
session() वापरकर्ता सत्र नियंत्रित करण्यासाठी एक्सप्रेस ऍप्लिकेशनमध्ये वापरले. उदाहरणामध्ये, ते वापरकर्ता क्रियाकलाप आणि सत्र कालबाह्यांचे निरीक्षण करण्यात मदत करते जेणेकरून जेव्हा गरज असेल तेव्हा लॉगआउट लॉजिक ट्रिगर केले जाऊ शकते.
maxAge सत्र कुकी वैध असल्याची वेळ फ्रेम निर्दिष्ट करते. या उदाहरणात, टाइमर 600000 मिलीसेकंद किंवा 10 मिनिटांनंतर कालबाह्य होईल आणि लॉगआउट इव्हेंट सुरू करेल.
create_logout_request_url() जेव्हा सेवा प्रदाता सत्र समाप्त होते, तेव्हा या SAML2 लायब्ररी पद्धतीने तयार केलेली सिंगल लॉग आउट (SLO) विनंती URL आयडेंटिटी प्रोव्हायडर (IDP) कडे पाठवली जाते.
readFileSync() मुख्य फाइल्स आणि प्रमाणपत्रे समकालिकपणे वाचते, जे SAML2 सेवा प्रदाता सेट करण्यासाठी आवश्यक आहे. सेवा प्रदाता आणि ओळख प्रदाता सुरक्षितपणे संवाद साधण्यासाठी, ही प्रमाणपत्रे आवश्यक आहेत.
assert_endpoint URL सूचित करते की, यशस्वी प्रमाणीकरणानंतर, ओळख प्रदाता SAML प्रतिपादन प्रसारित करण्यासाठी वापरेल. असे केल्याने, वापरकर्ता प्रमाणीकरणाच्या सेवा प्रदाता स्तराची हमी दिली जाते.
window.onload हा कार्यक्रम फ्रंटएंडमधील सत्र निष्क्रियता टाइमर रीसेट करण्यासाठी वापरला जातो. हे सुनिश्चित करते की जेव्हा वापरकर्ता प्रथमच प्रोग्राम लोड करतो, तेव्हा टाइमर पुन्हा सुरू होतो.
onmousemove सत्र टाइमर रीसेट करण्यासाठी, हा इव्हेंट श्रोता माउसची कोणतीही हालचाल ओळखतो. वापरकर्त्याच्या वर्तनावर लक्ष ठेवण्यासाठी आणि अपघाती सत्र कालबाह्य टाळण्यासाठी हे आवश्यक आहे.
fetch() सत्र कालबाह्य झाल्यानंतर, सर्व्हरला असिंक्रोनसपणे SLO विनंती पाठवण्यासाठी वापरले जाते. आयडेंटिटी प्रोव्हायडरशी कनेक्ट होण्यासाठी आणि वापरकर्त्याला IDP मधून लॉग आउट करण्यासाठी, ते बॅकएंड लॉजिक सेट करते.
setTimeout() फ्रंटएंड कोडमधील हे फंक्शन पूर्वनिर्धारित निष्क्रियतेनंतर सत्र कालबाह्य घटना घडवून आणते. वापरकर्त्याच्या वर्तनावर लक्ष ठेवण्यासाठी आणि सुरक्षा नियमांची अंमलबजावणी करण्यासाठी हे आवश्यक आहे.

SAML 2.0 सत्र कालबाह्य हाताळणीसह सिंगल लॉग आउट ऑप्टिमाइझ करणे

वापरत आहे आणि एक्सप्रेस, सिंगल लॉग आउट (SLO) हाताळण्यासाठी बॅकएंड स्क्रिप्ट वापरकर्ता सत्र कालबाह्यतेचा मागोवा घेण्याच्या क्षमतेवर लक्ष केंद्रित करते आणि सेवा प्रदाता (SP) आणि आयडेंटिटी प्रोव्हायडर (IDP) स्तरांवर लॉगआउट क्रम सुरू करते. एक्सप्रेस सत्रांचे व्यवस्थापन या तर्काच्या केंद्रस्थानी आहे. आम्ही आमच्या उदाहरणात, पूर्वनिर्धारित निष्क्रियतेच्या दहा मिनिटांनंतर सत्र समाप्त करण्यासाठी सेट करून ट्रिगर पॉइंट स्थापित करतो. सत्र संपल्यावर, SAML 2.0 लॉगआउट विनंती सुरू करण्यासाठी स्क्रिप्ट `create_logout_request_url()} पद्धत वापरते, जी नंतर IDP शी कनेक्ट होते (या प्रकरणात, ) वापरकर्ता सत्र पूर्णपणे समाप्त करण्यासाठी. हे वापरकर्त्याने सिस्टममधून पूर्णपणे लॉग आउट केले असल्याची हमी देऊन सुरक्षा वाढवते.

आम्ही लोड करतो आणि SP (MyApp) आणि IDP (Microsoft Entra) मधील सुरक्षित संवाद सक्षम करण्यासाठी `readFileSync()} कमांड वापरून ऍप्लिकेशनमध्ये की. लॉगआउट विनंतीचे प्रमाणीकरण करून, ही प्रमाणपत्रे बेकायदेशीर लॉगआउटपासून संरक्षण करतात आणि हमी देतात की संप्रेषण कूटबद्ध आणि पुष्टी केले जाते. व्युत्पन्न झाल्यानंतर वापरकर्त्याला लॉगआउट विनंती URL वर पाठवले जाते, जेथे IDP लॉगआउट हाताळते आणि आवश्यक असल्यास, कोणत्याही संबंधित अनुप्रयोगांवर वापरकर्त्याचे सत्र समाप्त करते. मल्टी-ऍप्लिकेशन सिंगल साइन-ऑन (SSO) इंस्टॉलेशन्सची सुरक्षा आणि अखंडता राखण्यासाठी या द्वि-मार्गी संप्रेषणाची आवश्यकता आहे.

जावास्क्रिप्ट स्क्रिप्ट फ्रंट एंडवर रिअल टाइममध्ये वापरकर्त्याच्या क्रियाकलापांचा मागोवा घेण्यासाठी आवश्यक आहे. प्रत्येक वेळी वापरकर्ता प्रोग्रामशी संवाद साधतो, आम्ही `onmousemove} आणि `onkeypress` सारखे इव्हेंट श्रोते वापरून सत्र कालबाह्य रीसेट करतो. `setTimeout()` सह सेट केलेला टायमर वापरकर्त्याला सतर्क करतो आणि वापरकर्ता निष्क्रिय झाल्यावर SP (MyApp) मधून आपोआप लॉग आउट करतो. लॉगआउट केल्यानंतर, पूर्वी कव्हर केलेली SAML 2.0 लॉगआउट प्रक्रिया फ्रंटएंड स्क्रिप्टने `fetch()` वापरून बॅकएंडला SLO विनंती पाठवून सुरू केली आहे. हे तंत्र हे सुनिश्चित करते की SP स्तरावरील निष्क्रियतेला त्वरित, सुरक्षितपणे आणि अयशस्वीपणे संबोधित केले जाते.

जेव्हा SAML 2.0 एकत्रीकरण आणि एकत्रित केले आहेत, वापरकर्ता अनुभव अखंड आहे आणि सुरक्षा मानके कायम आहेत. निष्क्रियतेदरम्यान वापरकर्त्याला परवानगीपेक्षा जास्त काळ प्रमाणीकृत राहण्यापासून रोखण्यासाठी, सत्र कालबाह्य स्थानिक SP लॉगआउट आणि IDP लॉगआउट दोन्ही सुरू करते. जरी SAML 2.0 ला सत्र कालबाह्यतेच्या संदर्भात कोणत्याही विशिष्ट आचरणाची आवश्यकता नसली तरी, SLO सुरू करण्यासाठी सत्र समाप्ती वापरणे हे सामान्यतः सर्वोत्तम सराव म्हणून स्वीकारले जाते. निष्क्रिय सत्रे संपवून, विविध SSO-कनेक्ट केलेल्या प्लॅटफॉर्मवर सिंक्रोनाइझ केलेले लॉगआउट सक्षम करून ते सुरक्षा आणि वापरकर्ता अनुभव यांच्यातील संतुलन साधते.

सत्र कालबाह्य सह SAML 2.0 एकल लॉग आउट हाताळण्यासाठी Node.js आणि एक्सप्रेस वापरणे

Node.js आणि Express चा वापर करून सेवा प्रदाता सत्र कालबाह्यांसह SAML 2.0 SLO व्यवस्थापित करण्यासाठी बॅकएंड पद्धत. हे समाधान सत्र कालबाह्य झाले आहे की नाही हे तपासण्यासाठी SAML विनंत्या वापरते आणि ओळख प्रदाता स्तरावर SLO सुरू करते.

// 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) सुरू करण्यासाठी व्हॅनिला JavaScript वापरून सत्र कालबाह्य शोधले जाते. हे सेवा प्रदात्याला ओळख प्रदात्याला SLO विनंती जारी करण्यास सांगते.

SAML 2.0 एक्सप्लोर करत आहे: सिंगल लॉग आउट आणि निष्क्रियता कालबाह्य

SAML 2.0 सिंगल लॉग आउट (SLO) कसे संबोधित करते सेवा प्रदाता (SP) स्तरावर व्यवस्थापित करण्यासाठी एक महत्त्वपूर्ण घटक आहे. जरी हे स्पष्ट आहे की SP मधील मॅन्युअल लॉगआउटमुळे आयडेंटिटी प्रोव्हायडर (IDP) लॉगआउट देखील झाले पाहिजे, परंतु निष्क्रियतेमुळे होणारे सत्र कालबाह्य प्रकरणे गुंतागुंतीचे करतात. SAML 2.0 मानक हे स्पष्टपणे सांगत नाही की सत्र कालबाह्य झाल्यावर SLO कसे हाताळले जावे. तथापि, हे वापरकर्त्याचा अनुभव आणि सुरक्षितता सुधारू शकणाऱ्या सर्वोत्तम पद्धतींचा अवलंब करण्यास अनुमती देते.

उदाहरणार्थ, निष्क्रियतेमुळे SP मधून बंद झाल्यानंतरही, Microsoft Entra (IDP) द्वारे MyApp सारख्या ऍप्लिकेशनमध्ये लॉग इन करणारे वापरकर्ते वारंवार IDP मध्ये लॉग इन केलेले राहतात. समान SSO वापरणारे इतर ॲप्स चालू असताना ते पूर्णपणे लॉग आउट झाले आहेत असे वापरकर्त्याला वाटत असल्यास, हे वाढू शकते . IDP स्तरावर SP टाइमआउट इव्हेंटची नक्कल करण्यासाठी SAML सत्र व्यवस्थापन सेट करणे आणि सिंक्रोनाइझ लॉगआउटची हमी देणे हा धोका कमी करण्याचा एक मार्ग आहे.

निष्क्रिय शोध तंत्राची फ्रंटएंड कोडची अंमलबजावणी हा आणखी एक घटक आहे. डेव्हलपर वापरकर्त्याच्या क्रियाकलापांसाठी इव्हेंट श्रोते वापरून सत्र कालबाह्य होण्यापूर्वी निष्क्रियतेच्या वेळेचा अंदाज लावू शकतात आणि वापरकर्त्यांना सतर्क करू शकतात. याचा वापर करून, वापरकर्ते त्यांच्या सत्रांवर नियंत्रण ठेवू शकतात आणि त्यांची खात्री करू शकतात सतत चालत नाही. SSO-एकात्मिक वातावरणात, विकासक या घटकांमधील समतोल साधून सुरक्षा आणि वापरकर्ता सोई जतन करू शकतात.

  1. जेव्हा सत्र संपते तेव्हा सेवा प्रदाता स्तरावर काय होते?
  2. सहसा, जेव्हा SP स्तरावर सत्राची वेळ संपते तेव्हा वापरकर्ता प्रोग्राममधून लॉग आउट होतो. हे सिस्टम कसे सेट केले जाते यावर अवलंबून आहे, तथापि, SAML 2.0 स्पेकसाठी IDP वर SLO कारणीभूत असणे आवश्यक नाही.
  3. सेवा प्रदाता सत्र कालबाह्य झाल्यामुळे ओळख प्रदात्यावरील SLO ट्रिगर केले जावे?
  4. संस्थेचे धोरण हे नियंत्रित करते. SAML 2.0 हे अनिवार्य करत नसले तरी, सुरक्षेच्या कारणास्तव SP सत्र संपल्यावर अनेकजण IDP वर SLO सेट करणे निवडतात.
  5. जेव्हा निष्क्रिय सत्र संपेल, तेव्हा मी SLO कसे घडवू शकतो?
  6. सत्र कालबाह्यता बॅकएंड यंत्रणेद्वारे शोधली जाऊ शकते, जी नंतर ए IDP ला SLO विनंती करण्याची प्रक्रिया.
  7. फ्रंटएंडवर सत्र निष्क्रियता कशी शोधली जाते?
  8. कार्यक्रम श्रोत्यांना आवडला आणि सामान्यतः निष्क्रियतेचा मागोवा घेण्यासाठी वापरला जातो कारण प्रत्येक वेळी वापरकर्ता अनुप्रयोगाशी संवाद साधतो तेव्हा ते टाइमर रीसेट करतात.
  9. SP मधून लॉग आउट केल्यानंतर, IDP सत्र उघडणे सुरक्षित आहे का?
  10. IDP सत्र उघडे ठेवल्याने सुरक्षितता जोखीम उद्भवू शकते, विशेषतः जर वापरकर्त्याला विश्वास असेल की त्यांनी पूर्णपणे चेक आउट केले आहे. SP सत्र कालबाह्यतेची प्रतिकृती तयार करण्यासाठी SLO सेट करण्याचा सल्ला दिला जातो.

SSO प्रणालीमध्ये सुरक्षा राखण्यासाठी ओळख प्रदाता आणि सेवा प्रदाता त्यांच्या लॉगआउट प्रक्रिया समक्रमित करतात याची खात्री करणे आवश्यक आहे. जरी SAML 2.0 हे सेशन टाइमआउट कसे हाताळले जावे हे अनिवार्य करत नसले तरीही, बरेच व्यवसाय एकच लॉगआउट एकसमान पद्धतीने हाताळतात.

सुरक्षा सुधारण्यासाठी निष्क्रियतेमुळे सेवा प्रदाता सत्र संपल्यावर प्रत्येक वेळी SLO विनंती पाठवण्याचा सल्ला दिला जातो. हे सुनिश्चित करते की वापरकर्त्याने अनेक प्लॅटफॉर्मवर अवांछित प्रवेश टाळून ओळख प्रदाता तसेच अनुप्रयोगातून लॉग आउट केले आहे.

  1. SAML 2.0 आणि सिंगल लॉग आउट मानके आणि मार्गदर्शक तत्त्वांवरील तपशीलवार दस्तऐवज अधिकृत मध्ये आढळू शकतात OASIS SAML 2.0 कोर तपशील .
  2. मायक्रोसॉफ्ट एन्ट्रा आणि एसएसओ आणि एसएलओ सह त्याचे एकत्रीकरण मधील अंतर्दृष्टीसाठी, अधिकृत मायक्रोसॉफ्ट दस्तऐवजीकरण पहा Azure Active Directory आणि SAML .
  3. सत्र व्यवस्थापन तंत्रांसह उदाहरणांमध्ये वापरलेली Node.js SAML लायब्ररी येथे अधिक एक्सप्लोर केली जाऊ शकते. SAML2-js लायब्ररी दस्तऐवजीकरण .
  4. सिंगल साइन-ऑन आणि सत्र व्यवस्थापन कॉन्फिगर करण्याच्या सर्वोत्तम पद्धती समजून घेण्यासाठी, वरील लेखाला भेट द्या SSO सर्वोत्तम पद्धती Auth0 द्वारे.