<?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 How to define multiple credentials for a single Cluster/Array: The Solution. in Active IQ Unified Manager Discussions</title>
    <link>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/How-to-define-multiple-credentials-for-a-single-Cluster-Array-The-Solution/m-p/105428#M18643</link>
    <description>&lt;P&gt;A NetApp cluster or 7Mode Array allows multiple login users with various roles and permissions for Role Based Access Controls (RBAC). This is very much required in a distributed environment where multiple users and shared resources. New roles or customized roles can be created and login accounts be created for those new roles.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;WFA3.0 allows only 1 set of Credentials to be saved for every Cluster. So when any wfa user for any workflow execution, the same Login credentials for the cluster are used every single time.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;WFA can restrict workflow availability on Operators based on categories, but it can't restrict the workflow execution for specific roles on Cluster. Operators can't have their credentials defined. &amp;nbsp;I'm providing a solution where multiple and user specific credentials can be saved by WFA Admins/Architects for a single Cluster or 7mode Array. WFA users and tipically operators now will use the specific credentials defind for him/her by the Admins. Also&lt;SPAN&gt;&amp;nbsp;optionally a default Credential for the Cluster which can be used by all WFA users can also be defined.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;See the following example.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a cluster with IP: 10.226.162.45 . I have a defined 2 login accounts on my cluster with different roles.&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000"&gt;Name: user1&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000"&gt;Passwd: Netapp@123&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000"&gt;Role: admin&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000"&gt;Name: user2&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000"&gt;Passwd: Netapp1!&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000"&gt;Role: readonly&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So in my WFA I want that when user1 executes a workflow, he can only use the credentials of his account for any workflow execution. Same for user2.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For that I need to&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Have 2 sets of credentials for the same cluster IP in WFA.&lt;/LI&gt;&lt;LI&gt;The WFA users user1 and user2 can only execute workflows using the credentials created for them and not credential of each other.&lt;/LI&gt;&lt;LI&gt;Attempting to get connect via someone else credentials should result in a failure.&lt;/LI&gt;&lt;LI&gt;I may even want to define a non-user specific default credentials for the same cluster. This credential can be used for all WFA users. This is what is available as of now.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What did I do? The Logic.&lt;/P&gt;&lt;P&gt;I defined a new way of adding credentials for a Cluster and I changed the logic of how WFA connects to it. Take the following example.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The new way is the following. Save credentials of the Cluster as &lt;FONT color="#3366FF"&gt;username@Cluster_IP&lt;/FONT&gt;. I've modified the Code to connect to the cluster to handle this Credentials saving mechanism. The modification also handles case that users can only use their defined credentials to connect to the cluster and not other's.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So now I can add the 2 user credentials as:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Credentials_User1.png" style="width: 606px;"&gt;&lt;img src="https://community.netapp.com/t5/image/serverpage/image-id/2824i6623AA69FA6F2BA3/image-size/large?v=v2&amp;amp;px=999" role="button" title="Credentials_User1.png" alt="Credentials_User1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And for user2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Credentials_User2.png" style="width: 584px;"&gt;&lt;img src="https://community.netapp.com/t5/image/serverpage/image-id/2825iBFA8BD76F47445FC/image-size/large?v=v2&amp;amp;px=999" role="button" title="Credentials_User2.png" alt="Credentials_User2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As you can see that I can do Test-Connectivity and it will succeed too.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That's all is needed. For the POC I have attached workflows with the following commands.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;How to use it?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Download the &lt;FONT color="#0000FF"&gt;WFAWrapper.txt&lt;/FONT&gt;&amp;nbsp;attached here. Change its extension from .txt to .psm1 so that now it becomes&amp;nbsp;&lt;FONT color="#0000FF"&gt;&lt;SPAN&gt;WFAWrapper.psm1&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;Go to the location &amp;lt;WFA_Installation&amp;gt;\WFA\PoSH\Modules\WFAWrapper&lt;/LI&gt;&lt;LI&gt;Rename the Original file WFAWrapper.psm1 to something like WFAWrapper_orig.pms1. Copy the WFAWrapper.psm1 into that location.&lt;/LI&gt;&lt;LI&gt;Done. No need to restart any WFA services.&lt;/LI&gt;&lt;LI&gt;Import the attached workflow1 and workflow to help you understand how to use it.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Note: If you are not going to use this solution, despite copying the new WFAWrapper.psm1, still your WFA will continue to work as before. It has no regression impact.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Example usage:&lt;/P&gt;&lt;P&gt;&amp;nbsp;I have a&amp;nbsp;sample workflow available for the above 2 users user1 and user2.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Workflow 1: Connect to our given cluster and get the count of all qtrees in a given Vserver and volume.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;I have 2 sets of user credentials created for both of them in my cluster with different roles. So as per our user roles, user1 can execute both workflows by using his own credentials. User2 can only call credentials assigned to him or the default(optionally) Cluster credentials if they are defined. User2 should not be able to call credentials of User1 in any workflow executions and proceed.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Using the above method the WFA admin has saved the User Credentials for the above 2 users in WFA.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The User1 can call his credentials and execute the workflow using the credentials assigned for him. &amp;nbsp;See images.&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Workflow1_user1.png" style="width: 844px;"&gt;&lt;img src="https://community.netapp.com/t5/image/serverpage/image-id/2830i81BB2662018A769C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Workflow1_user1.png" alt="Workflow1_user1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Workflow1_user1_execution.png" style="width: 999px;"&gt;&lt;img src="https://community.netapp.com/t5/image/serverpage/image-id/2831iEB77CDF1330CEE30/image-size/large?v=v2&amp;amp;px=999" role="button" title="Workflow1_user1_execution.png" alt="Workflow1_user1_execution.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;If User1 attempts to use the credentials of User2, the following error is throw.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Workflow1_user2.png" style="width: 864px;"&gt;&lt;img src="https://community.netapp.com/t5/image/serverpage/image-id/2832i784EF32ACD94A4E4/image-size/large?v=v2&amp;amp;px=999" role="button" title="Workflow1_user2.png" alt="Workflow1_user2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Workflow1_user2_execution.png" style="width: 893px;"&gt;&lt;img src="https://community.netapp.com/t5/image/serverpage/image-id/2833iF0FF52A06C630546/image-size/large?v=v2&amp;amp;px=999" role="button" title="Workflow1_user2_execution.png" alt="Workflow1_user2_execution.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;However, both users User1 and User2 are allowed to Execute workflow 1 by using the default credentials if they are defined in WFA.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Workflow1_user1_default.png" style="width: 759px;"&gt;&lt;img src="https://community.netapp.com/t5/image/serverpage/image-id/2834i3C0EE820AF9B0E1C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Workflow1_user1_default.png" alt="Workflow1_user1_default.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Workflow1_default_execution.png" style="width: 999px;"&gt;&lt;img src="https://community.netapp.com/t5/image/serverpage/image-id/2835i6C02949C33FC3EF9/image-size/large?v=v2&amp;amp;px=999" role="button" title="Workflow1_default_execution.png" alt="Workflow1_default_execution.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;Limitation:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;&lt;FONT color="#000000"&gt;This Solution has some limitations.&lt;/FONT&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;&lt;FONT color="#000000"&gt;1. Your command parameter mapping needs to have no reference for Cluster/Array. This is because since in WFA DB the primary_address of the cluster will always be a single IP and due to parameter mapping, it get automatically passed as a command parameter argument. This is not what we want here. Is this a problem? Not really, but lot of WFA Certified commands have this mapping, so if you can use this solution on custom commands or cloned commands with this modificatiion. Example : see commands in workflow 1 and workflow 2 for their Parameter Mappings.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;&lt;FONT color="#000000"&gt;2. If you use User-Input of type SQL, then value should not be locked. It should be available to be modified so that operators can modify the value for the cluster IP.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;Extending the solution:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The logic used here can be utilized not only for Clusters or Arrays but other credentials too. You can use it in your custom command code as well.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 05 Jun 2025 04:14:38 GMT</pubDate>
    <dc:creator>sinhaa</dc:creator>
    <dc:date>2025-06-05T04:14:38Z</dc:date>
    <item>
      <title>How to define multiple credentials for a single Cluster/Array: The Solution.</title>
      <link>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/How-to-define-multiple-credentials-for-a-single-Cluster-Array-The-Solution/m-p/105428#M18643</link>
      <description>&lt;P&gt;A NetApp cluster or 7Mode Array allows multiple login users with various roles and permissions for Role Based Access Controls (RBAC). This is very much required in a distributed environment where multiple users and shared resources. New roles or customized roles can be created and login accounts be created for those new roles.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;WFA3.0 allows only 1 set of Credentials to be saved for every Cluster. So when any wfa user for any workflow execution, the same Login credentials for the cluster are used every single time.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;WFA can restrict workflow availability on Operators based on categories, but it can't restrict the workflow execution for specific roles on Cluster. Operators can't have their credentials defined. &amp;nbsp;I'm providing a solution where multiple and user specific credentials can be saved by WFA Admins/Architects for a single Cluster or 7mode Array. WFA users and tipically operators now will use the specific credentials defind for him/her by the Admins. Also&lt;SPAN&gt;&amp;nbsp;optionally a default Credential for the Cluster which can be used by all WFA users can also be defined.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;See the following example.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a cluster with IP: 10.226.162.45 . I have a defined 2 login accounts on my cluster with different roles.&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000"&gt;Name: user1&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000"&gt;Passwd: Netapp@123&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000"&gt;Role: admin&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000"&gt;Name: user2&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000"&gt;Passwd: Netapp1!&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000"&gt;Role: readonly&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So in my WFA I want that when user1 executes a workflow, he can only use the credentials of his account for any workflow execution. Same for user2.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For that I need to&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Have 2 sets of credentials for the same cluster IP in WFA.&lt;/LI&gt;&lt;LI&gt;The WFA users user1 and user2 can only execute workflows using the credentials created for them and not credential of each other.&lt;/LI&gt;&lt;LI&gt;Attempting to get connect via someone else credentials should result in a failure.&lt;/LI&gt;&lt;LI&gt;I may even want to define a non-user specific default credentials for the same cluster. This credential can be used for all WFA users. This is what is available as of now.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What did I do? The Logic.&lt;/P&gt;&lt;P&gt;I defined a new way of adding credentials for a Cluster and I changed the logic of how WFA connects to it. Take the following example.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The new way is the following. Save credentials of the Cluster as &lt;FONT color="#3366FF"&gt;username@Cluster_IP&lt;/FONT&gt;. I've modified the Code to connect to the cluster to handle this Credentials saving mechanism. The modification also handles case that users can only use their defined credentials to connect to the cluster and not other's.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So now I can add the 2 user credentials as:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Credentials_User1.png" style="width: 606px;"&gt;&lt;img src="https://community.netapp.com/t5/image/serverpage/image-id/2824i6623AA69FA6F2BA3/image-size/large?v=v2&amp;amp;px=999" role="button" title="Credentials_User1.png" alt="Credentials_User1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And for user2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Credentials_User2.png" style="width: 584px;"&gt;&lt;img src="https://community.netapp.com/t5/image/serverpage/image-id/2825iBFA8BD76F47445FC/image-size/large?v=v2&amp;amp;px=999" role="button" title="Credentials_User2.png" alt="Credentials_User2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As you can see that I can do Test-Connectivity and it will succeed too.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That's all is needed. For the POC I have attached workflows with the following commands.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;How to use it?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Download the &lt;FONT color="#0000FF"&gt;WFAWrapper.txt&lt;/FONT&gt;&amp;nbsp;attached here. Change its extension from .txt to .psm1 so that now it becomes&amp;nbsp;&lt;FONT color="#0000FF"&gt;&lt;SPAN&gt;WFAWrapper.psm1&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;Go to the location &amp;lt;WFA_Installation&amp;gt;\WFA\PoSH\Modules\WFAWrapper&lt;/LI&gt;&lt;LI&gt;Rename the Original file WFAWrapper.psm1 to something like WFAWrapper_orig.pms1. Copy the WFAWrapper.psm1 into that location.&lt;/LI&gt;&lt;LI&gt;Done. No need to restart any WFA services.&lt;/LI&gt;&lt;LI&gt;Import the attached workflow1 and workflow to help you understand how to use it.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Note: If you are not going to use this solution, despite copying the new WFAWrapper.psm1, still your WFA will continue to work as before. It has no regression impact.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Example usage:&lt;/P&gt;&lt;P&gt;&amp;nbsp;I have a&amp;nbsp;sample workflow available for the above 2 users user1 and user2.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Workflow 1: Connect to our given cluster and get the count of all qtrees in a given Vserver and volume.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;I have 2 sets of user credentials created for both of them in my cluster with different roles. So as per our user roles, user1 can execute both workflows by using his own credentials. User2 can only call credentials assigned to him or the default(optionally) Cluster credentials if they are defined. User2 should not be able to call credentials of User1 in any workflow executions and proceed.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Using the above method the WFA admin has saved the User Credentials for the above 2 users in WFA.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The User1 can call his credentials and execute the workflow using the credentials assigned for him. &amp;nbsp;See images.&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Workflow1_user1.png" style="width: 844px;"&gt;&lt;img src="https://community.netapp.com/t5/image/serverpage/image-id/2830i81BB2662018A769C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Workflow1_user1.png" alt="Workflow1_user1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Workflow1_user1_execution.png" style="width: 999px;"&gt;&lt;img src="https://community.netapp.com/t5/image/serverpage/image-id/2831iEB77CDF1330CEE30/image-size/large?v=v2&amp;amp;px=999" role="button" title="Workflow1_user1_execution.png" alt="Workflow1_user1_execution.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;If User1 attempts to use the credentials of User2, the following error is throw.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Workflow1_user2.png" style="width: 864px;"&gt;&lt;img src="https://community.netapp.com/t5/image/serverpage/image-id/2832i784EF32ACD94A4E4/image-size/large?v=v2&amp;amp;px=999" role="button" title="Workflow1_user2.png" alt="Workflow1_user2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Workflow1_user2_execution.png" style="width: 893px;"&gt;&lt;img src="https://community.netapp.com/t5/image/serverpage/image-id/2833iF0FF52A06C630546/image-size/large?v=v2&amp;amp;px=999" role="button" title="Workflow1_user2_execution.png" alt="Workflow1_user2_execution.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;However, both users User1 and User2 are allowed to Execute workflow 1 by using the default credentials if they are defined in WFA.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Workflow1_user1_default.png" style="width: 759px;"&gt;&lt;img src="https://community.netapp.com/t5/image/serverpage/image-id/2834i3C0EE820AF9B0E1C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Workflow1_user1_default.png" alt="Workflow1_user1_default.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Workflow1_default_execution.png" style="width: 999px;"&gt;&lt;img src="https://community.netapp.com/t5/image/serverpage/image-id/2835i6C02949C33FC3EF9/image-size/large?v=v2&amp;amp;px=999" role="button" title="Workflow1_default_execution.png" alt="Workflow1_default_execution.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;Limitation:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;&lt;FONT color="#000000"&gt;This Solution has some limitations.&lt;/FONT&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;&lt;FONT color="#000000"&gt;1. Your command parameter mapping needs to have no reference for Cluster/Array. This is because since in WFA DB the primary_address of the cluster will always be a single IP and due to parameter mapping, it get automatically passed as a command parameter argument. This is not what we want here. Is this a problem? Not really, but lot of WFA Certified commands have this mapping, so if you can use this solution on custom commands or cloned commands with this modificatiion. Example : see commands in workflow 1 and workflow 2 for their Parameter Mappings.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;&lt;FONT color="#000000"&gt;2. If you use User-Input of type SQL, then value should not be locked. It should be available to be modified so that operators can modify the value for the cluster IP.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;Extending the solution:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The logic used here can be utilized not only for Clusters or Arrays but other credentials too. You can use it in your custom command code as well.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 05 Jun 2025 04:14:38 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/How-to-define-multiple-credentials-for-a-single-Cluster-Array-The-Solution/m-p/105428#M18643</guid>
      <dc:creator>sinhaa</dc:creator>
      <dc:date>2025-06-05T04:14:38Z</dc:date>
    </item>
  </channel>
</rss>

