We are working on setting up a custom saas connector for aws and are in the process of configuring attribute sync. There seems to be some sort of mismatch (or maybe bug) on the configuration that we are having trouble working through. Here are the details, any help is appreciated.
The attributes are visible in the UI when we go to that page, but when selecting them we get an error on save:
A GET on /beta/sources/2c918086814e69cd01816da8ab716d8a/attribute-sync-config returns
{
"attributes": [],
"source": {
"name": null,
"id": "2c918086814e69cd01816da8ab716d8a",
"type": "SOURCE"
}
}
and doing a PUT with
{
"source": [
{
"type": "SOURCE",
"id": "2c918086814e69cd01816da8ab716d8a",
"name": "AWS IAM Identity Center"
}
],
"attributes": [
{
"name": "lastname",
"displayName": "Last Name",
"enabled": true,
"target": "FamilyName"
}
]
}
returns the below, even with the FamilyName being present in account schema
{
"messages": [
{
"locale": "en-US",
"text": "A target account attribute \"FamilyName\" is missing from the sources account schema.",
"localeOrigin": "REQUEST"
},
{
"locale": "en-US",
"text": "A target account attribute \"FamilyName\" is missing from the sources account schema.",
"localeOrigin": "DEFAULT"
}
],
"detailCode": "400.1 Bad request content",
"trackingId": "96db07fc294649a0b4ce43570087bf84"
}
The schema is here
{
"name": "AWS IAM Identity Center (new)",
"commands": [
"std:account:list",
"std:account:read",
"std:account:update",
"std:test-connection",
"std:entitlement:list"
],
"sourceConfig": [
{
"type": "menu",
"label": "Configuration",
"items": [
{
"type": "section",
"sectionTitle": "Authentication",
"sectionHelpMessage": "An AWS IAM User is needed to connect to your target Identity Store.",
"items": [
{
"key": "accessKeyId",
"label": "Access Key ID",
"type": "text"
},
{
"key": "secretAccessKey",
"label": "Secret Access Key",
"type": "secret"
}
]
},
{
"type": "section",
"sectionTitle": "Identity Store Config",
"sectionHelpMessage": "Information about the Identity Store you are going to be managing.",
"items": [
{
"key": "identityStoreId",
"label": "Identity Store ID",
"type": "text"
},
{
"key": "region",
"label": "AWS Region",
"type": "text"
}
]
}
]
}
],
"accountSchema":{
"displayAttribute": "UserName",
"identityAttribute": "UserName",
"attributes":[
{
"name": "UserName",
"type": "string",
"description": "User Name (upn)"
},
{
"name": "UserId",
"type": "string",
"description": "Unique Identifier (guid)"
},
{
"name": "Formatted",
"type": "string",
"description": "Friendly Formatted Account Name"
},
{
"name": "FamilyName",
"type": "string",
"description": "Last Name"
},
{
"name": "GivenName",
"type": "string",
"description": "First Name"
},
{
"name": "MiddleName",
"type": "string",
"description": "Middle Name"
},
{
"name": "DisplayName",
"type": "string",
"description": "Display Name"
},
{
"name": "NickName",
"type": "string",
"description": "First Name"
},
{
"name": "Email",
"type": "string",
"description": "Primary Email Address"
},
{
"name": "PreferredLanguage",
"type": "string",
"description": "Preferred Language"
},
{
"name": "Locale",
"type": "string",
"description": "Country Code"
},
{
"name": "entitlements",
"type": "string",
"entitlement": true,
"managed": true,
"multi": true,
"description": "The AWS IAM Identity Center SSO groups that the account belongs to"
}
]
},
"entitlementSchemas": [
{
"type": "group",
"displayAttribute": "DisplayName",
"identityAttribute": "GroupId",
"attributes": [
{
"name": "GroupId",
"type": "string",
"description": "Unique Identifier (guid)"
},
{
"name": "displayName",
"type": "string",
"description": "Display Name"
},
{
"name": "description",
"type": "string",
"description": "Description"
}
]
}
],
"accountCreateTemplate": {
"fields": [
{
"key": "UserName",
"label": "UserName",
"type": "string",
"required": true,
"initialValue": {
"type": "identityAttribute",
"attributes": {
"name": "email"
}
}
},
{
"key": "FamilyName",
"label": "FamilyName",
"type": "string",
"required": false,
"initialValue": {
"type": "identityAttribute",
"attributes": {
"name": "lastname"
}
}
},
{
"key": "GivenName",
"label": "GivenName",
"type": "string",
"required": true,
"initialValue": {
"type": "identityAttribute",
"attributes": {
"name": "firstname"
}
}
},
{
"key": "DisplayName",
"label": "DisplayName",
"type": "string",
"required": false,
"initialValue": {
"type": "identityAttribute",
"attributes": {
"name": "displayName"
}
}
},
{
"key": "Email",
"label": "Email",
"type": "string",
"required": true,
"initialValue": {
"type": "identityAttribute",
"attributes": {
"name": "email"
}
}
},
{
"key": "PreferredLanguage",
"label": "PreferredLanguage",
"type": "string",
"required": false,
"initialValue": {
"type": "identityAttribute",
"attributes": {
"name": ""
}
}
},
{
"key": "Locale",
"label": "Locale",
"type": "string",
"required": false,
"initialValue": {
"type": "static",
"attributes": {
"value": "en-US"
}
}
}
]
}
}