New SQL MA not provisioning?
Hey all,
I'm going a little crazy here, as I believe I've followed all the necessary steps to create a new SQL MA and have user accounts provisioned to it, yet provisioning doesn't happen, with the ERE for MA having a status of "not applied". I wish this would
say WHY it hasn't been applied...
Quick outline:
We've got a SQL Server 2008 database we've created, with a USERS table. We want to export users to it. .
I've created the SQL MA for it, set it up as per MS documentation found online, including run profiles
I've created a new sync rule, as documented below I've modified our existing action workflow that provisions users to our connected systems, adding in the necessary sync rule action
I've done a full import, then full sync on the FIM Service MA I've updated our provisioning script which calls the run profiles via external vbs'
After this, I would expect to see some attempts at provisioning, when performing a provisioning cycle, but don't. Afterwards, looking at the ERL for a new user I've created to test this out, I see the ERE for the new MA shows as Not Applied.
Any ideas what's wrong here please?
Synchronization Rule Configuration
Name
UHDB - Out - Users
Description
Created Time
19/07/2011
Precedence
1
Data Flow Direction
Outbound
Dependency
Scope
Metaverse Resource Type
person
External System
FIM UHDB - Users
External System Resource Type
person
Relationship
Create Resource In External System
True
Enable Deprovisioning
True
Relationship Criteria
ILM Attribute
Data Source Attribute
accountName
USER_NAME
Persistent Outbound Attribute Flows
Allow Nulls
Destination
Source
false
USER_NAME
accountName
false
HIERARCHY_STATUS
CustomExpression(IIF(Eq(hierarchyStatus,"Active"),1,0))
false
OPERATIONAL_STATUS
operationalStatus
true
CREATED_DATE
createdTime
true
FAX_NUMBER
facsimileTelephoneNumber
true
EMAIL_ADDRESS
mail
true
USER_PRINCIPLE_NAME
mail
true
PRIMARY_CRM_PROFILE
primaryCRMProfile
true
SPEED_DIAL
speedDial
true
UPDATED_DATE
updatedDate
true
VALID_FROM
validFrom
true
VALID_TO
validTo
true
ENTERPRISE_GUID
enterpriseGUID
true
FEE_EARNING
feeEarning
true
FIRST_NAME
givenName
true
JOB_TITLE
jobTitle
true
MOBILE_TELEPHONE_NUMBER
mobilePhone
true
PERSONAL_TITLE
personalTitle
true
xxx
xxx
true
LAST_NAME
sn
true
TELEPHONE_NUMBER
telephoneNumber
The USERS table in the database is pretty simple. Here's the defniition:
CREATE TABLE [uh].[USERS](
[ID] [int] IDENTITY(1,1) NOT NULL,
[ENTERPRISE_GUID] [varchar](50) NULL,
[PERSONAL_TITLE] [nvarchar](255) NULL,
[FIRST_NAME] [nvarchar](255) NULL,
[LAST_NAME] [nvarchar](255) NULL,
[PERSONAL_SUFFIX] [nvarchar](255) NULL,
[USER_NAME] [nvarchar](255) NULL,
[USER_PRINCIPLE_NAME] [nvarchar](255) NULL,
[VALID_FROM] [datetime] NULL,
[VALID_TO] [datetime] NULL,
[xxx] [nvarchar](255) NULL,
[SPEED_DIAL] [nvarchar](255) NULL,
[PRIMARY_TEAM_WEIGHTING] [int] NULL,
[FEE_EARNING] [bit] NOT NULL,
[EXTENDED_LEAVE_STATUS] [nvarchar](255) NULL,
[LEAVE_START_DATE] [date] NULL,
[LEAVE_END_DATE] [date] NULL,
[JOB_TITLE] [nvarchar](255) NULL,
[OPERATIONAL_STATUS] [nvarchar](255) NULL,
[EMAIL_ADDRESS] [nvarchar](255) NULL,
[PRIMARY_CRM_PROFILE] [nvarchar](255) NULL,
[TELEPHONE_NUMBER] [nvarchar](255) NULL,
[MOBILE_TELEPHONE_NUMBER] [nvarchar](255) NULL,
[FAX_NUMBER] [nvarchar](255) NULL,
[JOB_TYPE] [nvarchar](255) NULL,
[ORGANISATIONAL_ROLE_ID] [int] NULL,
[MANAGER_ID] [int] NULL,
[HIERARCHY_STATUS] [bit] NOT NULL,
[CREATED_BY] [nvarchar](255) NULL,
[CREATED_DATE] [date] NOT NULL,
[UPDATED_BY] [nvarchar](255) NULL,
[UPDATED_DATE] [date] NULL,
CONSTRAINT [PK_USERS] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Provisioning works fine for our other connected systems.
July 19th, 2011 10:46am
Hi there Amethi,
I would normally refer you to Mr Vilcinskas'
FIM Synchronization Troubleshooting wiki article.
Have you enabled 'Synchronization Rule Provisioning' and configured ERL attribute flows within
the FIM Service MA..
CheersTom Houston, HP Enterprise Services - UK Identity Management Practice
Free Windows Admin Tool Kit Click here and download it now
July 19th, 2011 11:01am
Hi Thomas, yes.
Provisioning works fine for our other three systems. It's just this new one which is failing.
July 19th, 2011 11:03am
and have user accounts provisioned to it, yet provisioning doesn't happen
To be clear, are there any objects in the SQL MA CS?Tom Houston, HP Enterprise Services - UK Identity Management Practice
Free Windows Admin Tool Kit Click here and download it now
July 19th, 2011 11:09am
No, it's a completely empty database, and the CS is completely empty (did do a full import and full sync to do initial discovery).
July 19th, 2011 11:12am
There are no errors in the Request History, or any in the Event logs of the FIM Service or Synchronisation Manager servers.
Well, I say there are no errors, but I've just seen this one in the FIM Service server event log. There's five such errors in succession, ranging back half the day:
Requestor: urn:uuid:fb89aefa-5ea1-47f1-8890-abe7797d6497
Microsoft.ResourceManagement.Service: Microsoft.ResourceManagement.WebServices.Exceptions.InvalidRepresentationException: Exception of type 'Microsoft.ResourceManagement.WebServices.Exceptions.InvalidRepresentationException' was thrown.
at Microsoft.ResourceManagement.ActionProcessor.ActionDispatcher.ValidateObjectAttributes[T](String objectTypeName, IEnumerable`1 parameters, OperationType operationType)
at Microsoft.ResourceManagement.ActionProcessor.ActionDispatcher.ProcessInputRequest(RequestType request)
at Microsoft.ResourceManagement.WebServices.RequestDispatcher.ExecuteAction(RequestType request)
at Microsoft.ResourceManagement.WebServices.RequestDispatcher.ExecuteAction[ResponseBodyType](RequestType request)
at Microsoft.ResourceManagement.WebServices.RequestDispatcher.DispatchRequest[ResponseBodyType](RequestType request, Guid requestIdentifier, Object redispatchSingleInstanceKey, Boolean isRedispatch)
at Microsoft.ResourceManagement.WebServices.RequestDispatcher.DispatchRequest[ResponseBodyType](RequestType request)
at Microsoft.ResourceManagement.WebServices.ResourceManagementService.Create(Message request)
I have no idea if this is related or not though.
Edit: No, don't think this is related. It correlates with another user import operation that was denied for a known reason.
Free Windows Admin Tool Kit Click here and download it now
July 19th, 2011 11:15am
Ok, so user objects exist in the MV, but are not provisioning into the SQL MA's CS during sync.
What were you planning with your anchor? Are you generating an anchor or allowing SQL too..?
Tom Houston, HP Enterprise Services - UK Identity Management Practice
July 19th, 2011 11:21am
That's right Thomas, the object is in the MV.
The anchor is the ID column in the database. This is a standard identity auto-increment column.
Free Windows Admin Tool Kit Click here and download it now
July 19th, 2011 11:36am
Do you have one or more attributes configured as "initial flow only"? I think this is also a trigger for provisioning. If these are absent the rule might remain as "not applied".http://setspn.blogspot.com
July 19th, 2011 11:47am
When using an auto-incremented identity column, & dealing with a CDS that generates the anchor...
With classical provisioning, I construct a temporary DN value & set it before calling csentry.CommitNewConnector();
Looks like this may also be required with declarative provisioning - can you give it a go & let us know how you get on.
Cheers
Tom Houston, HP Enterprise Services - UK Identity Management Practice
Free Windows Admin Tool Kit Click here and download it now
July 19th, 2011 12:33pm
Correct. Flow the csObjectID to the dn and mark it as initial flow only. This will allow the connector to be provisioned.
July 20th, 2011 3:53am
Thanks Paul, and everyone that helped, I've now got provisioning working! :)
Well, there's some data-type mis-matches, but nothing I can't work through. Thanks again.
Free Windows Admin Tool Kit Click here and download it now
July 20th, 2011 5:11am
When using an auto-incremented identity column, & dealing with a CDS that generates the anchor...
With classical provisioning, I construct a temporary DN value & set it before calling csentry.CommitNewConnector();
Looks like this may also be required with declarative provisioning - can you give it a go & let us know how you get on.
Yep, this is correct -
Provisioning objects to a SQL data source that is authoritative for the anchor value
Cheers,
MarkusMarkus Vilcinskas, Knowledge Engineer, Microsoft Corporation
July 20th, 2011 10:53am


