<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: /admin/v1/users  giving a 40103 in DUO Security in APIs</title>
    <link>https://community.cisco.com/t5/apis/admin-v1-users-giving-a-40103-in-duo-security/m-p/4929718#M718</link>
    <description>&lt;P&gt;Hi &lt;a href="https://community.cisco.com/t5/user/viewprofilepage/user-id/878627"&gt;@DuoKristina&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks you very much for your reply.&lt;/P&gt;&lt;P&gt;I have also added this third line same things happen.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Wed, 27 Sep 2023 01:39:43 +0600&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;POST&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;api-d221a358.duosecurity.com&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;/admin/v1/users&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;email=enamul.haque%40gmail.com&amp;amp;username=ehaque&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Here is the code..&lt;/P&gt;&lt;PRE&gt;String canonicalRequest = timestamp + &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;" &lt;/SPAN&gt;+ httpMethod + &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;" &lt;/SPAN&gt;+ host+&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;+ requestPath +  &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;" &lt;/SPAN&gt;+ queryString&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt; System.&lt;SPAN&gt;out&lt;/SPAN&gt;.println(&lt;SPAN&gt;"canonicalRequest = " &lt;/SPAN&gt;+ canonicalRequest)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt; String signature = &lt;SPAN&gt;sign1&lt;/SPAN&gt;(canonicalRequest&lt;SPAN&gt;, &lt;/SPAN&gt;skey)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;System.&lt;SPAN&gt;out&lt;/SPAN&gt;.println(&lt;SPAN&gt;"signature = " &lt;/SPAN&gt;+ signature)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt; String url = &lt;SPAN&gt;"https://" &lt;/SPAN&gt;+ host + requestPath+&lt;SPAN&gt;"?"&lt;/SPAN&gt;+queryString&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt; System.&lt;SPAN&gt;out&lt;/SPAN&gt;.println(&lt;SPAN&gt;"url = " &lt;/SPAN&gt;+ url)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt; String authString =&lt;SPAN&gt;"Basic " &lt;/SPAN&gt;+ Base64.&lt;SPAN&gt;getEncoder&lt;/SPAN&gt;().encodeToString((ikey + &lt;SPAN&gt;":" &lt;/SPAN&gt;+ signature).getBytes())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt; System.&lt;SPAN&gt;out&lt;/SPAN&gt;.println(&lt;SPAN&gt;"authString = " &lt;/SPAN&gt;+ authString)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt; HttpClient httpClient = HttpClients.&lt;SPAN&gt;createDefault&lt;/SPAN&gt;()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt; HttpPost httpPost = &lt;SPAN&gt;new &lt;/SPAN&gt;HttpPost(url)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt; httpPost.setHeader(&lt;SPAN&gt;"Authorization"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;authString)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt; httpPost.setHeader(&lt;SPAN&gt;"Date"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;timestamp)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt; httpPost.setHeader(&lt;SPAN&gt;"Host"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;host)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt; httpPost.setHeader(&lt;SPAN&gt;"Content-Type"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"application/x-www-form-urlencoded"&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt; httpPost.setEntity(&lt;SPAN&gt;new &lt;/SPAN&gt;StringEntity(&lt;SPAN&gt;canonJSONBody&lt;/SPAN&gt;()))&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt; &lt;SPAN&gt;// Make the request&lt;BR /&gt;&lt;/SPAN&gt; HttpResponse response = httpClient.execute(httpPost)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt; HttpEntity entity = response.getEntity()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt; String responseContent = entity != &lt;SPAN&gt;null &lt;/SPAN&gt;? EntityUtils.&lt;SPAN&gt;toString&lt;/SPAN&gt;(entity) : &lt;SPAN&gt;""&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 26 Sep 2023 19:44:49 GMT</pubDate>
    <dc:creator>enamul-haque</dc:creator>
    <dc:date>2023-09-26T19:44:49Z</dc:date>
    <item>
      <title>/admin/v1/users  giving a 40103 in DUO Security</title>
      <link>https://community.cisco.com/t5/apis/admin-v1-users-giving-a-40103-in-duo-security/m-p/4929587#M716</link>
      <description>&lt;P&gt;Hello Sir,&lt;/P&gt;&lt;P&gt;I am trying to create using&amp;nbsp; /admin/v1/users it shows {&lt;BR /&gt;"code":40103,&lt;BR /&gt;"message":"Invalid signature in request credentials",&lt;BR /&gt;"stat":"FAIL"&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;The canonical string I’m generating for use in the HMAC :&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Tue, 26 Sep 2023 21:52:23 +0600&lt;BR /&gt;POST&lt;BR /&gt;/admin/v1/users&lt;BR /&gt;email=abc%40example.com&amp;amp;username=newuser&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;HMAC-SHA1 hex String:&lt;/STRONG&gt;&lt;BR /&gt;be16c29b840f0618bb947d7e2574f892b82889b7&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;And the endpoint I’m hitting ends up looking like this:&lt;/STRONG&gt;&lt;BR /&gt;&lt;A href="https://api-d221a358.duosecurity.com/admin/v1/users?email=abc%40example.com&amp;amp;username=newuser" target="_blank"&gt;https://api-d221a358.duosecurity.com/admin/v1/users?email=abc%40example.com&amp;amp;username=newuser&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Here is my java code:&lt;/P&gt;&lt;P&gt;public class DuoCreateUsers {&lt;/P&gt;&lt;P&gt;private static SortedMap&amp;lt;String, Object&amp;gt; params = new TreeMap&amp;lt;String, Object&amp;gt;();&lt;/P&gt;&lt;P&gt;public static void main(String[] args) throws IOException {&lt;BR /&gt;String ikey = "x";&lt;BR /&gt;String skey = "x";&lt;BR /&gt;String host = "x";&lt;BR /&gt;String httpMethod = "POST";&lt;BR /&gt;String requestPath = "/admin/v1/users";&lt;BR /&gt;String timestamp = OffsetDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME);&lt;/P&gt;&lt;P&gt;String username = "newuser";&lt;BR /&gt;String email = "abc@example.com";&lt;/P&gt;&lt;P&gt;params.put("username",username);&lt;BR /&gt;params.put("email",email);&lt;/P&gt;&lt;P&gt;String queryString = canonQueryString();&lt;/P&gt;&lt;P&gt;String canonicalRequest = timestamp + "\n" + httpMethod + "\n" + requestPath + "\n" + queryString;&lt;BR /&gt;System.out.println("canonicalRequest = " + canonicalRequest);&lt;/P&gt;&lt;P&gt;String signature = sign1(canonicalRequest, skey);&lt;BR /&gt;// System.out.println("signature = " + signature);&lt;/P&gt;&lt;P&gt;String url = "https://" + host + requestPath+"?"+queryString;&lt;BR /&gt;System.out.println("url = " + url);&lt;/P&gt;&lt;P&gt;HttpClient httpClient = HttpClients.createDefault();&lt;BR /&gt;HttpPost httpPost = new HttpPost(url);&lt;BR /&gt;httpPost.setHeader("Date", timestamp);&lt;BR /&gt;httpPost.setHeader("Authorization", "Basic " + Base64.getEncoder().encodeToString((ikey + ":" + signature).getBytes()));&lt;BR /&gt;httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;httpPost.setEntity(new StringEntity(params.toString()));&lt;BR /&gt;// Make the request&lt;BR /&gt;HttpResponse response = httpClient.execute(httpPost);&lt;BR /&gt;HttpEntity entity = response.getEntity();&lt;BR /&gt;String responseContent = entity != null ? EntityUtils.toString(entity) : "";&lt;/P&gt;&lt;P&gt;String rs = "Response Status Code: " + response.getStatusLine().getStatusCode() + "\nResponse Content:\n" + responseContent;&lt;BR /&gt;System.out.println("rs = " + rs);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;public static String canonQueryString()&lt;BR /&gt;throws UnsupportedEncodingException {&lt;BR /&gt;ArrayList&amp;lt;String&amp;gt; args = new ArrayList&amp;lt;String&amp;gt;();&lt;/P&gt;&lt;P&gt;for (String key : params.keySet()) {&lt;BR /&gt;String name = URLEncoder&lt;BR /&gt;.encode(key, "UTF-8")&lt;BR /&gt;.replace("+", "%20")&lt;BR /&gt;.replace("*", "%2A")&lt;BR /&gt;.replace("%7E", "~");&lt;BR /&gt;String value = URLEncoder&lt;BR /&gt;.encode(params.get(key).toString(), "UTF-8")&lt;BR /&gt;.replace("+", "%20")&lt;BR /&gt;.replace("*", "%2A")&lt;BR /&gt;.replace("%7E", "~");&lt;BR /&gt;args.add(name + "=" + value);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;return com.duosecurity.client.Util.join(args.toArray(), "&amp;amp;");&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;private static String sign1(String data, String secretKey) {&lt;BR /&gt;try {&lt;/P&gt;&lt;P&gt;// Create an HMAC-SHA1 key from the secret key&lt;BR /&gt;SecretKeySpec secretKeySpec = new SecretKeySpec(secretKey.getBytes(StandardCharsets.UTF_8), "HmacSHA1");&lt;/P&gt;&lt;P&gt;// Initialize the HMAC-SHA1 algorithm&lt;BR /&gt;Mac mac = Mac.getInstance("HmacSHA1");&lt;BR /&gt;mac.init(secretKeySpec);&lt;/P&gt;&lt;P&gt;// Calculate the HMAC-SHA1 hash&lt;BR /&gt;byte[] hmacSha1Bytes = mac.doFinal(data.getBytes(StandardCharsets.UTF_8));&lt;/P&gt;&lt;P&gt;// Convert the result to a hexadecimal string&lt;BR /&gt;String hmacSha1Hex = bytesToHex(hmacSha1Bytes);&lt;/P&gt;&lt;P&gt;// Print the HMAC-SHA1 hash&lt;BR /&gt;System.out.println("HMAC-SHA1: " + hmacSha1Hex);&lt;/P&gt;&lt;P&gt;return hmacSha1Hex;&lt;BR /&gt;} catch (NoSuchAlgorithmException | InvalidKeyException e) {&lt;BR /&gt;e.printStackTrace();&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;return null;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;// Helper method to convert bytes to a hexadecimal string&lt;BR /&gt;private static String bytesToHex(byte[] bytes) {&lt;BR /&gt;StringBuilder hexStringBuilder = new StringBuilder();&lt;BR /&gt;for (byte b : bytes) {&lt;BR /&gt;hexStringBuilder.append(String.format("%02x", b));&lt;BR /&gt;}&lt;BR /&gt;return hexStringBuilder.toString();&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Please help what is the wrong of my code?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 26 Sep 2023 15:59:54 GMT</pubDate>
      <guid>https://community.cisco.com/t5/apis/admin-v1-users-giving-a-40103-in-duo-security/m-p/4929587#M716</guid>
      <dc:creator>enamul-haque</dc:creator>
      <dc:date>2023-09-26T15:59:54Z</dc:date>
    </item>
    <item>
      <title>Re: /admin/v1/users  giving a 40103 in DUO Security</title>
      <link>https://community.cisco.com/t5/apis/admin-v1-users-giving-a-40103-in-duo-security/m-p/4929710#M717</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;
&lt;P&gt;&lt;STRONG&gt;The canonical string I’m generating for use in the HMAC :&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Tue, 26 Sep 2023 21:52:23 +0600&lt;BR /&gt;POST&lt;BR /&gt;/admin/v1/users&lt;BR /&gt;email=abc%40example.com&amp;amp;username=newuser&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;are you leaving out the third line of five which is your API hostname? &lt;A href="https://duo.com/docs/adminapi#authentication" target="_self"&gt;From the Admin API doc example&lt;/A&gt;:&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DuoKristina_0-1695756232712.png" style="width: 400px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/198271i9C9C0C104DB52C91/image-size/medium?v=v2&amp;amp;px=400" role="button" title="DuoKristina_0-1695756232712.png" alt="DuoKristina_0-1695756232712.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 26 Sep 2023 19:26:47 GMT</pubDate>
      <guid>https://community.cisco.com/t5/apis/admin-v1-users-giving-a-40103-in-duo-security/m-p/4929710#M717</guid>
      <dc:creator>DuoKristina</dc:creator>
      <dc:date>2023-09-26T19:26:47Z</dc:date>
    </item>
    <item>
      <title>Re: /admin/v1/users  giving a 40103 in DUO Security</title>
      <link>https://community.cisco.com/t5/apis/admin-v1-users-giving-a-40103-in-duo-security/m-p/4929718#M718</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.cisco.com/t5/user/viewprofilepage/user-id/878627"&gt;@DuoKristina&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks you very much for your reply.&lt;/P&gt;&lt;P&gt;I have also added this third line same things happen.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Wed, 27 Sep 2023 01:39:43 +0600&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;POST&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;api-d221a358.duosecurity.com&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;/admin/v1/users&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;email=enamul.haque%40gmail.com&amp;amp;username=ehaque&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Here is the code..&lt;/P&gt;&lt;PRE&gt;String canonicalRequest = timestamp + &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;" &lt;/SPAN&gt;+ httpMethod + &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;" &lt;/SPAN&gt;+ host+&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;+ requestPath +  &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;" &lt;/SPAN&gt;+ queryString&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt; System.&lt;SPAN&gt;out&lt;/SPAN&gt;.println(&lt;SPAN&gt;"canonicalRequest = " &lt;/SPAN&gt;+ canonicalRequest)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt; String signature = &lt;SPAN&gt;sign1&lt;/SPAN&gt;(canonicalRequest&lt;SPAN&gt;, &lt;/SPAN&gt;skey)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;System.&lt;SPAN&gt;out&lt;/SPAN&gt;.println(&lt;SPAN&gt;"signature = " &lt;/SPAN&gt;+ signature)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt; String url = &lt;SPAN&gt;"https://" &lt;/SPAN&gt;+ host + requestPath+&lt;SPAN&gt;"?"&lt;/SPAN&gt;+queryString&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt; System.&lt;SPAN&gt;out&lt;/SPAN&gt;.println(&lt;SPAN&gt;"url = " &lt;/SPAN&gt;+ url)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt; String authString =&lt;SPAN&gt;"Basic " &lt;/SPAN&gt;+ Base64.&lt;SPAN&gt;getEncoder&lt;/SPAN&gt;().encodeToString((ikey + &lt;SPAN&gt;":" &lt;/SPAN&gt;+ signature).getBytes())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt; System.&lt;SPAN&gt;out&lt;/SPAN&gt;.println(&lt;SPAN&gt;"authString = " &lt;/SPAN&gt;+ authString)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt; HttpClient httpClient = HttpClients.&lt;SPAN&gt;createDefault&lt;/SPAN&gt;()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt; HttpPost httpPost = &lt;SPAN&gt;new &lt;/SPAN&gt;HttpPost(url)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt; httpPost.setHeader(&lt;SPAN&gt;"Authorization"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;authString)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt; httpPost.setHeader(&lt;SPAN&gt;"Date"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;timestamp)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt; httpPost.setHeader(&lt;SPAN&gt;"Host"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;host)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt; httpPost.setHeader(&lt;SPAN&gt;"Content-Type"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"application/x-www-form-urlencoded"&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt; httpPost.setEntity(&lt;SPAN&gt;new &lt;/SPAN&gt;StringEntity(&lt;SPAN&gt;canonJSONBody&lt;/SPAN&gt;()))&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt; &lt;SPAN&gt;// Make the request&lt;BR /&gt;&lt;/SPAN&gt; HttpResponse response = httpClient.execute(httpPost)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt; HttpEntity entity = response.getEntity()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt; String responseContent = entity != &lt;SPAN&gt;null &lt;/SPAN&gt;? EntityUtils.&lt;SPAN&gt;toString&lt;/SPAN&gt;(entity) : &lt;SPAN&gt;""&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 26 Sep 2023 19:44:49 GMT</pubDate>
      <guid>https://community.cisco.com/t5/apis/admin-v1-users-giving-a-40103-in-duo-security/m-p/4929718#M718</guid>
      <dc:creator>enamul-haque</dc:creator>
      <dc:date>2023-09-26T19:44:49Z</dc:date>
    </item>
    <item>
      <title>Re: /admin/v1/users  giving a 40103 in DUO Security</title>
      <link>https://community.cisco.com/t5/apis/admin-v1-users-giving-a-40103-in-duo-security/m-p/4929734#M719</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.cisco.com/t5/user/viewprofilepage/user-id/878627"&gt;@DuoKristina&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have tried many ways. But every way shows Invalid signature.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Is it right way which I did below?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;genetateSignature(canonicalString, skey):&lt;/P&gt;&lt;P&gt;HMAC-SHA1 Key (genetateSignature): afffa7f9cb019b4d9eceacd3d16d7afe4461d028&lt;BR /&gt;signature b4encode of&amp;nbsp;HMAC-SHA1 Key = YWZmZmE3ZjljYjAxOWI0ZDllY2VhY2QzZDE2ZDdhZmU0NDYxZDAyOA==&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Authorization heraders:&lt;/STRONG&gt;&lt;BR /&gt;String authString ="Basic " + Base64.getEncoder().encodeToString((ikey + ":" + signature).getBytes());&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Header Request:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;httpPost.setHeader("Authorization", authString);&lt;BR /&gt;httpPost.setHeader("Date", timestamp);&lt;BR /&gt;httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 26 Sep 2023 20:16:18 GMT</pubDate>
      <guid>https://community.cisco.com/t5/apis/admin-v1-users-giving-a-40103-in-duo-security/m-p/4929734#M719</guid>
      <dc:creator>enamul-haque</dc:creator>
      <dc:date>2023-09-26T20:16:18Z</dc:date>
    </item>
    <item>
      <title>Re: /admin/v1/users  giving a 40103 in DUO Security</title>
      <link>https://community.cisco.com/t5/apis/admin-v1-users-giving-a-40103-in-duo-security/m-p/4929763#M721</link>
      <description>&lt;P&gt;Oh, I see you are the same person from the similar earlier post. Your last response to your separate, earlier post was removed for your protection because you accidentally posted what looked like a valid ikey and skey in your last response. Be sure to scrub any of your Duo account's details from your posts to the community!&lt;BR /&gt;&lt;BR /&gt;I did get a chance to see in the other thread that even with our Java API client you still received the 40103. This is a weird thought, but I wonder if the issue is that you are already URL encoding the param and then our client also encodes them as well?&lt;/P&gt;</description>
      <pubDate>Tue, 26 Sep 2023 22:14:30 GMT</pubDate>
      <guid>https://community.cisco.com/t5/apis/admin-v1-users-giving-a-40103-in-duo-security/m-p/4929763#M721</guid>
      <dc:creator>DuoKristina</dc:creator>
      <dc:date>2023-09-26T22:14:30Z</dc:date>
    </item>
  </channel>
</rss>

