<?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: Duo Admin API - admin/v2/logs/authentication in APIs</title>
    <link>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883427#M503</link>
    <description>&lt;DIV class="duo-migrated-content"&gt;&lt;P&gt;Thanks! I’ll get someone who knows Ruby better than me (which is really anyone who knows Ruby at all) to take a look.&lt;/P&gt;&lt;/DIV&gt;</description>
    <pubDate>Wed, 16 Jan 2019 21:52:33 GMT</pubDate>
    <dc:creator>DuoKristina</dc:creator>
    <dc:date>2019-01-16T21:52:33Z</dc:date>
    <item>
      <title>Duo Admin API - admin/v2/logs/authentication</title>
      <link>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883419#M495</link>
      <description>&lt;DIV class="duo-migrated-content"&gt;&lt;P&gt;Has anyone use the V2 version of the Logs REST request: i.e. /admin/v2/logs/authentication&lt;/P&gt;
&lt;P&gt;The documentation around how to format the next_offset for this request is not detailed enough and there are no examples.&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Mon, 14 Jan 2019 23:38:52 GMT</pubDate>
      <guid>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883419#M495</guid>
      <dc:creator>Carl_Cherry</dc:creator>
      <dc:date>2019-01-14T23:38:52Z</dc:date>
    </item>
    <item>
      <title>Re: Duo Admin API - admin/v2/logs/authentication</title>
      <link>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883420#M496</link>
      <description>&lt;DIV class="duo-migrated-content"&gt;&lt;P&gt;Sorry about that. The paging for the auth logs is a bit different than the paging for other endpoints (described in the &lt;A href="https://duo.com/docs/adminapi#response-paging" rel="nofollow noopener"&gt;Response Paging&lt;/A&gt; section).&lt;/P&gt;
