संकल्पना
काही कल्पना समजल्या की Usher मधील जवळजवळ सर्व काही स्पष्ट होते: गोष्टी कुठे राहतात, टोकन कोण जारी करते, लोक कुठे साइन इन करतात, आणि प्रत्येक टोकन किती काळ टिकते.
वर्कस्पेस, प्रोजेक्ट आणि एन्व्हायर्नमेंट
- वर्कस्पेस म्हणजे Usher Console मधील तुमची टीम किंवा कंपनी. तिचे सदस्य आणि तिचा ऑडिट लॉग तिचेच असतात.
- प्रोजेक्ट म्हणजे एक उत्पादन: तुमचे वेब ॲप, किंवा पार्टनर पोर्टल. एका वर्कस्पेसमध्ये अनेक प्रोजेक्ट असू शकतात.
- एन्व्हायर्नमेंट म्हणजे प्रोजेक्टची एक चालणारी प्रत, सहसा development आणि production. लोक, ॲप्लिकेशन, की आणि सेटिंग्ज एन्व्हायर्नमेंटमध्येच राहतात.
वर्कस्पेस · Acme Ltd
प्रोजेक्ट · वेब
- development · wise-otter-42
- production · acme
प्रोजेक्ट · पार्टनर पोर्टल
- development · calm-heron-17
- production · acme-partners
एन्व्हायर्नमेंट महत्त्वाचे असे काहीही शेअर करत नाहीत. प्रत्येकाचा स्वतःचा Postgres स्कीमा, स्वतःच्या साइनिंग की, आणि स्वतःच्या डेटा की खाली सील केलेले स्वतःचे सिक्रेट असतात. development मध्ये साइन अप करणारी व्यक्ती production मध्ये अस्तित्वात नसते, आणि एकाचे टोकन दुसऱ्याच्या की ने कधीही व्हेरिफाय होऊ शकत नाही.
वर्कस्पेस ॲडमिन प्रोजेक्टच्या आढावा पेजच्या शेवटी, त्याचे नाव टाइप केल्यानंतर, तो प्रोजेक्ट हटवू शकतो. त्यातील प्रत्येक एन्व्हायर्नमेंट एकाच वेळी जाते: त्याचे लोक, ॲप्लिकेशन, की आणि सेटिंग्ज, आणि त्याने दिलेले प्रत्येक सेशन आणि टोकन. त्याचे पत्ते उत्तर देणे थांबवतात आणि पुन्हा कधीही दिले जात नाहीत, त्यामुळे अजूनही त्यापैकी एखाद्यावर विश्वास ठेवणाऱ्या ॲपला दुसऱ्या कोणाच्या प्रोजेक्टकडून फसवले जाऊ शकत नाही.
इश्युअर
प्रत्येक एन्व्हायर्नमेंट हा स्वतंत्र OpenID Connect इश्युअर असतो, टेनंट डोमेनवरील स्वतःच्या होस्टवर:
https://<handle>.usherid.com- Production एन्व्हायर्नमेंटचे हँडल तुम्ही निवडता: 3 ते 32 लोअर-केस अक्षरे, अंक आणि एकेरी हायफन, जसे तुमच्या कंपनीचे नाव. एकदा वापरलेले हँडल पुन्हा कधीही दिले जात नाही.
- Development एन्व्हायर्नमेंटला यादृच्छिक हँडल मिळते, जसे
wise-otter-42, ज्याला कोणीही ब्रँड समजणार नाही.
एन्व्हायर्नमेंट तयार होतानाच इश्युअर निश्चित होतो, कारण तो साइन करत असलेल्या प्रत्येक टोकनच्या iss मध्ये त्याचे नाव असते, आणि त्यावर विश्वास ठेवणारे प्रत्येक ॲप ते मूल्य तपासते.
टेनंट डोमेन Usher च्या स्वतःच्या डोमेनपेक्षा (usheridentity.com) वेगळे नोंदणीयोग्य डोमेन आहे, त्यामुळे ग्राहकाची साइन-इन पेजेस Usher Console सोबत कधीही same-site नसतात, आणि कुकी होस्ट-ओन्ली असतात: ब्राउझर एखाद्या एन्व्हायर्नमेंटच्या कुकी फक्त त्याच एन्व्हायर्नमेंटला पाठवतो.
लॉबी
लॉबी हे प्रत्येक एन्व्हायर्नमेंट त्याच्या इश्युअरवर होस्ट करत असलेले साइन-इन पेज आहे. तुमचे ॲप लोकांना तिथे पाठवते; ती त्यांना साइन इन करते आणि परत पाठवते.
- “पुढे जात आहात” चिपमध्ये व्यक्ती ज्या ॲपकडे जात आहे त्याचे नाव ती नेहमी दाखवते.
- एन्व्हायर्नमेंट परवानगी देते तेवढ्याच पद्धती ती देते: पासकी, ईमेलने पाठवलेले कोड, मॅजिक लिंक, सोशल खाती (Google, GitHub, Microsoft, Apple) आणि पासवर्ड.
- ती दुसरा फॅक्टर अनिवार्य करू शकते: ऑथेंटिकेटर ॲप (बॅकअप कोडसह) किंवा पासकी.
- ती सर्वांसाठी खुली असू शकते, किंवा पत्ते आणि डोमेनच्या पाहुण्यांच्या यादीपुरती मर्यादित.
कोणत्याही उत्पादनाने व्यक्तीला पाठवले तरी ती सारखीच दिसते. हे जाणूनबुजून आहे: खरी लॉबी कशी दिसते हे लोक शिकतात, आणि एखादे पेज लॉबी नसेल तेव्हा त्यांच्या लक्षात येते.
Usher खाती
बहुतेक एन्व्हायर्नमेंटचे स्वतःचे वापरकर्ते असतात. Usher खाती वेगळी आहेत: एकच खाते, जे Usher सह पुढे जा देणाऱ्या प्रत्येक ॲपमध्ये व्यक्तीला साइन इन करते. लोक त्यांचे खाते account.usheridentity.com वर व्यवस्थापित करतात.
टोकन आणि कालावधी
| टोकन | डीफॉल्ट | किती सेट करता येते | ते कशासाठी आहे |
|---|---|---|---|
| ऑथरायझेशन कोड | 5 मिनिटे | निश्चित | एकदाच टोकनच्या बदल्यात दिला जातो. एकदाच वापरता येतो. |
| ID टोकन | 10 मिनिटे | 1 ते 60 मिनिटे | कोणी साइन इन केले हे तुमच्या ॲपला सांगते. API कॉल करण्यासाठी नाही. |
| ॲक्सेस टोकन | 10 मिनिटे | 1 ते 60 मिनिटे | तुमच्या API ला पाठवले जाते, जे ते तपासते. |
| रिफ्रेश टोकन | 30 दिवस | 1 ते 90 दिवस | नवीन ॲक्सेस टोकन मिळवते. प्रत्येक वापरावर रोटेट होते. offline_access लागतो. |
| मशीन ॲक्सेस टोकन | 15 मिनिटे | 1 ते 60 मिनिटे | client_credentials साठी: ज्यांच्यामागे कोणतीही व्यक्ती नाही असे सर्व्हर. |
| ईमेलने पाठवलेला कोड, मॅजिक लिंक | 10 मिनिटे | निश्चित | एकदा साइन इन करण्यासाठी. कोडसाठी तीन प्रयत्न मिळतात. |
लॉबीमधील सेशनलाही कालावधी असतो: 7 दिवस वापर न झाल्यास सेशन संपते (1 ते 30), आणि एकूण 30 दिवसांनंतरही (1 ते 90). ईमेल पत्त्यासारखी संवेदनशील गोष्ट बदलण्यासाठी मागील 10 मिनिटांतील साइन-इन लागते.
साइनिंग की
टोकन डीफॉल्टनुसार RS256 ने साइन होतात; एन्व्हायर्नमेंट त्याऐवजी ES256 किंवा EdDSA वापरू शकते. पब्लिक की एन्व्हायर्नमेंटच्या jwks_uri वर प्रकाशित होतात, त्यामुळे तुमच्या लायब्ररी त्या स्वतः मिळवतात, आणि की रोटेट झाल्यावर नवीन की घेतात.
स्कोप
| स्कोप | तुमच्या ॲपला काय मिळते |
|---|---|
openid | आवश्यक. व्यक्तीच्या sub सह ID टोकन. |
profile | त्यांचे नाव आणि फोटो. |
email | त्यांचा ईमेल पत्ता, आणि तो व्हेरिफाय झाला आहे की नाही. |
offline_access | रिफ्रेश टोकन, म्हणजे ते साइन इन राहतात. |