Kami mencoba mengevaluasi Keycloak sebagai solusi SSO, dan terlihat bagus dalam banyak hal, tetapi dokumentasinya sangat kurang dalam dasar-dasarnya.
Untuk penginstalan Keycloak tertentu di http://localhost:8080/
realm test
, apa itu OAuth2 Authorization Endpoint , OAuth2 Token Endpoint, dan OpenID Connect UserInfo Endpoint ?
Kami tidak tertarik menggunakan pustaka klien Keycloak sendiri, kami ingin menggunakan pustaka klien standar OAuth2 / OpenID Connect, karena aplikasi klien yang menggunakan server keycloak akan ditulis dalam berbagai bahasa (PHP, Ruby, Node, Java, C # , Angular). Oleh karena itu, contoh yang menggunakan klien Keycloak tidak berguna bagi kami.
Jawaban:
Untuk Keycloak 1.2 informasi di atas dapat diambil melalui url
Misalnya, jika nama realme adalah demo :
Contoh keluaran dari url di atas:
Informasi ditemukan di https://issues.jboss.org/browse/KEYCLOAK-571
Catatan: Anda mungkin perlu menambahkan klien Anda ke daftar URI Pengalihan Valid
sumber
Dengan versi 1.9.3. Final, Keycloak memiliki sejumlah titik akhir OpenID yang tersedia. Ini dapat ditemukan di
/auth/realms/{realm}/.well-known/openid-configuration
. Dengan asumsi ranah Anda diberi namademo
, titik akhir itu akan menghasilkan respons JSON yang serupa dengan ini.Sejauh yang saya temukan, titik akhir ini mengimplementasikan spesifikasi Oauth 2.0 .
sumber
Sebenarnya tautan ke
.well-know
ada di tab pertama pengaturan ranah Anda - tetapi tautan tidak terlihat seperti tautan, tetapi sebagai nilai kotak teks ... desain ui yang buruk. Screenshot Tab Umum Realmsumber
Setelah banyak menggali, kami dapat mengikis info lebih banyak atau lebih sedikit (terutama dari lib klien JS Keycloak sendiri):
/auth/realms/{realm}/tokens/login
/auth/realms/{realm}/tokens/access/codes
Sedangkan untuk OpenID Connect UserInfo , saat ini (1.1.0.Final) Keycloak tidak mengimplementasikan endpoint ini, jadi tidak sepenuhnya sesuai dengan OpenID Connect. Namun demikian, sudah ada patch yang menambahkan bahwa saat tulisan ini dibuat harus dimasukkan ke dalam 1.2.x.
Tapi - Ironisnya Keycloak mengirim kembali
id_token
bersama dengan token akses. Baikid_token
danaccess_token
yang JWTs ditandatangani , dan kunci-kunci token adalah kunci OpenID Connect ini, yaitu:Jadi, meskipun Keycloak 1.1.x tidak sepenuhnya kompatibel dengan OpenID Connect, ia "berbicara" dalam bahasa OpenID Connect.
sumber
Dalam versi 1.9.0 json dengan semua titik akhir ada di alamat / auth / realms / {realm}
sumber
Anda juga dapat melihat informasi ini dengan masuk ke Konsol Admin -> Pengaturan Realm -> Mengklik hyperlink di bidang Titik Akhir.
sumber
versi keycloak: 4.6.0
sumber
FQDN / auth / realms / {realm_name} /. Well-known / openid-configuration
Anda akan melihat semuanya di sini, ditambah jika penyedia identitas juga Keycloak, maka memberi makan URL ini akan mengatur semuanya juga benar dengan penyedia identitas lain jika mereka mendukung dan mereka sudah menanganinya
sumber
Tautan berikut Menyediakan dokumen JSON yang menjelaskan metadata tentang Keycloak
Informasi berikut dilaporkan dengan Keycloak 6.0.1 untuk
master
realmsumber