&lt;P&gt;The first &lt;CODE&gt;GET&lt;/CODE&gt; on the authentication logs will give you &lt;CODE&gt;next_offset&lt;/CODE&gt; information with two values, a timestamp and a log event transaction id (&lt;CODE&gt;txid&lt;/CODE&gt; in the event output).&lt;/P&gt;
&lt;P&gt;At the next API call, pass in &lt;EM&gt;both&lt;/EM&gt; the timestamp and ID information as &lt;CODE&gt;next_offset&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;Here are examples using the &lt;A href="https://github.com/duosecurity/duo_client_python" rel="nofollow noopener"&gt;Duo Python API client&lt;/A&gt;:&lt;/P&gt;
&lt;P&gt;My first authlogs request; I ask for five records:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class="lang-auto"&gt;kristina:duo_client_python kristina$ python -m duo_client.client --ikey $IKEY --skey $SKEY --host $HOST --path /admin/v2/logs/authentication mintime=1516045230000 maxtime=1547563184847 limit=5 --method GET
200 OK
{
    "response": {
        "authlogs": [
            {blah blah five records of info
                }
            }
        ], 
        "metadata": {
            "next_offset": [
                "1547486297000", 
                "5bea5c1e-682c-4f1d-b3f0-75fd31385bd5"
            ], 
            "total_objects": 2233
        }
    }, 
    "stat": "OK"
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The &lt;CODE&gt;next_offset&lt;/CODE&gt; values are &lt;CODE&gt;1547486297000&lt;/CODE&gt; (timestamp) and  &lt;CODE&gt;5bea5c1e-682c-4f1d-b3f0-75fd31385bd5&lt;/CODE&gt; (txid). So, I pass BOTH of those into my request for the next five records:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class="lang-auto"&gt;kristina:duo_client_python kristina$ python -m duo_client.client --ikey $IKEY --skey $SKEY --host $HOST --path /admin/v2/logs/authentication mintime=1516045230000 maxtime=1547563184847 limit=5 next_offset=1547486297000 next_offset=5bea5c1e-682c-4f1d-b3f0-75fd31385bd5 --method GET
200 OK
{
    "response": {
        "authlogs": [
            {blah blah blah five more records
                }
            }
        ], 
        "metadata": {
            "next_offset": [
                "1547475232000", 
                "7854c48b-ae46-45dd-a933-0c02699a9db7"
            ], 
            "total_objects": 2233
        }
    }, 
    "stat": "OK"
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;That response has new &lt;CODE&gt;next_offset&lt;/CODE&gt; values, which I pass into the next call, rinse, repeat.&lt;/P&gt;
&lt;P&gt;Hope that helps!&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 15 Jan 2019 15:01:22 GMT</pubDate>
      <guid>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883420#M496</guid>
      <dc:creator>DuoKristina</dc:creator>
      <dc:date>2019-01-15T15:01:22Z</dc:date>
    </item>
    <item>
      <title>Re: Duo Admin API - admin/v2/logs/authentication</title>
      <link>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883421#M497</link>
      <description>&lt;DIV class="duo-migrated-content"&gt;&lt;P&gt;Thanks for the info - the documentation for this request has “allow multiple” set to No. I would suggest reviewing this documentation for accuracy and adding a sample request.&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 15 Jan 2019 15:18:50 GMT</pubDate>
      <guid>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883421#M497</guid>
      <dc:creator>Carl_Cherry</dc:creator>
      <dc:date>2019-01-15T15:18:50Z</dc:date>
    </item>
    <item>
      <title>Re: Duo Admin API - admin/v2/logs/authentication</title>
      <link>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883422#M498</link>
      <description>&lt;DIV class="duo-migrated-content"&gt;&lt;P&gt;I wish we were using the Python library - unfortunately I’m locked into using the Ruby client.  From what I see the Ruby client does not handle duplicate parameters since it expects the params to be a hash object.&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 15 Jan 2019 21:31:54 GMT</pubDate>
      <guid>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883422#M498</guid>
      <dc:creator>Carl_Cherry</dc:creator>
      <dc:date>2019-01-15T21:31:54Z</dc:date>
    </item>
    <item>
      <title>Re: Duo Admin API - admin/v2/logs/authentication</title>
      <link>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883423#M499</link>
      <description>&lt;DIV class="duo-migrated-content"&gt;&lt;P&gt;To clarify, you mean the Duo API Ruby client from &lt;A href="https://github.com/duosecurity/duo_api_ruby" rel="nofollow noopener"&gt;https://github.com/duosecurity/duo_api_ruby&lt;/A&gt;?&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 16 Jan 2019 18:44:25 GMT</pubDate>
      <guid>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883423#M499</guid>
      <dc:creator>DuoKristina</dc:creator>
      <dc:date>2019-01-16T18:44:25Z</dc:date>
    </item>
    <item>
      <title>Re: Duo Admin API - admin/v2/logs/authentication</title>
      <link>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883424#M500</link>
      <description>&lt;DIV class="duo-migrated-content"&gt;&lt;P&gt;Yes - this is what we are using in our solution.&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 16 Jan 2019 18:56:13 GMT</pubDate>
      <guid>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883424#M500</guid>
      <dc:creator>Carl_Cherry</dc:creator>
      <dc:date>2019-01-16T18:56:13Z</dc:date>
    </item>
    <item>
      <title>Re: Duo Admin API - admin/v2/logs/authentication</title>
      <link>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883425#M501</link>
      <description>&lt;DIV class="duo-migrated-content"&gt;&lt;P&gt;I have modified my local copy and here is what I get now - on the second request - invalid signature. I have modified the logging so you can see the exact URI along with what is created as the “canon”&lt;/P&gt;
