Langkau ke kandungan
Dokumentasi · Ruang kerja, pengeluar dan token

Konsep

Beberapa idea menerangkan hampir semua perkara dalam Usher: di mana sesuatu berada, siapa yang mengeluarkan token, di mana orang daftar masuk, dan berapa lama setiap token bertahan.

Ruang kerja, projek dan persekitaran

  • Ruang kerja ialah pasukan atau syarikat anda dalam Usher Console. Ahli dan log auditnya adalah miliknya.
  • Projek ialah satu produk: aplikasi web anda, atau portal rakan kongsi. Satu ruang kerja boleh menyimpan banyak projek.
  • Persekitaran ialah satu salinan projek yang sedang berjalan, biasanya pembangunan dan produksi. Persekitaran ialah tempat orang, aplikasi, kunci dan seting berada.

Ruang kerja · Acme Ltd

Projek · Web

  • development · wise-otter-42
  • production · acme

Projek · Portal rakan kongsi

  • development · calm-heron-17
  • production · acme-partners
Setiap persekitaran ialah pengeluar tersendiri, dengan pengguna, kunci dan Lobby tersendiri.

Persekitaran tidak berkongsi apa-apa yang penting. Setiap satu mempunyai skema Postgres tersendiri, kunci tandatangan tersendiri, dan rahsia tersendiri yang dimeterai di bawah kunci datanya sendiri. Orang yang mendaftar dalam pembangunan tidak wujud dalam produksi, dan token daripada satu persekitaran tidak boleh sekali-kali disahkan dengan kunci persekitaran yang satu lagi.

Pentadbir ruang kerja boleh memadamkan projek dari hujung halaman Gambaran keseluruhan projek itu, selepas menaip namanya. Setiap persekitaran di dalamnya hilang serentak: orang, aplikasi, kunci dan setingnya, serta setiap sesi dan token yang pernah diberikannya. Alamatnya berhenti menjawab dan tidak akan diberikan lagi, jadi aplikasi yang masih mempercayai salah satunya tidak boleh diperdaya oleh projek orang lain.

Pengeluar

Setiap persekitaran ialah pengeluar (issuer) OpenID Connect tersendiri, di hosnya sendiri pada domain penyewa:

Pengeluar
https://<handle>.usherid.com
  • Persekitaran produksi mempunyai handle yang anda pilih: 3 hingga 32 huruf kecil, digit dan tanda sempang tunggal, seperti nama syarikat anda. Handle yang pernah digunakan tidak akan diberikan lagi.
  • Persekitaran pembangunan mendapat handle rawak, seperti wise-otter-42, yang tidak akan disangka jenama oleh sesiapa.

Pengeluar ditetapkan apabila persekitaran dicipta, kerana setiap token yang ditandatanganinya menamakannya dalam iss, dan setiap aplikasi yang mempercayainya menyemak nilai itu.

Domain penyewa ialah domain boleh daftar yang berbeza daripada domain Usher sendiri (usheridentity.com), jadi halaman daftar masuk pelanggan tidak pernah berada dalam laman yang sama dengan Usher Console, dan kuki adalah hos sahaja: pelayar menghantar kuki sesebuah persekitaran kepada persekitaran itu sahaja.

Lobby

Lobby ialah halaman daftar masuk yang dihoskan oleh setiap persekitaran di pengeluarnya. Aplikasi anda menghantar orang ke sana; ia mendaftar masuk mereka dan menghantar mereka kembali.

  • Ia sentiasa menamakan aplikasi yang dituju oleh orang itu, dalam cip “Meneruskan ke”.
  • Ia hanya menawarkan kaedah yang dibenarkan oleh persekitaran itu: kunci laluan, kod melalui e-mel, pautan ajaib, akaun sosial (Google, GitHub, Microsoft, Apple) dan kata laluan.
  • Ia boleh mewajibkan faktor kedua: aplikasi pengesah (dengan kod sandaran) atau kunci laluan.
  • Ia boleh dibuka kepada sesiapa sahaja, atau dihadkan kepada senarai tetamu alamat dan domain.

Rupanya sama tidak kira produk mana yang menghantar orang itu. Ini disengajakan: orang belajar rupa Lobby yang sebenar, dan perasan apabila sesebuah halaman bukan Lobby.

Akaun Usher

Kebanyakan persekitaran mempunyai pengguna sendiri. Akaun Usher berbeza: satu akaun yang mendaftar masuk seseorang ke setiap aplikasi yang menawarkan Teruskan dengan Usher. Orang mengurus akaun mereka di account.usheridentity.com.

Token dan jangka hayat

TokenLalaiBoleh ditetapkan kepadaKegunaannya
Kod kebenaran5 minitTetapDitukar sekali dengan token. Sekali guna.
Token ID10 minit1 hingga 60 minitMemberitahu aplikasi anda siapa yang daftar masuk. Bukan untuk memanggil API.
Token akses10 minit1 hingga 60 minitDihantar ke API anda, yang menyemaknya.
Token muat semula30 hari1 hingga 90 hariMendapatkan token akses baharu. Berputar pada setiap penggunaan. Memerlukan offline_access.
Token akses mesin15 minit1 hingga 60 minitUntuk client_credentials: pelayan tanpa orang di sebaliknya.
Kod melalui e-mel, pautan ajaib10 minitTetapSatu daftar masuk. Kod membenarkan tiga cubaan.

Sesi dalam Lobby juga mempunyai jangka hayat: sesi tamat selepas 7 hari tanpa digunakan (1 hingga 30), dan selepas 30 hari keseluruhannya (1 hingga 90). Menukar sesuatu yang sensitif, seperti alamat e-mel, memerlukan daftar masuk dalam 10 minit terakhir.

Kunci tandatangan

Token ditandatangani dengan RS256 secara lalai; sesebuah persekitaran boleh menggunakan ES256 atau EdDSA sebaliknya. Kunci awam diterbitkan di jwks_uri persekitaran itu, jadi pustaka anda mengambilnya, dan mengambil kunci baharu apabila kunci diputar.

Skop

SkopApa yang diterima oleh aplikasi anda
openidWajib. Token ID dengan sub orang itu.
profileNama dan gambar mereka.
emailAlamat e-mel mereka, dan sama ada ia telah disahkan.
offline_accessToken muat semula, supaya mereka kekal didaftar masuk.