type=page
status=published
title=create-connector-work-security-map
next=create-context-service.html
prev=create-connector-security-map.html
~~~~~~

create-connector-work-security-map
==================================

[[create-connector-work-security-map-1]][[GSRFM00021]][[create-connector-work-security-map]]

create-connector-work-security-map
----------------------------------

Creates a work security map for the specified resource adapter

[[sthref183]]

=== Synopsis

[source]
----
asadmin [asadmin-options] create-connector-work-security-map [--help]
--raname raname
[--principalsmap eis-principal1=principal_name1[, eis-principal2=principal_name2]*
|--groupsmap eis-group1=server-group1[, eis-group2=server-group2]*}
[--description description]
mapname
----

[[sthref184]]

=== Description

The `create-connector-work-security-map` subcommand maps the caller
identity of the work submitted by the resource adapter EIS principal or
EIS user group to a suitable principal or user group in the
{productName} security domain. One or more work security maps may be
associated with a resource adapter. The connector work security map
configuration supports the use of the wild card asterisk (`*`) to
indicate all users or all user groups.

The enterprise information system (EIS) is any system that holds the
data of an organization. It can be a mainframe, a messaging system, a
database system, or an application.

This subcommand is supported in remote mode only.

[[sthref185]]

=== Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--description`::
  Text providing descriptive details about the connector work security
  map.
`--groupsmap`::
  Specifies a map of the backend EIS user group to the {productName}
  user group. Use a comma-separated list to specify more than one
  mapping. Use either the `--principalsmap` option or the `--groupsmap`
  option, but not both.
`--principalsmap`::
  Specifies a map of the backend EIS principal to the {productName}
  principal. Use a comma-separated list to specify more than one
  mapping. Use either the `--principalsmap` option or the `--groupsmap`
  option, but not both.
`--raname`::
  Indicates the connector module name, which is the name of the resource
  adapter.

[[sthref186]]

=== Operands

mapname::
  The name of the work security map to be created.

[[sthref187]]

=== Examples

[[GSRFM468]][[sthref188]]

==== Example 1   Creating a Connector Work Security Map (Principal)

This example creates connector work security map `workSecurityMap1` that
maps the backend EIS principal to the {productName} principal.

[source]
----
asadmin create-connector-work-security-map --raname my-resource-adapter
--principalsmap eis-principal-1=server-principal-1,eis-principal-2
=server-principal-2,eis-principal-3=server-principal-1
workSecurityMap1
Command create-connector-work-security-map executed successfully.
----

[[GSRFM469]][[sthref189]]

==== Example 2   Creating a Connector Work Security Map (Group)

This example creates connector work security map `workSecurityMap2` that
maps the backend EIS user group to the {productName} user group.

[source]
----
asadmin create-connector-work-security-map --raname my-resource-adapter
--groupsmap eis-group-1=server-group-1,eis-group-2=server-group-2,
eis-group-3=server-group-1 workSecurityMap2
Command create-connector-work-security-map executed successfully.
----

[[sthref190]]

=== Exit Status

0::
  subcommand executed successfully
1::
  error in executing the subcommand

[[sthref191]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:delete-connector-work-security-map.html#delete-connector-work-security-map-1[`delete-connector-work-security-map`(1)],
link:list-connector-work-security-maps.html#list-connector-work-security-maps-1[`list-connector-work-security-maps`(1)],
link:update-connector-work-security-map.html#update-connector-work-security-map-1[`update-connector-work-security-map`(1)]


