آدرس سرور احراز هویت مرکزی دانشگاه صنعتی اصفهان https://webauth.iut.ac.ir است و URIهایی که فراهم میکند به شکل زیر است:
URI | Description |
---|---|
/cas/ | Redirects to /cas/login |
/cas/login | Login service |
/cas/logout | Logout service |
/cas/validate | CAS 1.0 service ticket validation URI |
/cas/serviceValidate | CAS 2.0 service ticket validation URI |
/cas/proxyValidate | CAS 2.0 service ticket and proxy ticket validation URI |
/cas/proxy | CAS 2.0 proxy ticket service |
/cas/p3/serviceValidate | CAS 3.0 service ticket validation URI |
/cas/p3/proxyValidate | CAS 3.0 service ticket and proxy ticket validation URI |
/cas/samlValidate | SAML service ticket validation URI (Jasig CAS feature, not in CAS protocol) |
نحوه عملکرد CAS
تصویر زیر فرایند یک ورود موفق با CAS را نشان میدهد. برای اطلاعات بیشتر به ویژگیهای پروتکل CAS مراجعه کنید.
پیشنیاز: ارایهدهنده سامانه اش را به احراز هویت مرکزی متصل می کند:
- از مدیر احراز هویت مرکزی می خواهد تا سامانهاش را در احراز هویت مرکزی ثبت کند.
- کلاینت CAS را به سامانهاش اضافه و آن را پیکربندی میکند.
مرحله ۱: کاربر به سامانه محافظت شده با CAS وصل می شود.
وقتی کاربر وارد سامانه متصل به CAS میشود، سامانه کاربر را به CAS service URI (/cas/login) هدایت میکند. شناسه سامانه در پارامتر service به همراه درخواست ارسال میشود:
https://webauth.iut.ac.ir/cas/login?service=https://test-app.com
مرحله ۲: کاربر وارد CAS می شود.
وقتی کاربر برای بار اول به /cas/login هدایت می شود صفحه ورود نمایش داده میشود تا کاربر نام کاربری و کلمه عبورش را وارد کند. وقتی کاربر اطلاعاتش را وارد کرد درخواست حاوی آن با روش POST به /cas/login ارسال میشود.
مرحله ۳: CAS نام کاربری و کلمه عبور کاربر را تطبیق میدهد.
CAS اطلاعات وارد شده توسط کاربر را با اطلاعات موجود در پایگاه داده اش تطبیق میدهد. اگر اطلاعات صحیح بود، CAS ویژگیهای کاربر (attributes) مانند نام و شماره تلفن را برای ارسال به سامانه پیش خودش نگاه میدارد. CAS با استفاده از ویژگیهای کاربر یک Ticket Granting Ticket (بلیط مادر) روی سرور ایجاد کرده و یک کوکی حاوی آن را در مرورگر کاربر ذخیره میکند.
مرحله ۴: CAS بررسی میکند که سامانه ثبت شده باشد.
بعد از این که کاربر با موفقیت وارد شد، CAS اطلاعات پارامتر service را با اطلاعات سامانههای ثبت شده تطبیق میدهد. اگر مقدار با یکی از سامانهها منطبق بود، به مرحله بعد میرود وگرنه خطایی مبنی بر عدم ثبت سامانه نشان میدهد.
مرحله ۵: CAS یک Service Ticket ایجاد و کاربر را به سامانه هدایت میکند.
CAS یک Service Ticket (بلیط سامانه) صادر کرده و کاربر را به آدرس سامانه بازمیگرداند. بلیط ایجاد شده به عنوان یک پارامتر (ticket) به آدرس اضافه میشود:
https://test-app.com?ticket=ST-9781-123cvUwGGkp980
مرحله ۶: سامانه بلیط صادر شده را راستیآزمایی می کند.
سامانه با یکی از آدرسهای /cas/serviceValidate یا /cas/p3/serviceValidate تماس گرفته و بلیط را راستیآزمایی میکند. اگر بلیط صحیح بود و منقضی نشده بود CAS در پاسخ نام کاربری کاربر و احیانا ویژگیهای او را برای سامانه ارسال می کند. عمر یک Service Ticket فقط چند ثانیه است.
ورودهای بعدی
پس از اولین ورود، وقتی کاربر قصد ورود به سامانه دیگری داشته باشد به /cas/login (مرحله ۱) هدایت میشود. وقتی مرورگر به /cas/login میرود کوکی ذخیره شده در مرورگر همراه درخواست به سرور CAS ارسال میشود. CAS بررسی میکند که بلیط مادر صحیح باشد. اگر بلیط مادر صحیح بود و منقضی نشده بود CAS فرض میکند که کاربر قبلا وارد شده و مراحل ۲ و ۳ را نادیده میگیرد وگرنه دوباره همه مراحل را طی میکند.