Identity Broker Forum
Welcome to the community forum for Identity Broker.
Browse the knowledge base, ask questions directly to the product group, or leverage the community to get answers. Leave ideas for new features and vote for the features or bug fixes you want most.
Only the IB install user can uninstall IB service or SAS2IDM connector
I cannot see IB Service or the SAS2IDM connector in Control Panel Programs unless I log in as user who installed them.
Richard Courtney installed IB and if I log in as him I see ALL IB components in CP programs. I have tried two other domain and local admins but only see the IB FIM component (and the EB components)
At this moment I must therefore login as the "installer" if I want to un-install.
Permission issues with pluggable views and connector images when using IIS
The following error appears for pluggable views when using IIS. The issue may be to do with the permission set required by the IIS user, although I am logged on as the local and domain Administrator account and using Windows authentication:
System.UnauthorizedAccessException: Access to the path 'C:\Program Files\UNIFY Solutions\Identity Broker\Web\Views\Temp\Connector\ExtendedDisplayConnector\Unify.Connectors.PlaceholderDisplayConnector.cshtml' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize)
at System.IO.StreamWriter..ctor(String path, Boolean append)
at Unify.Framework.Web.UnifyRazorViewEngine.CreateView(ControllerContext controllerContext, String path) in c:\Program Files (x86)\Jenkins\jobs\Framework Core (DEV)\workspace\Source\Web\Unify.Framework.Web\Razor\UnifyRazorViewEngine.cs:line 110
at Unify.Framework.Web.UnifyRazorViewEngine.CreatePartialView(ControllerContext controllerContext, String partialPath) in c:\Program Files (x86)\Jenkins\jobs\Framework Core (DEV)\workspace\Source\Web\Unify.Framework.Web\Razor\UnifyRazorViewEngine.cs:line 134
at System.Web.Mvc.VirtualPathProviderViewEngine.FindPartialView(ControllerContext controllerContext, String partialViewName, Boolean useCache)
at System.Web.Mvc.ViewEngineCollection.Find(Func`2 lookup, Boolean trackSearchedPaths)
at System.Web.Mvc.PartialViewResult.FindView(ControllerContext context)
at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
at System.Web.Mvc.ControllerActionInvoker.<>c_DisplayClass1c.<InvokeActionResultWithFilters>b_19()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult)
at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
Additionally connector images are not coming through.
An import to Identity Broker fails due to a NullReferenceException
The inclusion of a Relational.Composite adapter tranformation causes a FIM-instigated full import (adapter) to fail with the following exception:
Log Name: UNIFY.IdB.PeopleSoft Source: Adapter get all entities for adapter failed. Date: 3/10/2012 11:50:00 AM Event ID: 0 Task Category: None Level: Warning Keywords: Classic User: N/A Computer: D-OCCCP-AS001.dbb.local Description: Error occurred in module: Adapter Adapter get all entities for adapter 5db0f5e1-a032-450a-9415-fa4863f171da failed with reason Object reference not set to an instance of an object.. Duration: 00:00:40.8116688 Error details: System.NullReferenceException: Object reference not set to an instance of an object. at Unify.Framework.ArrayEqualityComparer`1.GetHashCode(T[] obj) at Unify.Framework.MultiKeyValue.GetHashCode() at System.Collections.Generic.GenericEqualityComparer`1.GetHashCode(T obj) at System.Linq.Set`1.InternalGetHashCode(TElement value) at System.Linq.Set`1.Find(TElement value, Boolean add) at System.Linq.Set`1.Add(TElement value) at System.Linq.Enumerable.<DistinctIterator>d__7a`1.MoveNext() at System.Linq.Enumerable.Count[TSource](IEnumerable`1 source) at Unify.Repository.EntityExpressionQueryVisitor`3.CreateMultiValueRangeExpression(IMultiKey`1 multiKey, IEnumerable`1 sourceValueList, IQueryable`1 sourceQueryable) at Unify.Repository.EntityExpressionQueryVisitor`3.VisitMethodWhereWithMultiValueEnumerableContains(MethodCallExpression expression) at Unify.Repository.EntityExpressionQueryVisitor`3.VisitMethodCall(MethodCallExpression m) at Unify.Framework.ExpressionVisitorBase`11.Visit(Expression exp) at Unify.Framework.LinqContextConversionExpressionVisitorBase`5.ConvertExpression(Expression partitionExpression) at Unify.Framework.LinqQueryConversionProvider`5.GetOrderedQuery(Expression businessExpression, IQueryable`1 sourceQueryable, TContext sourceContext) at Unify.Framework.LinqWhereQuery`5.EvaluateQuery(TContext context) at Unify.Framework.LinqWhereQuery`5.GetEnumerator() at System.Linq.Lookup`2.Create[TSource](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer) at System.Linq.Enumerable.ToLookup[TSource,TKey](IEnumerable`1 source, Func`2 keySelector) at Unify.Framework.EntityCompositeKeyDistinguishedNameStaticRelationValueAdapterBase.Transform(IEnumerable`1 sourceValue) at Unify.Framework.ChainValueAdapter`3.Transform(TBaseValue baseValue) at System.Linq.Enumerable.<>c__DisplayClass12`3.<CombineSelectors>b__11(TSource x) at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`1.MoveNext() at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext() at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`1.MoveNext() at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext() at Unify.Framework.EnumerableExtensions.<ActionOnFirst>d__1c`1.MoveNext() at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at Unify.Framework.ActionOnExceptionEnumerator`1.MoveNext() at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`1.MoveNext() at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext() at System.Linq.Enumerable.<ConcatIterator>d__71`1.MoveNext() at Unify.Framework.LDIFComponentFileGenerator`1.GenerateFile(TextWriter writer, IEnumerable`1 entries) at Unify.Framework.LDIFAdapter.<>c__DisplayClass7`1.<CreateLDIFComponentStream>b__6(Stream stream) at Unify.Framework.LazyEvaluationStream.Evaluate(Object obj) Event Xml: <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="Adapter get all entities for adapter failed." /> <EventID Qualifiers="0">0</EventID> <Level>3</Level> <Task>0</Task> <Keywords>0x80000000000000</Keywords> <TimeCreated SystemTime="2012-10-03T01:50:00.000000000Z" /> <EventRecordID>1364406</EventRecordID> <Channel>UNIFY.IdB.PeopleSoft</Channel> <Computer>D-OCCCP-AS001.dbb.local</Computer> <Security /> </System> <EventData> <Data>Error occurred in module: Adapter Adapter get all entities for adapter 5db0f5e1-a032-450a-9415-fa4863f171da failed with reason Object reference not set to an instance of an object.. Duration: 00:00:40.8116688 Error details: System.NullReferenceException: Object reference not set to an instance of an object. at Unify.Framework.ArrayEqualityComparer`1.GetHashCode(T[] obj) at Unify.Framework.MultiKeyValue.GetHashCode() at System.Collections.Generic.GenericEqualityComparer`1.GetHashCode(T obj) at System.Linq.Set`1.InternalGetHashCode(TElement value) at System.Linq.Set`1.Find(TElement value, Boolean add) at System.Linq.Set`1.Add(TElement value) at System.Linq.Enumerable.<DistinctIterator>d__7a`1.MoveNext() at System.Linq.Enumerable.Count[TSource](IEnumerable`1 source) at Unify.Repository.EntityExpressionQueryVisitor`3.CreateMultiValueRangeExpression(IMultiKey`1 multiKey, IEnumerable`1 sourceValueList, IQueryable`1 sourceQueryable) at Unify.Repository.EntityExpressionQueryVisitor`3.VisitMethodWhereWithMultiValueEnumerableContains(MethodCallExpression expression) at Unify.Repository.EntityExpressionQueryVisitor`3.VisitMethodCall(MethodCallExpression m) at Unify.Framework.ExpressionVisitorBase`11.Visit(Expression exp) at Unify.Framework.LinqContextConversionExpressionVisitorBase`5.ConvertExpression(Expression partitionExpression) at Unify.Framework.LinqQueryConversionProvider`5.GetOrderedQuery(Expression businessExpression, IQueryable`1 sourceQueryable, TContext sourceContext) at Unify.Framework.LinqWhereQuery`5.EvaluateQuery(TContext context) at Unify.Framework.LinqWhereQuery`5.GetEnumerator() at System.Linq.Lookup`2.Create[TSource](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer) at System.Linq.Enumerable.ToLookup[TSource,TKey](IEnumerable`1 source, Func`2 keySelector) at Unify.Framework.EntityCompositeKeyDistinguishedNameStaticRelationValueAdapterBase.Transform(IEnumerable`1 sourceValue) at Unify.Framework.ChainValueAdapter`3.Transform(TBaseValue baseValue) at System.Linq.Enumerable.<>c__DisplayClass12`3.<CombineSelectors>b__11(TSource x) at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`1.MoveNext() at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext() at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`1.MoveNext() at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext() at Unify.Framework.EnumerableExtensions.<ActionOnFirst>d__1c`1.MoveNext() at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at Unify.Framework.ActionOnExceptionEnumerator`1.MoveNext() at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`1.MoveNext() at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext() at System.Linq.Enumerable.<ConcatIterator>d__71`1.MoveNext() at Unify.Framework.LDIFComponentFileGenerator`1.GenerateFile(TextWriter writer, IEnumerable`1 entries) at Unify.Framework.LDIFAdapter.<>c__DisplayClass7`1.<CreateLDIFComponentStream>b__6(Stream stream) at Unify.Framework.LazyEvaluationStream.Evaluate(Object obj)</Data> </EventData> </Event>
The following is the adapter configuration which triggered the problem:
<adapter name="Relational.Composite" RelationshipConnectorId="{2030B82B-BCE1-40DD-A1EE-09C9F0DC66C6}" > <Relationships> <Relationship InputKey="SalAdminPlan" RelationshipKey="SalAdminPlan" /> <Relationship InputKey="Grade" RelationshipKey="Grade" /> </Relationships> <dn target="Grades"> <dnComponent name="Field" key="Grade" attributeType="CN" /> <dnComponent name="Constant" value="Grades" attributeType="OU" /> <dnComponent name="Field" key="SalAdminPlan" attributeType="CN" /> <dnComponent name="Constant" value="Plans" attributeType="OU" /> </dn> </adapter>
The generated full import of the adapter minus the above transformation would have been attached for reference had the subsequent full import attempt not failed with a timeout exceeded exteption (see comments), as I am suspecting null data values may not be being handled in the hash function call.
1000.jobs.evtx
Installed.png
PlatformDetails.txt
Unify.Framework.AdapterEntityTransformation.dll
Unify.Framework.Collections.dll
Upgrade from 3 to 5 does not update the DB name and Server name in Unify.Framework.Data.DataEnginePlugInKey.extensibility.config.xml
When I test the upgrade from Ideb 3 to IdB 5 using all the files in the IdB 3 Extensibility folder the "Unify.Framework.Data.DataEnginePlugInKey.extensibility.config.xml" file is not updated with the data entered during the installation process.
The Database name and DB server needed to be changed:
From
<?xml version="1.0" encoding="utf-8" ?> <DataEngine> <dataRepository> <dataConnection name="sql" repository="Unify.IdentityBroker" connectionString="Data Source=localhost;Initial Catalog=Unify.IdentityBroker;Integrated Security=True" /> </dataRepository> </DataEngine>
To:
<?xml version="1.0" encoding="utf-8" ?> <DataEngine> <dataRepository> <dataConnection name="sql" repository="Unify.IdentityBroker" connectionString="Data Source=svr-app1;Initial Catalog=Unify.IdentityBroker5;Integrated Security=True" /> </dataRepository> </DataEngine>
Handling of ModifyAnchor when the Identity Broker ID is being provisioned
The following error was thrown when attempting to provision a new user to the SharePoint Org Profile connector (which is not a ModifyAnchor connector, see IDBSP-44):
System.ServiceModel.FaultException`1System.ServiceModel.ExceptionDetail: Object reference not set to an instance of an object. (Fault Detail is equal to An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is:
System.NullReferenceException: Object reference not set to an instance of an object.
at Unify.Notification.TaskNotifier`1.Dispose()
at Unify.Framework.EventNotifierModifyAnchorConnectorDecorator.ModifyAnchor(MultiKeyValue oldKey, MultiKeyValue newKey)
at Unify.Framework.Adapter.<>c_DisplayClass34.<CheckAnchorChangeOnSave>b_2f(KeyValuePair`2 keyValue)
at Unify.Framework.Visitor.<>c_DisplayClass1`1.<Visit>b_0(T item, Int32 index)
at Unify.Framework.Visitor.VisitT(IEnumerable`1 visitCollection, Action`2 visitor)
at Unify.Framework.Visitor.VisitT(IEnumerable`1 visitCollection, Action`1 visitor)
at Unify.Framework.Adapter.CheckAnchorChangeOnSave(IEntitySchema connectorSchema, IEnumerable`1 entitiesToSave, IEntityPartitionUpdatableContext connectorContext, IEnumerable`1 entityIds)
at Unify.Framework.Adapter.SaveEntities(IEnumerable`1 entities, Boolean reflect)
at Unify.Framework.A...).
This was resolved by removing the creation of the Identity Broker ID from the provisioning logic, however, there may be solutions where this is a design requirement where no other uniqueness can be guaranteed at provision time. Regarding the above, the entity was being added, so no modify behaviour should be taking place. This behaviour either needs to be corrected, or a better error message put in its place (if there is a legitimate reason a modify operation is being attempted and failing with a null reference).
Transformation: Constant
A useful extended transformation would be to create a constant. This allows it to be used in matching rules before the importflowrules.
Inputs: Datatype, value, column name.
Type mismatch with GetValue seems to throw misleading error
See IDB-227. When GetValue was called to retrieve a StringValue from an integer field, the error stated "Type Entity was expected". A quick search on JIRA shows this message coming up where the GetValue type does not match the field definition type. This error message should be improved for future Identity Broker versions.
Deletes in composite adapter broken
The check to confirm that a delete has succeeded has regressed Identity Broker.
In a composite adapter, entity ids don't have to belong to the adapter being visited, and as such the error will occur for every delete performed.
If the adapter containing the deleted entity is first in the configuration, the delete will succeed, but report back a failure when an exception in thrown in another adapter.
If the adapter containing the deleted entity is not the first in the configuration, the delete will fail and report back the failure.
Configuration needs to be checked in IdentityBroker for the uniqueness of adapter ids with regards to inner adapter ids
An identity broker adapter engine configuration similar to the following will not break, and will overwrite entities in the db:
<composite-adapter id="YYYYYYY">
<adapter id="XXXXXXXXX" />
</composite-adapter>
<adapter id="XXXXXXXXX" />
Clear changes table when entities not present
I have not performed any operations on my local IdB 4 build, but the adapter is reporting 51909 changes. This is because there are 51909 items in the changes table for the adapter. However, there are no entities present in the Entity table. Relationship should be added between the two tables to clear the changes when the entity no longer exists.
Customer support service by UserEcho