diff --git a/lib/external_intf/management_console_utils.robot b/lib/external_intf/management_console_utils.robot
index 0539dad..6f3f4cc 100644
--- a/lib/external_intf/management_console_utils.robot
+++ b/lib/external_intf/management_console_utils.robot
@@ -1,6 +1,7 @@
 *** Settings ***
 Documentation    Management console utilities keywords.
 
+Resource         ../../lib/bmc_redfish_utils.robot
 Library          ../../lib/gen_robot_valid.py
 Library          Collections
 Library          ../../lib/bmc_ssh_utils.py
@@ -40,6 +41,79 @@
     Should Contain  ${resp}  ${service_message}
 
 
+Create Session With ClientID
+    [Documentation]  Create redifish session with client id.
+    [Arguments]  ${client_id}
+
+    # Description of argument(s):
+    # client_id    This client id can contain string value
+    #              (e.g. 12345, "EXTERNAL-CLIENT").
+
+    ${session_info}=  Create Dictionary
+    ${session_resp}=  Redfish Login  kwargs= "Oem":{"OpenBMC" : {"ClientID":"${client_id}"}}
+
+    Set To Dictionary  ${session_info}  SessionIDs  ${session_resp['Id']}
+    Set To Dictionary  ${session_info}  ClientID  ${session_resp["Oem"]["OpenBMC"]["ClientID"]}
+    Set To Dictionary  ${session_info}  SessionToken  ${XAUTH_TOKEN}
+    Set To Dictionary  ${session_info}  SessionResp  ${session_resp}
+
+    [Return]  ${session_info}
+
+
+Create Session With List Of ClientID
+    [Documentation]  Create redifish session with client id.
+    [Arguments]  ${client_id}
+
+    # Description of argument(s):
+    # client_id    This client id can contain string value
+    #              (e.g. 12345, "EXTERNAL-CLIENT").
+
+    @{session_dict_list}=  Create List
+    &{session_dict}=  Create Dictionary
+
+    FOR  ${client}  IN  @{client_id}
+      ${session_dict}=  Create Session With ClientID  ${client}
+      Append To List  ${session_dict_list}  ${session_dict}
+    END
+
+    [Return]  ${session_dict_list}
+
+
+Verify A Session Created With ClientID
+    [Arguments]  ${client_id}  ${session_ids}
+
+    # Description of argument(s):
+    # client_id    External client name.
+    # session_id   This value is a session id.
+
+    # {
+    #   "@odata.id": "/redfish/v1/SessionService/Sessions/H8q2ZKucSJ",
+    #   "@odata.type": "#Session.v1_0_2.Session",
+    #   "Description": "Manager User Session",
+    #   "Id": "H8q2ZKucSJ",
+    #   "Name": "User Session",
+    #   "Oem": {
+    #   "OpenBMC": {
+    #  "@odata.type": "#OemSession.v1_0_0.Session",
+    #  "ClientID": "",
+    #  "ClientOriginIP": "::ffff:x.x.x.x"
+    #       }
+    #     },
+    #   "UserName": "root"
+    # }
+
+    FOR  ${client}  ${session}  IN ZIP  ${client_id}  ${session_ids}
+      ${session_resp}=  Redfish.Get Properties  /redfish/v1/SessionService/Sessions/${session["SessionIDs"]}
+      Rprint Vars  session_resp
+      @{words} =  Split String  ${session_resp["ClientOriginIPAddress"]}  :
+      ${ip_address}=  Get Running System IP
+      Set Test Variable  ${temp_ipaddr}  ${words}[-1]
+      Valid Value  client  ['${session_resp["Oem"]["OpenBMC"]["ClientID"]}']
+      Valid Value  session["SessionIDs"]  ['${session_resp["Id"]}']
+      Valid Value  temp_ipaddr  ${ip_address}
+    END
+
+
 Get Lock Resource Information
     [Documentation]  Get lock resource information.
 
