Keycloak PUT-isteği 401 döndürür (yetkisiz)
Postacı kullanıyorum ve bir kullanıcının profilini http: // localhost: 8180 / auth / admin / realms / demo / users / {userID} aracılığıyla güncellemeyi denedim ancak bir 401
yanıt aldım .
Kullandığım prosedür:
Http: // localhost: 8180 / auth / realms / master / protocol / openid-connect / token aracılığıyla yönetici jetonu istendi ve alındı
Başlıklar için uygun yolu istemek için jeton eklendi, yani Yetkilendirme: Taşıyıcı {access_token}
Http: // localhost: 8180 / auth / admin / realms / demo / users / {userID} aracılığıyla Json içerik türü ve kullanıcının bilgilerini gövde olarak içeren Put isteği gönderildi.
Ne yazık ki, arka arkaya 401 yanıtları aldım.
İlk istek:
-Body (x-www-form-urlencoded)
client_id : admin_cli
username: ...
password: ...
grant_type: password
client_secret: ...
-Kime http://localhost:8180/auth/realms/master/protocol/openid-connect/token
İkinci istek:
-Header -> Yetkilendirme: Taşıyıcı ...
Gövde (JSON)
"email": "[email protected]",
"firstName": "divad",
"lastName": "d"
-Kime http://localhost:8180/auth/admin/realms/demo/users/{userID}
Yanıtlar
İlk aramanızda, david
kullanıcının yönetici gibi ayrıcalıklara sahip olması gerekir . Aksi takdirde david
kullanıcının gerçekleştirme yetkisine sahip olmadığı işlemler için yetkili hata cevabı alınır . Bir kullanıcıya yönetici ayrıcalıklarının nasıl atanacağını kontrol etmek için bu SO başlığına bir göz atın .
Şimdilik, ana yönetici kullanıcı adına aşağıdaki gibi bir belirteç talep edelim :
vücut yanıtından access_token
.
Birinci, ikinci çağrı için, kopyalama ve yapıştırma access_token
için Authorization > Type Bearer Token
:
İkinci görüşmede yerine
http://localhost:8180/auth/admin/realms/demo/users/{userID}
userID
parametreyi userID
güncellemekte olduğunuz kullanıcının gerçekiyle değiştirmeniz gerekir . Almak için userID
aşağıdaki uç noktayı arayabilirsiniz:
GET <YOUR_KEYCLOAK_DOMAIN>/auth/admin/realms/<YOUR_REALM>/users/?username=<THE_USERNAME>
veya Keycloak Admin Console'dan kullanıcılar sekmesi altında kopyalayıp yapıştırabilirsiniz:
Yani Postacı'da şöyle görünür: