<div dir="ltr"><div>That sounds a lot like the Nexus, which worked as so:</div><div><a href="https://www.tacacs.org/tacacsplus/2011/10/27/cisco-nexus">https://www.tacacs.org/tacacsplus/2011/10/27/cisco-nexus</a></div><div><br></div><div>You may have luck with my after-authentication script:</div><div><a href="https://github.com/helpdeskdan/do_auth">https://github.com/helpdeskdan/do_auth</a></div><div><br></div><div>Let me know if you find it useful. <br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jun 25, 2021 at 3:37 PM heasley <<a href="mailto:heas@shrubbery.net">heas@shrubbery.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Wed, Jun 23, 2021 at 12:04:54PM -0400, Munroe Sollog:<br>
> I don't want to get distracted from my actual problem, but after reading<br>
> this:<br>
> <a href="https://shrubbery.net/pipermail/tac_plus/2012-January/001048.html" rel="noreferrer" target="_blank">https://shrubbery.net/pipermail/tac_plus/2012-January/001048.html</a><br>
> I thought the optional AVPs are not sent unless requested.  Either way, I'm<br>
> trying to figure out why <cisco-av-pair:shell:roles= "network-admin"> works<br>
> but <optional shell:roles = "network-admin"> does not work.<br>
<br>
I went through the code, and it indeed does not return any AVPs that<br>
were not received, though it may change their value.  My recollection<br>
was that it returned them; sorry.<br>
<br>
Without code changes, there is currently no way to force sending an<br>
AVP from the config that was not received, except by using a before<br>
or after authoritzation script.  eg:<br>
<br>
#! /bin/sh<br>
while read x; do<br>
 case $x in<br>
 cmd*)<br>
   continue;<br>
 ;;<br>
 *)<br>
   echo $x<br>
 esac<br>
done<br>
# send/add the unsolicited avp<br>
echo 'idletime=2'<br>
exit 2<br>
<br>
However, what I have discovered is that the rfc is vague about what the<br>
client should do if it receives an optional AVP that it does not support.<br>
It say ignore optionals, but does not say MUST, and at another point it<br>
vaguely says that it must use replaced AVPs without specifing what to do<br>
with optionals.  In my mind, it should ignore it, but IOS classic and XE<br>
fail, unless it is one of the AVPs specified in rfc8907 S8.2.<br>
<br>
For this reason, one of these scripts is probably the best solution<br>
compared to code changes, as it allows the response to more easily be<br>
tailored to the client, and do_auth.py might work for you.<br>
<br>
YMMV, you will have to test your particular client.<br>
<br>
It seems unlikely for this unspecificity to be corrected due to the history<br>
of this rfc and implementations.<br>
<br>
_______________________________________________<br>
tac_plus mailing list<br>
<a href="mailto:tac_plus@www.shrubbery.net" target="_blank">tac_plus@www.shrubbery.net</a><br>
<a href="https://www.shrubbery.net/mailman/listinfo/tac_plus" rel="noreferrer" target="_blank">https://www.shrubbery.net/mailman/listinfo/tac_plus</a><br>
</blockquote></div>

<br>
<br>E-Mail to and from me, in connection with the transaction <br>of public business, is subject to the Wyoming Public Records <br>Act and may be disclosed to third parties.<br>