&lt;P&gt;Here are the logs from the request.  Now to be fair, the first request gives me 2 records and says that there are only 2 records - so perhaps I am supposed to stop at this point?  The documentation indicates that we should continue calling for more records as long as the metadata has next_offset values - so that is what I am doing.&lt;/P&gt;
&lt;H3&gt;First Request - success&lt;/H3&gt;
&lt;P&gt;Jan 16 19:22:55 cyclops-9218 cloudlogshipper[26859]: esduo: &lt;A href="https://api-50bd5424.duosecurity.com/admin/v2/logs/authentication?limit=100&amp;amp;maxtime=1547666575000&amp;amp;mintime=1531690822000&amp;amp;sort=ts%3Aasc" rel="nofollow noopener"&gt;https://■■■■/admin/v2/logs/authentication?limit=100&amp;amp;maxtime=1547666575000&amp;amp;mintime=1531690822000&amp;amp;sort=ts%3Aasc&lt;/A&gt;&lt;BR /&gt;
Jan 16 19:22:55 cyclops-9218 cloudlogshipper[26859]: esduo: sign the request&lt;BR /&gt;
Jan 16 19:22:55 cyclops-9218 cloudlogshipper[26859]: esduo: canon: Wed, 16 Jan 2019 19:22:55 +0000#012GET#&lt;A href="http://012api-50bd5424.duosecurity.com#012/admin/v2/logs/authentication#012limit=100&amp;amp;maxtime=1547666575000&amp;amp;mintime=1531690822000&amp;amp;sort=ts%3Aasc" rel="nofollow noopener"&gt;012■■■■#012/admin/v2/logs/authentication#012limit=100&amp;amp;maxtime=1547666575000&amp;amp;mintime=1531690822000&amp;amp;sort=ts%3Aasc&lt;/A&gt;&lt;BR /&gt;
Jan 16 19:22:59 cyclops-9218 cloudlogshipper[26859]: esduo: resp.code is 200, resp.body is {“response”: {“authlogs”: [{“access_device”: {“ip”: “72.219.164.28”, “location”: {“city”: “San Clemente”, “country”: “United States”, “state”: “California”}}, “application”: {“key”: “■■■■”, “name”: “portal”}, “auth_device”: {“ip”: null, “location”: {“city”: null, “country”: null, “state”: null}, “name”: “226-338-7323”}, “event_type”: “enrollment”, “factor”: “sms_passcode”, “reason”: null, “result”: “success”, “timestamp”: 1547242195, “txid”: “42c9b072-9016-423d-8759-5fc6abdcf88a”, “user”: {“key”: “■■■■”, “name”: “carl”}}, {“access_device”: {“ip”: “0.0.0.0”, “location”: {“city”: null, “country”: null, “state”: null}}, “application”: {“key”: “■■■■”, “name”: “macOS”}, “auth_device”: {“ip”: “72.219.164.28”, “location”: {“city”: “San Clemente”, “country”: “United States”, “state”: “California”}, “name”: “226-338-7323”}, “event_type”: “authentication”, “factor”: “duo_push”, “reason”: “user_approved”, “result”: “success”, “timestamp”: 1547242569, “txid”: “02dcf416-1f91-4ea7-a34b-8ca019ae5434”, “user”: {“key”: “■■■■”, “name”: “carl”}}], “metadata”: {“next_offset”: [“1547242569000”, “02dcf416-1f91-4ea7-a34b-8ca019ae5434”], “total_objects”: 2}}, “stat”: “OK”}&lt;/P&gt;
&lt;H3&gt;Second Request - failure&lt;/H3&gt;
&lt;P&gt;Jan 16 19:22:59 cyclops-9218 cloudlogshipper[26859]: esduo: &lt;A href="https://api-50bd5424.duosecurity.com/admin/v2/logs/authentication?limit=100&amp;amp;maxtime=1547666579000&amp;amp;mintime=1547666579000&amp;amp;next_offset=1547242569000&amp;amp;next_offset=02dcf416-1f91-4ea7-a34b-8ca019ae5434&amp;amp;sort=ts%3Aasc" rel="nofollow noopener"&gt;https://■■■■/admin/v2/logs/authentication?limit=100&amp;amp;maxtime=1547666579000&amp;amp;mintime=1547666579000&amp;amp;next_offset=1547242569000&amp;amp;next_offset=02dcf416-1f91-4ea7-a34b-8ca019ae5434&amp;amp;sort=ts%3Aasc&lt;/A&gt;&lt;BR /&gt;
Jan 16 19:22:59 cyclops-9218 cloudlogshipper[26859]: esduo: canon: Wed, 16 Jan 2019 19:22:59 +0000#012GET#&lt;A href="http://012api-50bd5424.duosecurity.com#012/admin/v2/logs/authentication#012limit=100&amp;amp;maxtime=1547666579000&amp;amp;mintime=1547666579000&amp;amp;next_offset=1547242569000&amp;amp;next_offset=02dcf416-1f91-4ea7-a34b-8ca019ae5434&amp;amp;sort=ts%3Aasc" rel="nofollow noopener"&gt;012■■■■#012/admin/v2/logs/authentication#012limit=100&amp;amp;maxtime=1547666579000&amp;amp;mintime=1547666579000&amp;amp;next_offset=1547242569000&amp;amp;next_offset=02dcf416-1f91-4ea7-a34b-8ca019ae5434&amp;amp;sort=ts%3Aasc&lt;/A&gt;&lt;BR /&gt;
Jan 16 19:23:05 cyclops-9218 cloudlogshipper[26859]: esduo: send the request&lt;BR /&gt;
Jan 16 19:23:05 cyclops-9218 cloudlogshipper[26859]: esduo: resp.code is 401, resp.body is {“code”: 40103, “message”: “Invalid signature in request credentials”, “stat”: “FAIL”}&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 16 Jan 2019 19:37:48 GMT</pubDate>
      <guid>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883425#M501</guid>
      <dc:creator>Carl_Cherry</dc:creator>
      <dc:date>2019-01-16T19:37:48Z</dc:date>
    </item>
    <item>
      <title>Re: Duo Admin API - admin/v2/logs/authentication</title>
      <link>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883426#M502</link>
      <description>&lt;DIV class="duo-migrated-content"&gt;&lt;P&gt;Here is the code I changes - it is not very elegant but I am not a Ruby guy. Mostly C++ and Python.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;private
