कीकलोक पुत-अनुरोध 401 (अनधिकृत) लौटाता है

Jan 21 2021

मैं पोस्टमैन का उपयोग कर रहा हूं और मैंने http: // localhost: 8180 / परिस्थिति / व्यवस्थापक / स्थानों / डेमो / उपयोगकर्ताओं / {userID} के माध्यम से उपयोगकर्ता की प्रोफ़ाइल अपडेट करने की कोशिश की है, लेकिन मुझे एक 401प्रतिक्रिया मिली।

प्रक्रिया मैं इस्तेमाल किया:

  • अनुरोधित और प्राप्त टोकन टोकन http: // localhost के माध्यम से: 8180 / स्थिति / क्षेत्र / मास्टर / प्रोटोकॉल / ओपन-कनेक्ट / टोकन

  • उचित तरीके से हेडर का अनुरोध करने के लिए टोकन जोड़ा गया अर्थात प्राधिकरण: बियरर {access_token}

  • भेजे गए पुट अनुरोध के साथ JSON सामग्री प्रकार और उपयोगकर्ता की जानकारी http: // localhost: 8180 / परिस्थिति / व्यवस्थापक / स्थानों / डेमो / उपयोगकर्ताओं / {userID} के माध्यम से।

दुर्भाग्य से, मुझे बैक-टू-बैक 401 प्रतिक्रियाएं मिली हैं।

पहला अनुरोध:

-बॉडी (x-www-form-urlencoded)

client_id : admin_cli
username: ...
password: ...
grant_type: password
client_secret: ...

-सेवा http://localhost:8180/auth/realms/master/protocol/openid-connect/token

दूसरा निवेदन:

-हेडर -> प्राधिकरण: बियरर ...

-बॉडी (JSON)

"email": "[email protected]",
"firstName": "divad",
"lastName": "d"

-सेवा http://localhost:8180/auth/admin/realms/demo/users/{userID}

जवाब

1 dreamcrash Jan 22 2021 at 03:58

आपके पहले कॉल में, davidउपयोगकर्ता को व्यवस्थापक-समान विशेषाधिकारों के साथ एक होना चाहिए । अन्यथा, किसी को उन कार्यों के लिए एक अधिकृत त्रुटि प्रतिक्रिया मिलती है जो davidउपयोगकर्ता के पास प्रदर्शन करने के लिए विशेषाधिकार नहीं है। उपयोगकर्ता को व्यवस्थापक-समान विशेषाधिकार कैसे असाइन करें यह जाँचने के लिए इस SO थ्रेड पर एक नज़र डालें ।

अभी के लिए हम मास्टर एडमिन यूजर की ओर से टोकन के लिए अनुरोध करते हैं :

शरीर की प्रतिक्रिया से अर्क access_token

दूसरे कॉल के लिए पहले, कॉपी करें और इसे पेस्ट access_tokenकरें Authorization > Type Bearer Token:

के बजाय दूसरी कॉल पर

http://localhost:8180/auth/admin/realms/demo/users/{userID} 

आपको उस उपयोगकर्ता userIDके वास्तविक userIDके साथ पैरामीटर को बदलना होगा जिसे आप अपडेट कर रहे हैं। प्राप्त करने के लिए userIDआप निम्नलिखित बिंदु को कॉल कर सकते हैं:

GET <YOUR_KEYCLOAK_DOMAIN>/auth/admin/realms/<YOUR_REALM>/users/?username=<THE_USERNAME>

या आप टैब उपयोगकर्ताओं के तहत कीक्लॉक एडमिन कंसोल से कॉपी और पेस्ट कर सकते हैं:

तो पोस्टमैन में ऐसा दिखेगा: