<?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: Devices with MFA in NSO Developer Hub Discussions</title>
    <link>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4995299#M8296</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;while introducing MFA for users to log into devices makes sense to me. It would be good to understand the security benefit for introducing MFA to enhance the security of 2 software systems communicating via an NBI, NSO and device in this case.&lt;/P&gt;
&lt;P&gt;How would the different factors look like in this case? Just to make it concrete, say NSO starts to login to a device, soon after an email user receives an email with a unique URL. NSO has to log into the mail server retrieve the URL and access it before the device enables the connection. Did we really gain much in security? We now have 2 different passwords that NSO needs to know, but I think the risk of compomise is likely to be correlated. I think that's why we don't hear about MFA much for machine to machine communication.&lt;/P&gt;
&lt;P&gt;If you decide to implement such a scheme I think those callback in the authgroup might be able to do it. They would return the password (first factor) but leave a process in the background that takes care of the other factor.&lt;/P&gt;
&lt;P&gt;There are other ways to enhance the security of the authentication between NSO and device you can look at including having unique randomly generated password per device, and changing them frequently for the userid that NSO employs toward the device.&amp;nbsp; The callback actions can also be used for NSO to retrieve credentials externally - so storing any secrets in a centralised store that is carefully managed. I created an example of that with terraform vault.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://gitlab.com/nso-developer/nso-secrets-in-vault/" target="_blank"&gt;https://gitlab.com/nso-developer/nso-secrets-in-vault/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 12 Jan 2024 15:39:48 GMT</pubDate>
    <dc:creator>snovello</dc:creator>
    <dc:date>2024-01-12T15:39:48Z</dc:date>
    <item>
      <title>Devices with MFA</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4980835#M8277</link>
      <description>&lt;P&gt;Hi:&lt;/P&gt;&lt;P&gt;My company will convert the devices to MFA (Multi Factor Authentication) soon.&lt;BR /&gt;My question is how to make NSO use MFA to the device?&lt;/P&gt;&lt;P&gt;I searched the src/ncs/yang and found that in tailf-ncs-devices.yang there is&lt;BR /&gt;container devices {&lt;BR /&gt;&amp;nbsp; container authgroups {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; list group {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; grouping remote-user-remote-auth {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; leaf callback-node {...}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; leaf action-name {...}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;will that help to have NSO to use MFA to the device?&lt;/P&gt;&lt;P&gt;I need some example java code how to use callback-node and action-name.&lt;BR /&gt;Does any one have experience?&lt;/P&gt;&lt;P&gt;THX&lt;BR /&gt;sm000x&lt;/P&gt;</description>
      <pubDate>Mon, 18 Dec 2023 20:23:47 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4980835#M8277</guid>
      <dc:creator>sm000x</dc:creator>
      <dc:date>2023-12-18T20:23:47Z</dc:date>
    </item>
    <item>
      <title>Re: Devices with MFA</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4992034#M8281</link>
      <description>&lt;P&gt;Hi!&lt;/P&gt;
&lt;P&gt;This is probably not supported out of the box with NSO today.&lt;BR /&gt;I asked around at the department, and it doesn't seem like it&lt;BR /&gt;is possible to give a proper short answer on devhub at least.&lt;/P&gt;
&lt;P&gt;However, it looks like an interesting use case and I suggest&lt;BR /&gt;raising a case to discuss it further so we can help you properly.&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jan 2024 15:15:04 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4992034#M8281</guid>
      <dc:creator>perander</dc:creator>
      <dc:date>2024-01-08T15:15:04Z</dc:date>
    </item>
    <item>
      <title>Re: Devices with MFA</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4992062#M8282</link>
      <description>Hi, Perander:&lt;BR /&gt;&lt;BR /&gt;Thank you so much for the reply.&lt;BR /&gt;&lt;BR /&gt;"....I suggest raising a case ...."&lt;BR /&gt;How do I create a case?&lt;BR /&gt;&lt;BR /&gt;THX&lt;BR /&gt;sm000x&lt;BR /&gt;</description>
      <pubDate>Mon, 08 Jan 2024 15:29:08 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4992062#M8282</guid>
      <dc:creator>sm000x</dc:creator>
      <dc:date>2024-01-08T15:29:08Z</dc:date>
    </item>
    <item>
      <title>Re: Devices with MFA</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4992066#M8283</link>
      <description>&lt;P&gt;Hi!&lt;/P&gt;
&lt;P&gt;Through your NSO support channel, raise a feature request or a support case.&lt;/P&gt;
&lt;P&gt;EDIT: There is actually a link on the right you can use "Open a TAC case".&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jan 2024 15:35:50 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4992066#M8283</guid>
      <dc:creator>perander</dc:creator>
      <dc:date>2024-01-08T15:35:50Z</dc:date>
    </item>
    <item>
      <title>Re: Devices with MFA</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4992069#M8284</link>
      <description>I see.&lt;BR /&gt;&lt;BR /&gt;Thank you&lt;BR /&gt;sm000x&lt;BR /&gt;</description>
      <pubDate>Mon, 08 Jan 2024 15:38:08 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4992069#M8284</guid>
      <dc:creator>sm000x</dc:creator>
      <dc:date>2024-01-08T15:38:08Z</dc:date>
    </item>
    <item>
      <title>Re: Devices with MFA</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4993749#M8290</link>
      <description>&lt;P&gt;A quick MFA example:&lt;/P&gt;
&lt;LI-CODE lang="c"&gt;$ source /path/to/nso/ncsrc
$ ls -1
Makefile
auth.pl
response.pl
$ make all start &lt;/LI-CODE&gt;
&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;Browse to &lt;A href="https://127.0.0.1:8080" target="_blank"&gt;&lt;SPAN class="s2"&gt;127.0.0.1:8080&lt;/SPAN&gt;&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;Username: admin&lt;BR /&gt;Password: admin&lt;BR /&gt;challenge: sendSMScode&lt;BR /&gt;challenge: secretSMScode&lt;/P&gt;
&lt;P class="p2"&gt;user/pass oper will login using local authentication.&lt;BR /&gt;&lt;BR /&gt;Makefile:&lt;/P&gt;
&lt;LI-CODE lang="c"&gt;NSO_RUN_DIR=nso-rundir

EXTRA_NCS_LOG_CONFIG=\n\ \ \ \ \&amp;lt;webui-browser-log&amp;gt;\n\
\ \ \ \ \ &amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;\n\
\ \ \ \ \ &amp;lt;filename&amp;gt;./logs/webui-browser.log&amp;lt;/filename&amp;gt;\n\
\ \ \ &amp;lt;/webui-browser-log&amp;gt;\n\ \ \

EXTRA_AAA_CONFIG=\ \ &amp;lt;auth-order&amp;gt;external-authentication local-authentication pam&amp;lt;/auth-order&amp;gt;\n\
\ \ \ &amp;lt;external-authentication&amp;gt;\n\
\ \ \ \ \ &amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;\n\
\ \ \ \ \ &amp;lt;executable&amp;gt;./auth.pl&amp;lt;/executable&amp;gt;\n\
\ \ \ \ \ &amp;lt;use-base64&amp;gt;false&amp;lt;/use-base64&amp;gt;\n\
\ \ \ &amp;lt;/external-authentication&amp;gt;\n\
\ \ \ &amp;lt;challenge-order&amp;gt;external-challenge&amp;lt;/challenge-order&amp;gt;\n\
\ \ \ &amp;lt;external-challenge&amp;gt;\n\
\ \ \ \ \ &amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;\n\
\ \ \ \ \ &amp;lt;executable&amp;gt;./response.pl&amp;lt;/executable&amp;gt;\n\
\ \ \ \ \ &amp;lt;use-base64&amp;gt;false&amp;lt;/use-base64&amp;gt;\n\
\ \ \ &amp;lt;/external-challenge&amp;gt;\n\ \ \

all:
	ncs-setup --no-netsim --dest $(NSO_RUN_DIR)
	sed -i.bak -e '/&amp;lt;external-authentication&amp;gt;/I,+3 d' \
             -e "s|&amp;lt;/logs&amp;gt;|$(EXTRA_NCS_LOG_CONFIG)&amp;lt;/logs&amp;gt;|" \
             -e "s|&amp;lt;/aaa&amp;gt;|$(EXTRA_AAA_CONFIG)&amp;lt;/aaa&amp;gt;|" \
             $(NSO_RUN_DIR)/ncs.conf
	cp *.pl $(NSO_RUN_DIR)/

clean:
	rm -rf $(NSO_RUN_DIR)

stop:
	ncs --stop || true

start: stop
	cd $(NSO_RUN_DIR); \
	ncs  &lt;/LI-CODE&gt;
&lt;P&gt;auth.pl:&lt;/P&gt;
&lt;LI-CODE lang="ruby"&gt;#!/usr/bin/perl

$base64 = 0;
$extra = 0;
while (@ARGV) {
    if ($ARGV[0] eq "-b") {
        $base64 = 1;
    } elsif ($ARGV[0] eq "-e") {
        $extra = 1;
    }
    shift @ARGV;
}

if ((!$extra &amp;amp;&amp;amp; (&amp;lt;STDIN&amp;gt; =~ /^\[([^;]+);([^;]+);\]$/)) ||
    ($extra &amp;amp;&amp;amp;
     (&amp;lt;STDIN&amp;gt; =~ /^\[([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);\]$/))) {
    if ($base64) {
        $user = decode_b64($1);
        $pass = decode_b64($2);
    } else {
        $user = $1;
        $pass = $2;
    }
    if ($extra) {
        $ip = $3;
        $port = $4;
        $ctx = $5;
        $proto = $6;
    }
    if ($user eq "admin") {
        if ($extra &amp;amp;&amp;amp; ($ip ne "0.0.0.0" || $port ne "0" ||
                       $ctx ne "maapi" || $proto ne "unknown")) {
            print "abort Bad extra $ip $port $ctx $proto\n";
        } else {
            if ($pass eq "admin") {
                #2&amp;gt; base64:encode("bla bla\nbla bla\nChallenge prompt1\n").
                #&amp;lt;&amp;lt;"YmxhIGJsYQpibGEgYmxhCkNoYWxsZW5nZSBwcm9tcHQxCg=="&amp;gt;&amp;gt;
                print "challenge challengeId1 YmxhIGJsYQpibGEgYmxhCkNoYWxsZW5nZSBwcm9tcHQxCg==\n";
            } else {
                print "reject Bad password for admin\n";
            }
        }
    }
}
# else exit silently

sub decode_b64 {
    my $str = shift;
    my $res = "";

    $str =~ tr|A-Za-z0-9+/||cd;             # remove non-base64 chars (padding)
    $str =~ tr|A-Za-z0-9+/| -_|;            # convert to uuencoded format
    while ($str =~ /(.{1,60})/gs) {
        my $len = chr(32 + length($1)*3/4); # compute length byte
        $res .= unpack("u", $len . $1 );    # uudecode
    }
    $res;
} &lt;/LI-CODE&gt;
&lt;P&gt;response.pl:&lt;/P&gt;
&lt;LI-CODE lang="ruby"&gt;#!/usr/bin/perl

$base64 = 0;
$extra = 0;
while (@ARGV) {
    if ($ARGV[0] eq "-b") {
        $base64 = 1;
    } elsif ($ARGV[0] eq "-e") {
        $extra = 1;
    }
    shift @ARGV;
}

if ((!$extra &amp;amp;&amp;amp; (&amp;lt;STDIN&amp;gt; =~ /^\[([^;]+);([^;]+);\]$/)) ||
    ($extra &amp;amp;&amp;amp;
     (&amp;lt;STDIN&amp;gt; =~ /^\[([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);\]$/))) {
    if ($base64) {
        $challenge_id = decode_b64($1);
        $response = decode_b64($2);
    } else {
        $challenge_id = $1;
        $response = $2;
    }
    if ($extra) {
        $ip = $3;
        $port = $4;
        $ctx = $5;
        $proto = $6;
    }
    if ($challenge_id eq "challengeId1") {
        if ($extra &amp;amp;&amp;amp; ($ip ne "0.0.0.0" || $port ne "0" ||
                       $ctx ne "maapi" || $proto ne "unknown")) {
            print "abort Bad extra $ip $port $ctx $proto\n";
        } else {
            if ($response eq "sendSMScode") {
                print "challenge challengeId2 U01TIENvZGUKU01T44Kz44O844OJ\n";
            } else {
                print "reject Bad response\n";
            }
        }
    } elsif ($challenge_id eq "challengeId2") {
        if ($extra &amp;amp;&amp;amp; ($ip ne "0.0.0.0" || $port ne "0" ||
                       $ctx ne "maapi" || $proto ne "unknown")) {
            print "abort Bad extra $ip $port $ctx $proto\n";
        } else {
            if ($response eq "secretSMScode") {
                print "accept external admin 1000 1000 /home/admin admin\n";
            } else {
                print "reject Bad response\n";
            }
        }
    } else {
        print "reject Unknown challenge_id $challenge_id\n";
    }
}
# else exit silently

sub decode_b64 {
    my $str = shift;
    my $res = "";

    $str =~ tr|A-Za-z0-9+/||cd;             # remove non-base64 chars (padding)
    $str =~ tr|A-Za-z0-9+/| -_|;            # convert to uuencoded format
    while ($str =~ /(.{1,60})/gs) {
        my $len = chr(32 + length($1)*3/4); # compute length byte
        $res .= unpack("u", $len . $1 );    # uudecode
    }
    $res;
} &lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2024 16:06:40 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4993749#M8290</guid>
      <dc:creator>cohult</dc:creator>
      <dc:date>2024-01-10T16:06:40Z</dc:date>
    </item>
    <item>
      <title>Re: Devices with MFA</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4993754#M8291</link>
      <description>Hi, Cohult:&lt;BR /&gt;&lt;BR /&gt;Thank you for this example. This is very helpful. I will study it.&lt;BR /&gt;&lt;BR /&gt;Thank you&lt;BR /&gt;sm000x&lt;BR /&gt;</description>
      <pubDate>Wed, 10 Jan 2024 16:13:08 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4993754#M8291</guid>
      <dc:creator>sm000x</dc:creator>
      <dc:date>2024-01-10T16:13:08Z</dc:date>
    </item>
    <item>
      <title>Re: Devices with MFA</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4994165#M8292</link>
      <description>&lt;P&gt;Sorry, I did not read your question properly. The example is for MFA north of NSO through the WebUI. Not MFA to devices south of NSO through NEDs.&lt;/P&gt;</description>
      <pubDate>Thu, 11 Jan 2024 08:00:12 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4994165#M8292</guid>
      <dc:creator>cohult</dc:creator>
      <dc:date>2024-01-11T08:00:12Z</dc:date>
    </item>
    <item>
      <title>Re: Devices with MFA</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4994333#M8293</link>
      <description>Hi, Cohult:&lt;BR /&gt;&lt;BR /&gt;Thank you for the correction. But it is still helpful for my work.&lt;BR /&gt;&lt;BR /&gt;Thank you again.&lt;BR /&gt;sm000x&lt;BR /&gt;</description>
      <pubDate>Thu, 11 Jan 2024 13:28:19 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4994333#M8293</guid>
      <dc:creator>sm000x</dc:creator>
      <dc:date>2024-01-11T13:28:19Z</dc:date>
    </item>
    <item>
      <title>Re: Devices with MFA</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4994990#M8294</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Support in NSO for MFA towards the devices is kind of anti-intuitive as the idea of automation is to remove any manual activities. Also, if you have a NaaS kind of setup where there is no operator involved, who should perform the MFA? The end-customer user? not clear to me,&lt;/P&gt;
&lt;P&gt;Removing the architecture question, we could ask if it is technically possible. I think there is a possibility (did not tested myself). In NSO authgroups definition, you can can call an arbitrary action using the "callback-node" options:&lt;/P&gt;
&lt;PRE class="programlisting"&gt;                  "Invoke a standalone action to retrieve login credentials for
                  managed devices on the 'callback-node' instance.

                  The 'action-name' action is invoked on the callback node that
                  is specified by an instance identifer.";&lt;/PRE&gt;
&lt;P&gt;This is well explained in the guides:&amp;nbsp;&lt;A href="https://developer.cisco.com/docs/nso/guides/#!the-nso-device-manager/authentication-groups" target="_blank"&gt;https://developer.cisco.com/docs/nso/guides/#!the-nso-device-manager/authentication-groups&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Inside your action, you can do what you want like interacting with a MFA system.&lt;/P&gt;
&lt;P&gt;There is clearly a performance impact of this option that I did not analyse but you probably would need to enable commit queues.&lt;/P&gt;</description>
      <pubDate>Fri, 12 Jan 2024 10:48:39 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4994990#M8294</guid>
      <dc:creator>rogaglia</dc:creator>
      <dc:date>2024-01-12T10:48:39Z</dc:date>
    </item>
    <item>
      <title>Re: Devices with MFA</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4995206#M8295</link>
      <description>Hi, rogaglia:&lt;BR /&gt;&lt;BR /&gt;Thank you for this information.&lt;BR /&gt;I agree that there is performance impact. However, that is the company's direction and the company is currently asking all the network device vendors to have MFA.&lt;BR /&gt;I will read the "action" URL, thank you for providing this URL.&lt;BR /&gt;&lt;BR /&gt;Thx&lt;BR /&gt;sm000x&lt;BR /&gt;</description>
      <pubDate>Fri, 12 Jan 2024 13:26:23 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4995206#M8295</guid>
      <dc:creator>sm000x</dc:creator>
      <dc:date>2024-01-12T13:26:23Z</dc:date>
    </item>
    <item>
      <title>Re: Devices with MFA</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4995299#M8296</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;while introducing MFA for users to log into devices makes sense to me. It would be good to understand the security benefit for introducing MFA to enhance the security of 2 software systems communicating via an NBI, NSO and device in this case.&lt;/P&gt;
&lt;P&gt;How would the different factors look like in this case? Just to make it concrete, say NSO starts to login to a device, soon after an email user receives an email with a unique URL. NSO has to log into the mail server retrieve the URL and access it before the device enables the connection. Did we really gain much in security? We now have 2 different passwords that NSO needs to know, but I think the risk of compomise is likely to be correlated. I think that's why we don't hear about MFA much for machine to machine communication.&lt;/P&gt;
&lt;P&gt;If you decide to implement such a scheme I think those callback in the authgroup might be able to do it. They would return the password (first factor) but leave a process in the background that takes care of the other factor.&lt;/P&gt;
&lt;P&gt;There are other ways to enhance the security of the authentication between NSO and device you can look at including having unique randomly generated password per device, and changing them frequently for the userid that NSO employs toward the device.&amp;nbsp; The callback actions can also be used for NSO to retrieve credentials externally - so storing any secrets in a centralised store that is carefully managed. I created an example of that with terraform vault.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://gitlab.com/nso-developer/nso-secrets-in-vault/" target="_blank"&gt;https://gitlab.com/nso-developer/nso-secrets-in-vault/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 12 Jan 2024 15:39:48 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4995299#M8296</guid>
      <dc:creator>snovello</dc:creator>
      <dc:date>2024-01-12T15:39:48Z</dc:date>
    </item>
    <item>
      <title>Re: Devices with MFA</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4995301#M8297</link>
      <description>&lt;P&gt;Performance is of course one piece but remember that I was challenging the policy your company is trying to invoke because it is based on the assumption that you have an operator performing the tasks somewhere. However, in many automation scenarios, there is no operator involved. Some examples are user portals, closed-loop logics, etc.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 12 Jan 2024 15:43:29 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4995301#M8297</guid>
      <dc:creator>rogaglia</dc:creator>
      <dc:date>2024-01-12T15:43:29Z</dc:date>
    </item>
    <item>
      <title>Re: Devices with MFA</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4995318#M8298</link>
      <description>&lt;P&gt;Just for completion regarding NORTHBOUD MFA. NSO now supports SSO and SAMLv2. I would claim that a better way to enable MFA northbound support is to use a SAMLv2 identity provider such as Cisco Duo and centralize your MFA needs across all your applications. More info on Duo/SAMLv2/MFA:&amp;nbsp;&lt;A href="https://duo.com/docs/sso-generic" target="_blank"&gt;https://duo.com/docs/sso-generic.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;NSO SSO/SAMLv2 video:&amp;nbsp;&lt;A href="https://www.youtube.com/watch?v=XhoJQgTP_6A" target="_blank"&gt;https://www.youtube.com/watch?v=XhoJQgTP_6A&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Guide:&amp;nbsp;&lt;A href="https://developer.cisco.com/docs/nso/guides/#!single-sign-on" target="_blank"&gt;https://developer.cisco.com/docs/nso/guides/#!single-sign-on&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 12 Jan 2024 15:56:35 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4995318#M8298</guid>
      <dc:creator>rogaglia</dc:creator>
      <dc:date>2024-01-12T15:56:35Z</dc:date>
    </item>
    <item>
      <title>Re: Devices with MFA</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4995811#M8300</link>
      <description>Hi, Snovello:&lt;BR /&gt;&lt;BR /&gt;Thank you for this suggestion. I am not MFA person and I know some of my company's project have already implemented the machine-to-machine MFA automation.&lt;BR /&gt;I do not know the details, but here is what I know:&lt;BR /&gt;When application login to the device, device return some token to application.&lt;BR /&gt;Application uses the token to my company's security server and gets a 2nd password back.&lt;BR /&gt;Application then uses that 2nd password to login to the device.&lt;BR /&gt;&lt;BR /&gt;I will study the URL you provided and see if I can use NSO to achieve my company's MFA implementation.&lt;BR /&gt;&lt;BR /&gt;THX&lt;BR /&gt;sm000x&lt;BR /&gt;</description>
      <pubDate>Fri, 12 Jan 2024 20:55:30 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4995811#M8300</guid>
      <dc:creator>sm000x</dc:creator>
      <dc:date>2024-01-12T20:55:30Z</dc:date>
    </item>
    <item>
      <title>Re: Devices with MFA</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4995818#M8301</link>
      <description>Hi, Rogaglia:&lt;BR /&gt;&lt;BR /&gt;Thank you for this response.&lt;BR /&gt;I do not know much details but as far as I know, my company's MTA for automation has no operator involves.&lt;BR /&gt;&lt;BR /&gt;THX&lt;BR /&gt;sm000x&lt;BR /&gt;</description>
      <pubDate>Fri, 12 Jan 2024 21:17:30 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4995818#M8301</guid>
      <dc:creator>sm000x</dc:creator>
      <dc:date>2024-01-12T21:17:30Z</dc:date>
    </item>
    <item>
      <title>Re: Devices with MFA</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4995819#M8302</link>
      <description>Hi, Rogaglia:&lt;BR /&gt;&lt;BR /&gt;Thank you for the information. I will study the links. I am sure they are helpful.&lt;BR /&gt;&lt;BR /&gt;THX&lt;BR /&gt;sm000x&lt;BR /&gt;</description>
      <pubDate>Fri, 12 Jan 2024 21:18:30 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4995819#M8302</guid>
      <dc:creator>sm000x</dc:creator>
      <dc:date>2024-01-12T21:18:30Z</dc:date>
    </item>
    <item>
      <title>Re: Devices with MFA</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4996350#M8303</link>
      <description>&lt;P&gt;I can confirm that this is exactly the case why&amp;nbsp;&lt;SPAN&gt;callback-node was created and you can find the examples in the dev guides that you saw abocve.. I would not call what you described as MFA but rather an external vault or password storage as you are not providing any second piece of evidence.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 14 Jan 2024 12:41:24 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4996350#M8303</guid>
      <dc:creator>rogaglia</dc:creator>
      <dc:date>2024-01-14T12:41:24Z</dc:date>
    </item>
    <item>
      <title>Re: Devices with MFA</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4996394#M8304</link>
      <description>Hi, Rogaglia:&lt;BR /&gt;&lt;BR /&gt;Thank you for this good news. I will study the Links you sent and give it a try.&lt;BR /&gt;&lt;BR /&gt;THX&lt;BR /&gt;sm000x&lt;BR /&gt;</description>
      <pubDate>Sun, 14 Jan 2024 16:36:43 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/devices-with-mfa/m-p/4996394#M8304</guid>
      <dc:creator>sm000x</dc:creator>
      <dc:date>2024-01-14T16:36:43Z</dc:date>
    </item>
  </channel>
</rss>