def encode_params(params)
	return "" if params.nil?
	if params.is_a?(Hash) then
		params.sort.map do |k,v|
			URI::encode(k.to_s, @@encode_regex) + "=" + URI::encode(v.to_s, @@encode_regex)
		end.join("&amp;amp;")
	else
		# In this case params is an array of hashes - this is needed since
		# some of the requests are able to have repeated parameters.
		# NOTE - if sending in an array of hashes they MUST be already sorted.
                    result = ""
		params.each do |param|
			param = Hash(param)
			param.each do |k,v|
				result += URI::encode(k.to_s, @@encode_regex) + "=" + URI::encode(v.to_s, @@encode_regex)
			end
			result += "&amp;amp;"
		end
		return result.chomp("&amp;amp;")
	end
end&lt;/CODE&gt;&lt;/PRE&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 16 Jan 2019 19:54:12 GMT</pubDate>
      <guid>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883426#M502</guid>
      <dc:creator>Carl_Cherry</dc:creator>
      <dc:date>2019-01-16T19:54:12Z</dc:date>
    </item>
    <item>
      <title>Re: Duo Admin API - admin/v2/logs/authentication</title>
      <link>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883427#M503</link>
      <description>&lt;DIV class="duo-migrated-content"&gt;&lt;P&gt;Thanks! I’ll get someone who knows Ruby better than me (which is really anyone who knows Ruby at all) to take a look.&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 16 Jan 2019 21:52:33 GMT</pubDate>
      <guid>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883427#M503</guid>
      <dc:creator>DuoKristina</dc:creator>
      <dc:date>2019-01-16T21:52:33Z</dc:date>
    </item>
    <item>
      <title>Re: Duo Admin API - admin/v2/logs/authentication</title>
      <link>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883428#M504</link>
      <description>&lt;DIV class="duo-migrated-content"&gt;&lt;P&gt;FYI the Perl module has the same issue (can’t handle multiple of the same named params in canonicalize_params()).&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 22 Jan 2019 19:19:31 GMT</pubDate>
      <guid>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883428#M504</guid>
      <dc:creator>biggsb</dc:creator>
      <dc:date>2019-01-22T19:19:31Z</dc:date>
    </item>
    <item>
      <title>Re: Duo Admin API - admin/v2/logs/authentication</title>
      <link>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883429#M505</link>
      <description>&lt;DIV class="duo-migrated-content"&gt;&lt;P&gt;FYI the Python module… has this problem too if you call it from &lt;CODE&gt;duo_client.Admin&lt;/CODE&gt; instead of &lt;CODE&gt;duo_client.client&lt;/CODE&gt; (i.e. if you write a program)&lt;/P&gt;
&lt;P&gt;In particular the call &lt;A href="https://github.com/duosecurity/duo_client_python/blob/c69c3da2e13f8a7680c06d94f80fadb23eb49ec9/duo_client/admin.py#L322" rel="nofollow noopener"&gt;https://github.com/duosecurity/duo_client_python/blob/c69c3■■■■80fadb23eb49ec9/duo_client/admin.py#L322&lt;/A&gt; &lt;CODE&gt;def get_authentication_log(self, api_version=1, **kwargs):&lt;/CODE&gt; takes keyword args and you cannot repeat the same keyword twice (&lt;CODE&gt;SyntaxError: keyword argument repeated&lt;/CODE&gt;) and not give it a list as this will fail canonicalization here:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class="lang-auto"&gt;  File "/home/test/project/env/site-packages/duo_client/client.py", line 49, in &amp;lt;genexpr&amp;gt;
    for val in sorted(six.moves.urllib.parse.quote(val, "~") for val in vals):
  File "/usr/lib64/python2.7/urllib.py", line 1296, in quote
    if not s.rstrip(safe):
