Central autentiseringstjänst
Central Authentication Service ( CAS ) är ett protokoll för enkel inloggning för webben . Syftet är att tillåta en användare att få åtkomst till flera applikationer samtidigt som de tillhandahåller sina referenser (som användar-ID och lösenord) endast en gång. Det tillåter också webbapplikationer att autentisera användare utan att få tillgång till en användares säkerhetsuppgifter, till exempel ett lösenord. Namnet CAS hänvisar också till ett mjukvarupaket som implementerar detta protokoll.
Beskrivning
CAS-protokollet involverar minst tre parter: en klientwebbläsare , webbapplikationen som begär autentisering och CAS-servern . Det kan också involvera en back-end-tjänst , till exempel en databasserver, som inte har sitt eget HTTP-gränssnitt utan kommunicerar med en webbapplikation.
När klienten besöker en applikation som kräver autentisering omdirigerar applikationen den till CAS. CAS validerar klientens äkthet, vanligtvis genom att kontrollera ett användarnamn och lösenord mot en databas (som Kerberos , LDAP eller Active Directory ).
Om autentiseringen lyckas, returnerar CAS klienten till applikationen och skickar en servicebiljett . Applikationen validerar sedan biljetten genom att kontakta CAS över en säker anslutning och tillhandahålla sin egen tjänsteidentifierare och biljetten. CAS ger sedan applikationen betrodd information om huruvida en viss användare har autentiserats.
CAS tillåter flerskiktsautentisering via proxyadress . En samarbetande back-end- tjänst, som en databas eller e-postserver, kan delta i CAS och validera användarnas äkthet via information som den tar emot från webbapplikationer. Således kan en webbmailklient och en webbmailserver alla implementera CAS.
Historia
CAS skapades och utvecklades av Shawn Bayern från Yale University Technology and Planning . Det sköttes senare av Drew Mazurek på Yale. CAS 1.0 implementerat enkel inloggning. CAS 2.0 introducerade multi-tier proxy-autentisering. Flera andra CAS-distributioner har utvecklats med nya funktioner.
I december 2004 blev CAS ett projekt av Java in Administration Special Interest Group (JASIG), som från och med 2008 ansvarar för dess underhåll och utveckling. Tidigare kallad "Yale CAS", CAS är nu även känt som "Jasig CAS". 2010 inledde Jasig samtal med Sakai Foundation för att slå samman de två organisationerna. De två organisationerna konsoliderades som Apereo Foundation i december 2012.
I december 2006 tilldelade Andrew W. Mellon Foundation Yale sitt första årliga Mellon-pris för tekniskt samarbete, på ett belopp av 50 000 USD, för Yales utveckling av CAS. Vid tidpunkten för tilldelningen användes CAS på "hundratals universitetsområden (bland andra förmånstagare)".
I april 2013 släpptes CAS-protokollspecifikationen 3.0.
Genomförande
Apereo CAS-implementering
Apereo CAS-servern som är referensimplementeringen av CAS-protokollet stöder idag följande funktioner:
- CAS v1, v2 och v3-protokoll
- SAML v1 och v2-protokoll
- OAuth- protokoll
- OpenID & OpenID Connect Protocol
- WS-Federation Passive Requestor Protocol
- Autentisering via JAAS , LDAP , RDBMS, X.509 , Radius, SPNEGO , JWT , Remote, Trusted, BASIC, Apache Shiro , MongoDB , Pac4J och mer.
- Delegerad autentisering till WS-FED, Facebook, Twitter, SAML IdP, OpenID , OpenID Connect , CAS och mer.
- Auktorisering via ABAC, Time/Date, REST, Internet2:s Grouper med mera.
- HA-klustrade distributioner via Hazelcast , Ehcache , JPA, Memcached , Apache Ignite , MongoDB, Redis , Couchbase och mer.
- Applikationsregistrering med stöd av JSON , LDAP, YAML , JPA, Couchbase, MongoDB och mer.
- Multifaktorautentisering via Duo Security, SAASPASS, YubiKey , RSA, Google Authenticator ( TOTP ) och mer.
- Administrativa användargränssnitt för att hantera loggning, övervakning, statistik, konfiguration, klientregistrering och mer.
- Globalt och per applikation användargränssnittstema och varumärke.
- Lösenordshantering och upprätthållande av lösenordspolicy.
Django implementering
Django CAS-server
- django-mama-cas: En Django Central Authentication Service (CAS) server för enkel inloggning
Django CAS-klient
- django-cas-ng: Django CAS 1.0/2.0/3.0 klientautentiseringsbibliotek, stöd för Django 2.0, 2.1, 2.2, 3.0 och Python 3.5+
Se även
- CoSign enkel inloggning
- JOSSO
- Lista över implementeringar av enkel inloggning
- ÖppnaAM
- Öppet ID
- SAML
- SAML-baserade produkter och tjänster
- Shibboleth (programvara)
- ^ "JASIG CAS-protokollsida" . Apereo/JASIG . Hämtad 24 juni 2016 .
- ^ Mellon utmärkelse för pressmeddelande för teknologisamarbete (PDF) .
- ^ "CAS-protokollspecifikation 3.0" . Hämtad 6 november 2020 .
- ^ "django-mama-cas" . GitHub . 16 februari 2022.
- ^ "django-cas-ng" .