SAML 2.0 ஐப் புரிந்துகொள்வது அமர்வு நேரம் முடிந்த பிறகு ஒற்றை வெளியேறுதல்
SAML 2.0 Single Sign-On (SSO) அமைப்புகள் பயனர்களை ஒரு தனிச் சான்றுகளைப் பயன்படுத்தி பல்வேறு பயன்பாடுகளில் உள்நுழைய அனுமதிப்பதால், அவை பயனர் அங்கீகாரத்தை கணிசமாக எளிதாக்கியுள்ளன. ஆனால் சிங்கிள் லாக் அவுட் (SLO) கருத்தில் குறிப்பிடத்தக்க சிக்கல்கள் உள்ளன, குறிப்பாக ஒரு சேவை வழங்குநரின் (SP) இல் ஒரு பயனரின் அமர்வு காலாவதியாகும் போது அவர்கள் உள்நுழையவில்லை. இந்த விஷயத்தில், அடையாள வழங்குநர் (IDP) அமர்வு அத்துடன் முடிவடைகிறதா?
SAML 2.0 இன் சூழலில் பாதுகாப்பான மற்றும் திறமையான அணுகலை உறுதி செய்வதற்கு SP மற்றும் IDP இடையே அமர்வு மேலாண்மை அவசியம். பயனர் IDP உடன் இணைக்கப்பட்டிருக்க வேண்டும் என்றால், SP அமர்வு எப்போது முடிவடைகிறது என்பது எப்போதும் தெளிவாகத் தெரியவில்லை, அதே IDP உடன் இணைக்கப்பட்டுள்ள பிற பயன்பாடுகளில் இது தாக்கத்தை ஏற்படுத்தக்கூடும். இது பயன்பாடு மற்றும் பாதுகாப்பு பற்றிய கேள்விகளை எழுப்புகிறது.
இந்த அமர்வு காலக்கெடுவைக் கையாள்வதற்கான தெளிவான சிறந்த நடைமுறை பல வணிகங்களால் நிறுவப்பட வேண்டும், குறிப்பாக மைக்ரோசாஃப்ட் என்ட்ரா போன்ற இடைமுகங்களைப் பயன்படுத்தும். SPயின் அமர்வு SP மட்டத்தில் நின்றுவிடுவது சிறந்ததா அல்லது பயனரை அவர்களின் IDP கணக்கிலிருந்து வெளியேற்றும் SLO வருமா?
நிஜ-உலக உதாரணங்களைப் பயன்படுத்தி, அமர்வு காலக்கெடுவைக் கையாள்வதற்கான மிகச் சிறந்த நுட்பங்களை விளக்கி, பாதுகாப்பு மற்றும் பயன்பாட்டினை இரண்டிற்கும் உத்தரவாதம் அளிக்கிறது, இது போன்ற சூழ்நிலைகளில் 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 அமர்வு காலக்கெடு கையாளுதலுடன் ஒற்றை வெளியேறுதலை மேம்படுத்துதல்
பயன்படுத்தி மற்றும் எக்ஸ்பிரஸ், சிங்கிள் லாக் அவுட்டை (SLO) கையாள்வதற்கான பின்தள ஸ்கிரிப்ட் பயனர் அமர்வு காலாவதியைக் கண்காணிக்கும் திறனை மையமாகக் கொண்டுள்ளது மற்றும் சேவை வழங்குநர் (SP) மற்றும் அடையாள வழங்குநர் (IDP) நிலைகளில் வெளியேறும் வரிசையைத் தொடங்கும். எக்ஸ்பிரஸ் அமர்வுகளின் மேலாண்மை இந்த காரணத்தின் மையத்தில் உள்ளது. முன்னரே தீர்மானிக்கப்பட்ட செயலற்ற நிலைக்குப் பிறகு அமர்வை முடிக்கும்படி அமைப்பதன் மூலம் ஒரு தூண்டுதல் புள்ளியை நிறுவுகிறோம் - எங்கள் எடுத்துக்காட்டில், பத்து நிமிடங்கள். அமர்வு முடிந்ததும், SAML 2.0 வெளியேறுதல் கோரிக்கையைத் தொடங்க ஸ்கிரிப்ட் `create_logout_request_url()} முறையைப் பயன்படுத்துகிறது, அது IDP உடன் இணைக்கப்படும் (இந்த நிலையில், ) பயனர் அமர்வை முழுவதுமாக முடிக்க. பயனர் கணினியிலிருந்து முற்றிலும் வெளியேறிவிட்டார் என்பதை உறுதி செய்வதன் மூலம் இது பாதுகாப்பை மேம்படுத்துகிறது.
நாங்கள் ஏற்றுகிறோம் SP (MyApp) மற்றும் IDP (Microsoft Entra) ஆகியவற்றுக்கு இடையே பாதுகாப்பான தொடர்பை செயல்படுத்த `readFileSync()} கட்டளையைப் பயன்படுத்தி பயன்பாட்டில் உள்ள விசைகள். வெளியேறுதல் கோரிக்கையை அங்கீகரிப்பதன் மூலம், இந்தச் சான்றிதழ்கள் சட்டவிரோத வெளியேறுதல்களுக்கு எதிராகப் பாதுகாக்கின்றன மற்றும் தகவல்தொடர்பு குறியாக்கம் செய்யப்பட்டு உறுதிப்படுத்தப்பட்டதாக இருக்கும் என்பதற்கு உத்தரவாதம் அளிக்கிறது. பயனர் வெளியேறும் கோரிக்கை URL உருவாக்கப்பட்ட பிறகு, IDP வெளியேறுதலைக் கையாளும் மற்றும் தேவைப்பட்டால், தொடர்புடைய பயன்பாடுகள் முழுவதும் பயனரின் அமர்வை முடிக்கும். மல்டி-அப்ளிகேஷன் சிங்கிள் சைன்-ஆன் (எஸ்எஸ்ஓ) நிறுவல்களின் பாதுகாப்பையும் ஒருமைப்பாட்டையும் பராமரிக்க இந்த இருவழித் தொடர்பு தேவைப்படுகிறது.
ஜாவாஸ்கிரிப்ட் ஸ்கிரிப்ட் முன் இறுதியில் பயனர் செயல்பாடுகளை உண்மையான நேரத்தில் கண்காணிப்பதற்கு அவசியம். ஒவ்வொரு முறையும் பயனர் நிரலுடன் தொடர்பு கொள்ளும்போது, `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 மற்றும் Expressஐப் பயன்படுத்துதல் அமர்வு நேரம் முடிந்தவுடன் ஒற்றை வெளியேறுதல்
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 Frontend மற்றும் Idle Timeout கண்டறிதலைப் பயன்படுத்துதல்
ஒரு முன்வரிசை முறையில், பயனர் செயலிழப்பைக் கண்காணிக்க மற்றும் ஒற்றை வெளியேறுதலை (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) முகவரிகள் எப்படி சேவை வழங்குநர் (SP) மட்டத்தில் நிர்வகிக்க ஒரு முக்கிய அங்கமாகும். SP இல் கைமுறையாக வெளியேறுவது ஒரு அடையாள வழங்குநர் (IDP) வெளியேற்றத்தையும் ஏற்படுத்த வேண்டும் என்பது வெளிப்படையாகத் தெரிந்தாலும், செயலற்ற தன்மையால் ஏற்படும் அமர்வு நேரமுடிவுகள் விஷயங்களை சிக்கலாக்குகின்றன. SAML 2.0 தரநிலையானது அமர்வு காலாவதியாகும் போது SLO எவ்வாறு கையாளப்பட வேண்டும் என்பதை தெளிவாகக் குறிப்பிடவில்லை. இருப்பினும், பயனர் அனுபவத்தையும் பாதுகாப்பையும் மேம்படுத்தக்கூடிய சிறந்த நடைமுறைகளைப் பின்பற்றுவதற்கு இது அனுமதிக்கிறது.
எடுத்துக்காட்டாக, செயலற்ற தன்மையின் காரணமாக SP இல் இருந்து மூடப்பட்ட பிறகும், மைக்ரோசாஃப்ட் என்ட்ரா (IDP) மூலம் MyApp போன்ற பயன்பாட்டில் உள்நுழையும் பயனர்கள் அடிக்கடி IDP இல் உள்நுழைந்திருப்பார்கள். அதே எஸ்எஸ்ஓவைப் பயன்படுத்தும் பிற பயன்பாடுகள் இயங்கும்போது, தாங்கள் முழுமையாக வெளியேறிவிட்டதாக பயனர் நம்பினால், இது அதிகரிக்கலாம் . IDP அளவில் SP காலக்கெடு நிகழ்வைப் பிரதிபலிக்கும் வகையில் SAML அமர்வு நிர்வாகத்தை அமைப்பது மற்றும் ஒத்திசைக்கப்பட்ட வெளியேறுதல்களுக்கு உத்தரவாதம் அளிப்பது இந்த அபாயத்தைக் குறைப்பதற்கான ஒரு வழியாகும்.
செயலற்ற கண்டறிதல் நுட்பங்களை முன்னோடி குறியீடு செயல்படுத்துவது மற்றொரு காரணியாகும். டெவலப்பர்கள் செயலற்ற நேரங்களை எதிர்பார்க்கலாம் மற்றும் அமர்வு காலாவதியாகும் முன் பயனர்களின் செயல்பாடுகளுக்கு நிகழ்வு கேட்பவர்களைப் பயன்படுத்துவதன் மூலம் பயனர்களை எச்சரிக்கலாம். இதைப் பயன்படுத்துவதன் மூலம், பயனர்கள் தங்கள் அமர்வுகளின் மீது கட்டுப்பாட்டை வைத்திருக்கலாம் மற்றும் அவர்களது என்பதை உறுதிப்படுத்திக் கொள்ளலாம் தொடர்ந்து இயங்காது. ஒரு SSO-ஒருங்கிணைந்த சூழலில், டெவலப்பர்கள் இந்தக் காரணிகளுக்கு இடையே சமநிலையை ஏற்படுத்துவதன் மூலம் பாதுகாப்பு மற்றும் பயனர் வசதியைப் பாதுகாக்க முடியும்.
- ஒரு அமர்வு நேரம் முடிவடையும் போது சேவை வழங்குநர் மட்டத்தில் என்ன நடக்கும்?
- வழக்கமாக, SP மட்டத்தில் ஒரு அமர்வு நேரம் முடிவடையும் போது பயனர் நிரலிலிருந்து வெளியேறுவார். இது SAML 2.0 விவரக்குறிப்புக்கு IDP இல் SLO ஏற்படுத்த வேண்டிய அவசியமில்லை என்பதால், கணினி எவ்வாறு அமைக்கப்படுகிறது என்பதைப் பொறுத்தது.
- சேவை வழங்குநரின் அமர்வு நேரம் முடிவதால் அடையாள வழங்குநரின் SLO தூண்டப்பட வேண்டுமா?
- அமைப்பின் கொள்கை இதை நிர்வகிக்கிறது. SAML 2.0 அதை கட்டாயப்படுத்தவில்லை என்றாலும், பாதுகாப்பு காரணங்களுக்காக SP அமர்வு முடிவடையும் போது IDP இல் SLO ஐ அமைக்க பலர் தேர்வு செய்கிறார்கள்.
- ஒரு செயலற்ற அமர்வு முடிவடையும் போது, நான் எப்படி SLO ஐ உருவாக்குவது?
- அமர்வு காலாவதியானது பின்தளப் பொறிமுறையின் மூலம் கண்டறியப்படலாம், பின்னர் அது தொடங்கும் a IDP க்கு SLO கோரிக்கையை வைப்பதற்கான நடைமுறை.
- முன்பகுதியில் அமர்வு செயலற்ற தன்மை எவ்வாறு கண்டறியப்படுகிறது?
- என நிகழ்வு கேட்போர் விரும்புகின்றனர் மற்றும் ஒவ்வொரு முறையும் ஒரு பயனர் பயன்பாட்டுடன் தொடர்பு கொள்ளும்போது டைமரை மீட்டமைக்கும்போது செயலற்ற தன்மையைக் கண்காணிக்க பொதுவாகப் பயன்படுத்தப்படுகின்றன.
- எஸ்பியிலிருந்து வெளியேறிய பிறகு, IDP அமர்வைத் திறப்பது பாதுகாப்பானதா?
- IDP அமர்வைத் திறந்து வைப்பதால் பாதுகாப்பு ஆபத்து ஏற்படலாம், குறிப்பாக பயனர் தாங்கள் முழுமையாகச் சரிபார்த்ததாக நம்பினால். SP அமர்வு காலாவதியை பிரதிபலிக்கும் வகையில் SLO ஐ அமைப்பது அறிவுறுத்தப்படுகிறது.
ஒரு SSO அமைப்பில் பாதுகாப்பை பராமரிக்க, அடையாள வழங்குநர் மற்றும் சேவை வழங்குநர் தங்கள் வெளியேறும் செயல்முறைகளை ஒத்திசைக்கிறார்களா என்பதை உறுதிப்படுத்த வேண்டும். SAML 2.0 அமர்வு காலக்கெடுவை எவ்வாறு கையாள வேண்டும் என்பதைக் கட்டாயப்படுத்தவில்லை என்றாலும், பல வணிகங்கள் ஒரே மாதிரியான முறையில் ஒற்றை வெளியேறுதல்களைக் கையாளுகின்றன.
பாதுகாப்பை மேம்படுத்த, செயலற்ற தன்மையின் காரணமாக, சேவை வழங்குநர் அமர்வு முடிவடையும் ஒவ்வொரு முறையும் SLO கோரிக்கையை அனுப்ப அறிவுறுத்தப்படுகிறது. பல தளங்களில் தேவையற்ற அணுகலைத் தவிர்த்து, அடையாள வழங்குநர் மற்றும் பயன்பாட்டிலிருந்து பயனர் வெளியேறியதை இது உறுதி செய்கிறது.
- SAML 2.0 மற்றும் சிங்கிள் லாக் அவுட் தரநிலைகள் மற்றும் வழிகாட்டுதல்கள் பற்றிய விரிவான ஆவணங்களை அதிகாரப்பூர்வத்தில் காணலாம் OASIS SAML 2.0 முக்கிய விவரக்குறிப்பு .
- மைக்ரோசாஃப்ட் என்ட்ரா மற்றும் SSO மற்றும் SLO உடன் அதன் ஒருங்கிணைப்பு பற்றிய நுண்ணறிவுகளுக்கு, அதிகாரப்பூர்வ Microsoft ஆவணத்தைப் பார்க்கவும் Azure Active Directory மற்றும் SAML .
- எடுத்துக்காட்டுகளில் பயன்படுத்தப்படும் Node.js SAML நூலகம், அமர்வு மேலாண்மை நுட்பங்களுடன், மேலும் இங்கு ஆராயலாம் SAML2-js நூலக ஆவணம் .
- ஒற்றை உள்நுழைவு மற்றும் அமர்வு நிர்வாகத்தை உள்ளமைப்பதில் சிறந்த நடைமுறைகளைப் புரிந்து கொள்ள, கட்டுரையைப் பார்வையிடவும் SSO சிறந்த நடைமுறைகள் Auth0 மூலம்.