ಸೆಷನ್ ಅವಧಿ ಮುಗಿದ ನಂತರ SAML 2.0 ಏಕ ಲಾಗ್ ಔಟ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು
SAML 2.0 ಸಿಂಗಲ್ ಸೈನ್-ಆನ್ (SSO) ವ್ಯವಸ್ಥೆಗಳು ಬಳಕೆದಾರರಿಗೆ ಒಂದೇ ಗುಂಪಿನ ರುಜುವಾತುಗಳನ್ನು ಬಳಸಿಕೊಂಡು ವಿವಿಧ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ, ಅವರು ಬಳಕೆದಾರರ ದೃಢೀಕರಣವನ್ನು ಗಣನೀಯವಾಗಿ ಸರಳಗೊಳಿಸಿದ್ದಾರೆ. ಆದರೆ ಸಿಂಗಲ್ ಲಾಗ್ ಔಟ್ (SLO) ಕಲ್ಪನೆಯೊಂದಿಗೆ ಗಮನಾರ್ಹ ಸಮಸ್ಯೆಗಳಿವೆ, ವಿಶೇಷವಾಗಿ ಅವರು ಲಾಗ್ ಇನ್ ಮಾಡದ ಕಾರಣ ಸೇವಾ ಪೂರೈಕೆದಾರರಲ್ಲಿ (SP) ಬಳಕೆದಾರರ ಅವಧಿ ಮುಕ್ತಾಯವಾದಾಗ ಏನಾಗುತ್ತದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಗುರುತಿನ ಪೂರೈಕೆದಾರರಾಗಿರಬೇಕು (IDP) ಅಧಿವೇಶನವೂ ಕೊನೆಗೊಳ್ಳುತ್ತದೆಯೇ?
SAML 2.0 ರ ಸಂದರ್ಭದಲ್ಲಿ ಸುರಕ್ಷಿತ ಮತ್ತು ಸಮರ್ಥ ಪ್ರವೇಶವನ್ನು ಖಾತ್ರಿಪಡಿಸಿಕೊಳ್ಳಲು SP ಮತ್ತು IDP ನಡುವಿನ ಸೆಷನ್ ನಿರ್ವಹಣೆ ಅತ್ಯಗತ್ಯ. ಬಳಕೆದಾರರು ಇನ್ನೂ IDP ಗೆ ಸಂಪರ್ಕಗೊಂಡಿದ್ದರೆ SP ಸೆಷನ್ ಯಾವಾಗ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ ಎಂಬುದು ಯಾವಾಗಲೂ ಸ್ಪಷ್ಟವಾಗಿಲ್ಲ, ಅದು ಅದೇ IDP ಗೆ ಲಿಂಕ್ ಮಾಡಲಾದ ಇತರ ಅಪ್ಲಿಕೇಶನ್ಗಳ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರಬಹುದು. ಇದು ಉಪಯುಕ್ತತೆ ಮತ್ತು ಸುರಕ್ಷತೆಯ ಬಗ್ಗೆ ಪ್ರಶ್ನೆಗಳನ್ನು ಹುಟ್ಟುಹಾಕುತ್ತದೆ.
ಈ ಅಧಿವೇಶನದ ಅವಧಿ ಮೀರುವಿಕೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಸ್ಪಷ್ಟವಾದ ಉತ್ತಮ ಅಭ್ಯಾಸವನ್ನು ಹಲವು ವ್ಯಾಪಾರಗಳು, ವಿಶೇಷವಾಗಿ ಮೈಕ್ರೋಸಾಫ್ಟ್ ಎಂಟ್ರಾದಂತಹ ಇಂಟರ್ಫೇಸ್ಗಳನ್ನು ಬಳಸುವ ಮೂಲಕ ಸ್ಥಾಪಿಸಬೇಕಾಗಿದೆ. ಎಸ್ಪಿಯ ಅಧಿವೇಶನವು ಎಸ್ಪಿ ಮಟ್ಟದಲ್ಲಿ ಸರಳವಾಗಿ ನಿಲ್ಲುವುದು ಉತ್ತಮವೇ ಅಥವಾ ಇದು ಬಳಕೆದಾರರನ್ನು ಅವರ ಐಡಿಪಿ ಖಾತೆಯಿಂದ ಲಾಗ್ ಔಟ್ ಮಾಡುವ ಎಸ್ಎಲ್ಒಗೆ ಕಾರಣವಾಗಬೇಕೇ?
ಅಧಿವೇಶನದ ಅವಧಿಯನ್ನು ನಿಭಾಯಿಸಲು ಮತ್ತು ಭದ್ರತೆ ಮತ್ತು ಉಪಯುಕ್ತತೆ ಎರಡನ್ನೂ ಖಾತರಿಪಡಿಸುವ ಅತ್ಯಂತ ಪರಿಣಾಮಕಾರಿ ತಂತ್ರಗಳನ್ನು ವಿವರಿಸಲು ನೈಜ-ಪ್ರಪಂಚದ ಉದಾಹರಣೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು, ಈ ಪತ್ರಿಕೆಯು ಅಂತಹ ಸಂದರ್ಭಗಳಲ್ಲಿ 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 ಲಾಗ್ಔಟ್ ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಅಗತ್ಯವಿದ್ದರೆ, ಯಾವುದೇ ಸಂಬಂಧಿತ ಅಪ್ಲಿಕೇಶನ್ಗಳಾದ್ಯಂತ ಬಳಕೆದಾರರ ಸೆಶನ್ ಅನ್ನು ಕೊನೆಗೊಳಿಸುತ್ತದೆ. ಬಹು-ಅಪ್ಲಿಕೇಶನ್ ಸಿಂಗಲ್ ಸೈನ್-ಆನ್ (SSO) ಸ್ಥಾಪನೆಗಳ ಸುರಕ್ಷತೆ ಮತ್ತು ಸಮಗ್ರತೆಯನ್ನು ಕಾಪಾಡಿಕೊಳ್ಳಲು ಈ ದ್ವಿಮುಖ ಸಂವಹನದ ಅಗತ್ಯವಿದೆ.
ಮುಂಭಾಗದ ತುದಿಯಲ್ಲಿ ನೈಜ ಸಮಯದಲ್ಲಿ ಬಳಕೆದಾರರ ಚಟುವಟಿಕೆಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು JavaScript ಸ್ಕ್ರಿಪ್ಟ್ ಅತ್ಯಗತ್ಯ. ಪ್ರತಿ ಬಾರಿ ಬಳಕೆದಾರರು ಪ್ರೋಗ್ರಾಂನೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಿದಾಗ, `onmousemove} ಮತ್ತು `onkeypress` ನಂತಹ ಈವೆಂಟ್ ಕೇಳುಗರನ್ನು ಬಳಸಿಕೊಂಡು ನಾವು ಅಧಿವೇಶನದ ಅವಧಿಯನ್ನು ಮರುಹೊಂದಿಸುತ್ತೇವೆ. `setTimeout()` ನೊಂದಿಗೆ ಹೊಂದಿಸಲಾದ ಟೈಮರ್ ಬಳಕೆದಾರರನ್ನು ಎಚ್ಚರಿಸುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರು ನಿಷ್ಕ್ರಿಯಗೊಂಡಾಗ SP (MyApp) ನಿಂದ ಅವರನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಲಾಗ್ ಔಟ್ ಮಾಡುತ್ತದೆ. ಲಾಗ್ಔಟ್ ನಂತರ, ಹಿಂದೆ ಒಳಗೊಂಡಿರುವ SAML 2.0 ಲಾಗ್ಔಟ್ ಪ್ರಕ್ರಿಯೆಯು ಮುಂಭಾಗದ ಸ್ಕ್ರಿಪ್ಟ್ನಿಂದ `fatch()` ಅನ್ನು ಬಳಸಿಕೊಂಡು ಬ್ಯಾಕೆಂಡ್ಗೆ SLO ವಿನಂತಿಯನ್ನು ಕಳುಹಿಸುವ ಮೂಲಕ ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತದೆ. ಈ ತಂತ್ರವು ಎಸ್ಪಿ ಮಟ್ಟದಲ್ಲಿ ನಿಷ್ಕ್ರಿಯತೆಯನ್ನು ತ್ವರಿತವಾಗಿ, ಸುರಕ್ಷಿತವಾಗಿ ಮತ್ತು ವಿಫಲಗೊಳ್ಳದೆ ಪರಿಹರಿಸುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ.
ಯಾವಾಗ SAML 2.0 ಏಕೀಕರಣ ಮತ್ತು ಸಂಯೋಜಿಸಲಾಗಿದೆ, ಬಳಕೆದಾರರ ಅನುಭವವು ತಡೆರಹಿತವಾಗಿದೆ ಮತ್ತು ಭದ್ರತಾ ಮಾನದಂಡಗಳನ್ನು ಎತ್ತಿಹಿಡಿಯಲಾಗಿದೆ. ನಿಷ್ಕ್ರಿಯತೆಯ ಸಮಯದಲ್ಲಿ ಅನುಮತಿಸಲಾದ ಸಮಯಕ್ಕಿಂತ ಹೆಚ್ಚು ಸಮಯದವರೆಗೆ ದೃಢೀಕರಣಗೊಳ್ಳದಂತೆ ಬಳಕೆದಾರರನ್ನು ತಡೆಯಲು, ಸೆಶನ್ ಅವಧಿ ಮೀರುವಿಕೆಯು ಸ್ಥಳೀಯ SP ಲಾಗ್ಔಟ್ ಮತ್ತು IDP ಲಾಗ್ಔಟ್ ಎರಡನ್ನೂ ಪ್ರಾರಂಭಿಸುತ್ತದೆ. SAML 2.0 ಗೆ ಸೆಷನ್ ಸಮಯ ಮೀರುವಿಕೆಗೆ ಸಂಬಂಧಿಸಿದಂತೆ ಯಾವುದೇ ನಿರ್ದಿಷ್ಟ ನಡವಳಿಕೆಯ ಅಗತ್ಯವಿಲ್ಲದಿದ್ದರೂ, SLO ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಅಧಿವೇಶನ ಮುಕ್ತಾಯವನ್ನು ಬಳಸುವುದು ಉತ್ತಮ ಅಭ್ಯಾಸವೆಂದು ಸಾಮಾನ್ಯವಾಗಿ ಒಪ್ಪಿಕೊಳ್ಳಲಾಗಿದೆ. ಐಡಲ್ ಸೆಷನ್ಗಳನ್ನು ಕೊನೆಗೊಳಿಸುವ ಮೂಲಕ, ಇದು ವಿವಿಧ SSO-ಸಂಪರ್ಕಿತ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಳಲ್ಲಿ ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಿದ ಲಾಗ್ಔಟ್ಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವ ಮೂಲಕ ಭದ್ರತೆ ಮತ್ತು ಬಳಕೆದಾರರ ಅನುಭವದ ನಡುವೆ ಸಮತೋಲನವನ್ನು ಹೊಡೆಯುತ್ತದೆ.
SAML 2.0 ಅನ್ನು ನಿಭಾಯಿಸಲು Node.js ಮತ್ತು ಎಕ್ಸ್ಪ್ರೆಸ್ ಅನ್ನು ಬಳಸುವುದು ಸೆಷನ್ ಟೈಮ್ಔಟ್ನೊಂದಿಗೆ ಏಕ ಲಾಗ್ ಔಟ್
Node.js ಮತ್ತು ಎಕ್ಸ್ಪ್ರೆಸ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಸೇವಾ ಪೂರೈಕೆದಾರರ ಅವಧಿಯ ಅವಧಿ ಮೀರುವಿಕೆಯೊಂದಿಗೆ 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 ಅನ್ನು ನಿರ್ವಹಿಸಲು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮುಂಭಾಗ ಮತ್ತು ಐಡಲ್ ಟೈಮ್ಔಟ್ ಡಿಟೆಕ್ಷನ್ ಅನ್ನು ಬಳಸುವುದು
ಮುಂಭಾಗದ ವಿಧಾನದಲ್ಲಿ, ಬಳಕೆದಾರರ ನಿಷ್ಕ್ರಿಯತೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲು ಮತ್ತು ಏಕ ಲಾಗ್ ಔಟ್ (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) ಮಟ್ಟದಲ್ಲಿ ನಿರ್ವಹಿಸುವುದು ಒಂದು ಪ್ರಮುಖ ಅಂಶವಾಗಿದೆ. ಎಸ್ಪಿಯಲ್ಲಿನ ಹಸ್ತಚಾಲಿತ ಲಾಗ್ಔಟ್ ಗುರುತಿನ ಪೂರೈಕೆದಾರ (ಐಡಿಪಿ) ಲಾಗ್ಔಟ್ಗೆ ಕಾರಣವಾಗಬಹುದು ಎಂಬುದು ಸ್ಪಷ್ಟವಾಗಿದ್ದರೂ, ನಿಷ್ಕ್ರಿಯತೆಯಿಂದ ಉಂಟಾಗುವ ಸೆಶನ್ ಸಮಯ ಮೀರುವಿಕೆಯು ವಿಷಯಗಳನ್ನು ಸಂಕೀರ್ಣಗೊಳಿಸುತ್ತದೆ. SAML 2.0 ಸ್ಟ್ಯಾಂಡರ್ಡ್ SLO ಅನ್ನು ಸೆಷನ್ ಮುಕ್ತಾಯದ ಸಮಯದಲ್ಲಿ ಹೇಗೆ ನಿರ್ವಹಿಸಬೇಕು ಎಂಬುದನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಹೇಳುವುದಿಲ್ಲ. ಆದಾಗ್ಯೂ, ಬಳಕೆದಾರರ ಅನುಭವ ಮತ್ತು ಸುರಕ್ಷತೆಯನ್ನು ಸುಧಾರಿಸುವ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳಲು ಇದು ಅನುಮತಿಸುತ್ತದೆ.
ಉದಾಹರಣೆಗೆ, ನಿಷ್ಕ್ರಿಯತೆಯಿಂದಾಗಿ SP ಯಿಂದ ಮುಚ್ಚಲ್ಪಟ್ಟ ನಂತರವೂ, Microsoft Entra (IDP) ಮೂಲಕ MyApp ನಂತಹ ಅಪ್ಲಿಕೇಶನ್ಗೆ ಲಾಗ್ ಇನ್ ಮಾಡುವ ಬಳಕೆದಾರರು ಆಗಾಗ್ಗೆ IDP ಗೆ ಲಾಗ್ ಇನ್ ಆಗಿರುತ್ತಾರೆ. ಅದೇ SSO ಅನ್ನು ಬಳಸುವ ಇತರ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಇನ್ನೂ ಚಾಲನೆಯಲ್ಲಿರುವಾಗ ಅವರು ಸಂಪೂರ್ಣವಾಗಿ ಲಾಗ್ ಔಟ್ ಆಗಿದ್ದಾರೆಂದು ಬಳಕೆದಾರರು ನಂಬಿದರೆ, ಇದು ಹೆಚ್ಚಾಗಬಹುದು . IDP ಮಟ್ಟದಲ್ಲಿ SP ಸಮಯ ಮೀರುವ ಈವೆಂಟ್ ಅನ್ನು ಅನುಕರಿಸಲು SAML ಸೆಷನ್ ನಿರ್ವಹಣೆಯನ್ನು ಹೊಂದಿಸುವುದು ಮತ್ತು ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಿದ ಲಾಗ್ಔಟ್ಗಳನ್ನು ಖಾತರಿಪಡಿಸುವುದು ಈ ಅಪಾಯವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಒಂದು ಮಾರ್ಗವಾಗಿದೆ.
ಐಡಲ್ ಡಿಟೆಕ್ಷನ್ ತಂತ್ರಗಳ ಮುಂಭಾಗದ ಕೋಡ್ನ ಅನುಷ್ಠಾನವು ಮತ್ತೊಂದು ಅಂಶವಾಗಿದೆ. ಡೆವಲಪರ್ಗಳು ನಿಷ್ಕ್ರಿಯತೆಯ ಸಮಯವನ್ನು ನಿರೀಕ್ಷಿಸಬಹುದು ಮತ್ತು ಬಳಕೆದಾರರ ಚಟುವಟಿಕೆಗಾಗಿ ಈವೆಂಟ್ ಕೇಳುಗರನ್ನು ಬಳಸುವ ಮೂಲಕ ಅವಧಿ ಮುಗಿಯುವ ಮೊದಲು ಬಳಕೆದಾರರನ್ನು ಎಚ್ಚರಿಸಬಹುದು. ಇದನ್ನು ಬಳಸುವ ಮೂಲಕ, ಬಳಕೆದಾರರು ತಮ್ಮ ಸೆಷನ್ಗಳ ಮೇಲೆ ನಿಯಂತ್ರಣವನ್ನು ಇಟ್ಟುಕೊಳ್ಳಬಹುದು ಮತ್ತು ಅವರದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬಹುದು ನಿರಂತರವಾಗಿ ಓಡುವುದಿಲ್ಲ. SSO-ಸಂಯೋಜಿತ ಪರಿಸರದಲ್ಲಿ, ಡೆವಲಪರ್ಗಳು ಈ ಅಂಶಗಳ ನಡುವೆ ಸಮತೋಲನವನ್ನು ಹೊಡೆಯುವ ಮೂಲಕ ಸುರಕ್ಷತೆ ಮತ್ತು ಬಳಕೆದಾರರ ಸೌಕರ್ಯವನ್ನು ಸಂರಕ್ಷಿಸಬಹುದು.
- ಅಧಿವೇಶನದ ಸಮಯ ಮೀರಿದಾಗ ಸೇವಾ ಪೂರೈಕೆದಾರರ ಮಟ್ಟದಲ್ಲಿ ಏನಾಗುತ್ತದೆ?
- ಸಾಮಾನ್ಯವಾಗಿ, SP ಮಟ್ಟದಲ್ಲಿ ಸೆಶನ್ ಸಮಯ ಮೀರಿದಾಗ ಬಳಕೆದಾರರು ಪ್ರೋಗ್ರಾಂನಿಂದ ಲಾಗ್ ಔಟ್ ಆಗುತ್ತಾರೆ. ಇದು ಸಿಸ್ಟಂ ಅನ್ನು ಹೇಗೆ ಹೊಂದಿಸಲಾಗಿದೆ ಎಂಬುದರ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ, ಆದರೂ SAML 2.0 ಸ್ಪೆಕ್ಗೆ ಇದು IDP ನಲ್ಲಿ SLO ಅನ್ನು ಉಂಟುಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ.
- ಐಡೆಂಟಿಟಿ ಪ್ರೊವೈಡರ್ನಲ್ಲಿ SLO ಅನ್ನು ಸೇವಾ ಪೂರೈಕೆದಾರರ ಅವಧಿಯ ಅವಧಿ ಮೀರುವ ಮೂಲಕ ಪ್ರಚೋದಿಸಬೇಕೇ?
- ಸಂಸ್ಥೆಯ ನೀತಿಯು ಇದನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ. SAML 2.0 ಇದನ್ನು ಕಡ್ಡಾಯಗೊಳಿಸದಿದ್ದರೂ, ಭದ್ರತಾ ಕಾರಣಗಳಿಗಾಗಿ SP ಅಧಿವೇಶನವು ಕೊನೆಗೊಂಡಾಗ IDP ನಲ್ಲಿ SLO ಅನ್ನು ಹೊಂದಿಸಲು ಹಲವರು ಆಯ್ಕೆ ಮಾಡುತ್ತಾರೆ.
- ನಿಷ್ಕ್ರಿಯ ಅಧಿವೇಶನವು ಕೊನೆಗೊಂಡಾಗ, ನಾನು SLO ಆಗುವಂತೆ ಮಾಡುವುದು ಹೇಗೆ?
- ಸೆಷನ್ ಮುಕ್ತಾಯವನ್ನು ಬ್ಯಾಕೆಂಡ್ ಯಾಂತ್ರಿಕತೆಯ ಮೂಲಕ ಕಂಡುಹಿಡಿಯಬಹುದು, ಅದು ನಂತರ a ಅನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ IDP ಗೆ SLO ವಿನಂತಿಯನ್ನು ಮಾಡುವ ವಿಧಾನ.
- ಮುಂಭಾಗದಲ್ಲಿ ಅಧಿವೇಶನ ನಿಷ್ಕ್ರಿಯತೆಯನ್ನು ಹೇಗೆ ಕಂಡುಹಿಡಿಯಲಾಗುತ್ತದೆ?
- ಕಾರ್ಯಕ್ರಮ ಕೇಳುಗರು ಇಷ್ಟಪಡುತ್ತಾರೆ ಮತ್ತು ಪ್ರತಿ ಬಾರಿ ಬಳಕೆದಾರರು ಅಪ್ಲಿಕೇಶನ್ನೊಂದಿಗೆ ಸಂವಹಿಸಿದಾಗ ಟೈಮರ್ ಅನ್ನು ಮರುಹೊಂದಿಸುವಾಗ ನಿಷ್ಕ್ರಿಯತೆಯನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ.
- SP ಯಿಂದ ಲಾಗ್ ಔಟ್ ಮಾಡಿದ ನಂತರ, IDP ಸೆಶನ್ ಅನ್ನು ತೆರೆಯುವುದು ಸುರಕ್ಷಿತವೇ?
- IDP ಸೆಶನ್ ಅನ್ನು ತೆರೆದಿಡುವುದರಿಂದ ಭದ್ರತಾ ಅಪಾಯವು ಉದ್ಭವಿಸಬಹುದು, ವಿಶೇಷವಾಗಿ ಬಳಕೆದಾರರು ತಾವು ಸಂಪೂರ್ಣವಾಗಿ ಪರಿಶೀಲಿಸಿದ್ದಾರೆಂದು ಭಾವಿಸಿದರೆ. SP ಅವಧಿಯ ಮುಕ್ತಾಯವನ್ನು ಪುನರಾವರ್ತಿಸಲು SLO ಅನ್ನು ಹೊಂದಿಸಲು ಸಲಹೆ ನೀಡಲಾಗುತ್ತದೆ.
ಒಂದು SSO ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಭದ್ರತೆಯನ್ನು ಕಾಪಾಡಿಕೊಳ್ಳಲು ಗುರುತಿನ ಪೂರೈಕೆದಾರರು ಮತ್ತು ಸೇವಾ ಪೂರೈಕೆದಾರರು ತಮ್ಮ ಲಾಗ್ಔಟ್ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವ ಅಗತ್ಯವಿದೆ. SAML 2.0 ಅಧಿವೇಶನದ ಅವಧಿಯನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸಬೇಕು ಎಂಬುದನ್ನು ಕಡ್ಡಾಯಗೊಳಿಸದಿದ್ದರೂ, ಬಹಳಷ್ಟು ವ್ಯಾಪಾರಗಳು ಏಕರೂಪದ ರೀತಿಯಲ್ಲಿ ಏಕ ಲಾಗ್ಔಟ್ಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತವೆ.
ಸುರಕ್ಷತೆಯನ್ನು ಸುಧಾರಿಸುವ ಸಲುವಾಗಿ ನಿಷ್ಕ್ರಿಯತೆಯ ಕಾರಣ ಸೇವಾ ಪೂರೈಕೆದಾರರ ಸೆಷನ್ ಕೊನೆಗೊಂಡಾಗ ಪ್ರತಿ ಬಾರಿ SLO ವಿನಂತಿಯನ್ನು ಕಳುಹಿಸಲು ಸಲಹೆ ನೀಡಲಾಗುತ್ತದೆ. ಅನೇಕ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಳಲ್ಲಿ ಅನಗತ್ಯ ಪ್ರವೇಶವನ್ನು ತಪ್ಪಿಸುವ ಮೂಲಕ ಬಳಕೆದಾರರು ಐಡೆಂಟಿಟಿ ಪ್ರೊವೈಡರ್ ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ನಿಂದ ಲಾಗ್ ಔಟ್ ಆಗಿರುವುದನ್ನು ಇದು ಖಚಿತಪಡಿಸುತ್ತದೆ.
- SAML 2.0 ಮತ್ತು ಸಿಂಗಲ್ ಲಾಗ್ ಔಟ್ ಮಾನದಂಡಗಳು ಮತ್ತು ಮಾರ್ಗಸೂಚಿಗಳ ವಿವರವಾದ ದಾಖಲಾತಿಗಳನ್ನು ಅಧಿಕೃತದಲ್ಲಿ ಕಾಣಬಹುದು OASIS SAML 2.0 ಕೋರ್ ವಿವರಣೆ .
- ಮೈಕ್ರೋಸಾಫ್ಟ್ ಎಂಟ್ರಾ ಮತ್ತು SSO ಮತ್ತು SLO ನೊಂದಿಗೆ ಅದರ ಏಕೀಕರಣದ ಒಳನೋಟಗಳಿಗಾಗಿ, ಅಧಿಕೃತ Microsoft ದಸ್ತಾವೇಜನ್ನು ನೋಡಿ ಅಜುರೆ ಆಕ್ಟಿವ್ ಡೈರೆಕ್ಟರಿ ಮತ್ತು SAML .
- ಉದಾಹರಣೆಗಳಲ್ಲಿ ಬಳಸಲಾದ Node.js SAML ಲೈಬ್ರರಿ, ಸೆಷನ್ ಮ್ಯಾನೇಜ್ಮೆಂಟ್ ಟೆಕ್ನಿಕ್ಗಳ ಜೊತೆಗೆ, ಇಲ್ಲಿ ಮತ್ತಷ್ಟು ಅನ್ವೇಷಿಸಬಹುದು SAML2-js ಲೈಬ್ರರಿ ಡಾಕ್ಯುಮೆಂಟೇಶನ್ .
- ಏಕ ಸೈನ್-ಆನ್ ಮತ್ತು ಅಧಿವೇಶನ ನಿರ್ವಹಣೆಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವಲ್ಲಿ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು, ಲೇಖನವನ್ನು ಭೇಟಿ ಮಾಡಿ SSO ಅತ್ಯುತ್ತಮ ಅಭ್ಯಾಸಗಳು Auth0 ಮೂಲಕ.