AttributeError: 'int' object has no attribute 'rstrip'
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;If you set the timestamp as string, then this can work though, by calling it as such:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;get_authentication_log(api_version=2, sort="ts:asc", mintime=31337, next_offset=[[str(31337), txid]], ...)&lt;/CODE&gt; (it also works if you grab it from the metadata reply “as string”&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;NOTE&lt;/STRONG&gt;: I don’t get all results if I don’t use &lt;CODE&gt;sort="ts:asc"&lt;/CODE&gt; for example. I’m guessing Duo sends back results unordered and they might be outside the &lt;CODE&gt;mintime:maxtime&lt;/CODE&gt; range, but that’s really confusing if that’s the case. In fact, that’s unusable and if that theory is true (I hope it’s not &lt;IMG width="20" height="20" src="https://community.cisco.com/legacyfs/online/ciscoduo/cdn_emojis/twitter/slight_smile.png" style="display : inline;" /&gt; then &lt;CODE&gt;sort&lt;/CODE&gt; should be made required, or have a default.&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 29 Jan 2019 22:58:17 GMT</pubDate>
      <guid>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883429#M505</guid>
      <dc:creator>kang1</dc:creator>
      <dc:date>2019-01-29T22:58:17Z</dc:date>
    </item>
    <item>
      <title>Re: Duo Admin API - admin/v2/logs/authentication</title>
      <link>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883430#M506</link>
      <description>&lt;DIV class="duo-migrated-content"&gt;&lt;P&gt;We’re publishing updates to more of our API client demos now (&lt;A href="https://github.com/duosecurity/duo_api_perl" rel="nofollow noopener"&gt;perl&lt;/A&gt;, &lt;A href="https://github.com/duosecurity/duo_api_ruby" rel="nofollow noopener"&gt;ruby&lt;/A&gt;, and &lt;A href="https://github.com/duosecurity/duo_api_csharp" rel="nofollow noopener"&gt;c#&lt;/A&gt;) to address this. Thanks for the feedback!&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 06 Feb 2019 20:34:59 GMT</pubDate>
      <guid>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883430#M506</guid>
      <dc:creator>DuoKristina</dc:creator>
      <dc:date>2019-02-06T20:34:59Z</dc:date>
    </item>
    <item>
      <title>Re: Duo Admin API - admin/v2/logs/authentication</title>
      <link>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883431#M507</link>
      <description>&lt;DIV class="duo-migrated-content"&gt;&lt;P&gt;I would like to add another question related to this topic. In this documentation: &lt;A href="https://duo.com/docs/accountsapi#using-accounts-api-with-admin-api" class="inline-onebox" rel="nofollow noopener"&gt;Accounts API | Duo Security&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;it did mention to utilized Admin API to access Accounts API methods. If so, is it possible to retrieve Accounts authentication logs using the Admin API credentials? Based on the authlogs documentation: &lt;A href="https://duo.com/docs/adminapi#authentication-logs" class="inline-onebox" rel="nofollow noopener"&gt;Duo Admin API | Duo Security&lt;/A&gt; I don’t see a query parameter to filter by Account ID. I could be wrong in this one but need some enlightenment. &lt;IMG width="20" height="20" src="https://community.cisco.com/legacyfs/online/ciscoduo/cdn_emojis/twitter/slight_smile.png" style="display : inline;" /&gt;&lt;/P&gt;
&lt;P&gt;Thanks!&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 14 May 2020 01:14:54 GMT</pubDate>
      <guid>https://community.cisco.com/t5/apis/duo-admin-api-admin-v2-logs-authentication/m-p/4883431#M507</guid>
      <dc:creator>lvincent7</dc:creator>
      <dc:date>2020-05-14T01:14:54Z</dc:date>
    </item>
  </channel>
</rss>

