diff --git a/lib/bmc_redfish_utils.robot b/lib/bmc_redfish_utils.robot
index 0eeecb2..13055d4 100644
--- a/lib/bmc_redfish_utils.robot
+++ b/lib/bmc_redfish_utils.robot
@@ -60,6 +60,53 @@
     Redfish.Post  ${target}  valid_status_codes=[${HTTP_OK}]
 
 
+Redfish Delete Session
+    [Documentation]  Redfish delete session.
+    [Arguments]  ${session_info}
+
+    # Description of argument(s):
+    # session_info      Session information are stored in dictionary.
+
+    # ${session_info} = {
+    #     'SessionIDs': 'XXXXXXXXX',
+    #     'ClientID': 'XXXXXX',
+    #     'SessionToken': 'XXXXXXXXX',
+    #     'SessionResp': session response from redfish login
+    # }
+
+    # SessionIDs   : Session IDs
+    # ClientID     : Client ID
+    # SessionToken : Session token
+    # SessionResp  : Response of creating an redfish login session
+
+    Redfish.Delete  /redfish/v1/SessionService/Sessions/${session_info["SessionIDs"]}
+
+
+Redfish Delete List Of Session
+    [Documentation]  Redfish delete session from list of session records, individual session information
+    ...              are stored in dictionary.
+    [Arguments]  ${session_info_list}
+
+    # Description of argument(s):
+    # session_info_list    List contains individual session record are stored in dictionary.
+
+    # ${session_info_list} = [{
+    #     'SessionIDs': 'XXXXXXXXX',
+    #     'ClientID': 'XXXXXX',
+    #     'SessionToken': 'XXXXXXXXX',
+    #     'SessionResp': session response from redfish login
+    # }]
+
+    # SessionIDs   : Session IDs
+    # ClientID     : Client ID
+    # SessionToken : Session token
+    # SessionResp  : Response of creating an redfish login session
+
+    FOR  ${session_record}  IN  @{session_info_list}
+      Redfish.Delete  /redfish/v1/SessionService/Sessions/${session_record["SessionIDs"]}
+    END
+
+
 Delete All Redfish Sessions
     [Documentation]  Delete all active redfish sessions.
 
@@ -75,6 +122,7 @@
         Redfish.Delete  ${session}
     END
 
+
 Get Valid FRUs
     [Documentation]  Return a dictionary containing all of the valid FRU records for the given fru_type.
     [Arguments]  ${fru_type}
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.
 
