Keycloak PUT-request mengembalikan 401 (tidak sah)
Saya menggunakan tukang pos dan saya sudah mencoba memperbarui profil pengguna melalui http: // localhost: 8180 / auth / admin / realms / demo / users / {userID} tetapi saya menerima 401
tanggapan.
Prosedur yang saya gunakan:
Meminta dan menerima token admin melalui http: // localhost: 8180 / auth / realms / master / protocol / openid-connect / token
Menambahkan token untuk meminta header dengan cara yang sesuai yaitu Otorisasi: Bearer {access_token}
Mengirim permintaan Put dengan jenis konten Json dan info pengguna sebagai body melalui http: // localhost: 8180 / auth / admin / realms / demo / users / {userID}.
Sayangnya, saya menerima tanggapan 401 berturut-turut.
Permintaan pertama:
-Badan (x-www-form-urlencoded)
client_id : admin_cli
username: ...
password: ...
grant_type: password
client_secret: ...
-Untuk http://localhost:8180/auth/realms/master/protocol/openid-connect/token
Permintaan kedua:
-Header -> Otorisasi: Pembawa ...
-Badan (JSON)
"email": "[email protected]",
"firstName": "divad",
"lastName": "d"
-Untuk http://localhost:8180/auth/admin/realms/demo/users/{userID}
Jawaban
Dalam panggilan pertama Anda, david
pengguna harus menjadi salah satu pengguna dengan hak istimewa serupa admin . Jika tidak, seseorang mendapat respons kesalahan resmi untuk tindakan yang david
tidak memiliki hak istimewa untuk dilakukan oleh pengguna. Lihat utas SO ini untuk memeriksa cara menetapkan hak istimewa mirip admin kepada pengguna.
Untuk saat ini mari kita meminta token atas nama pengguna admin master sebagai berikut:
dari respon tubuh ekstrak access_token
.
Untuk panggilan kedua pertama, salin dan tempel access_token
ke Authorization > Type Bearer Token
:
Pada panggilan kedua, bukan
http://localhost:8180/auth/admin/realms/demo/users/{userID}
Anda perlu mengganti userID
parameter dengan pengguna aktual userID
yang Anda perbarui. Untuk mendapatkan userID
Anda dapat memanggil titik akhir berikut:
GET <YOUR_KEYCLOAK_DOMAIN>/auth/admin/realms/<YOUR_REALM>/users/?username=<THE_USERNAME>
atau Anda dapat menyalin dan menempel dari Konsol Admin Keycloak, di bawah tab pengguna:
Jadi di Postman akan terlihat seperti: