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.

0
Completed

Allow $logger component to specify module and submodule fields

Adrian Corston 4 years ago in UNIFYBroker Service updated by Matthew Davis (Technical Product Manager) 4 years ago 1

There is no documented way to set the third and fourth fields (which I will call 'module' and 'submodule') of each UNIFYBroker log entry when calling the $logger component.  It would be nice to be able to set them to more informative values, rather than always having them as 'UNIFYBroker' and 'PowerShellTask' respectively.

Answer

Hi Adrian,

The $logger component is designed to be a simple wrapper around the logging mechanism. For more complex log messages, use the $messageService variable. 

There's some extension methods provided for the next level of logging. You can find more information on those here:

Class NotificationEnumerableExtensions (unifysolutions.net)

Otherwise, you can use the underlying NotificationMessageService to notify listeners of a particular message. In this case, the product loggers will be listening on ILogEntryNotification: Class LogEntryNotification (unifysolutions.net)

The tricky thing with crafting one of these will be building the branding object, (for a BrandedLogEntry). Technically this would allow you to change both the 'module' and 'submodule' components.


For ease of use, i'd recommend just using the NotificationEnumerableExtensions to log - which still use the underlying product for the third field but allow you to define the fourth field.

As a side note, for some reason the $messageService variable isn't actually hooked up for the Plus components, but is hooked up for the Powershell connector and transformations.

0
Not a bug

Next run times don't look right for newly added connector schedules

Adrian Corston 5 years ago in UNIFYBroker Service updated by Matthew Davis (Technical Product Manager) 5 years ago 3

It's ~9:30am and I just added and enabled an Import All and Import Changes schedule to a connector.  The Import All I set to run at 12:55:57am, and the Import Changes every 1 minute.  The following appeared, which doesn't look right - 1am isn't an hour away, and one minute is not 10 hours away:

Image 5924

Answer

Hi Adrian,

The scheduled times are displayed in the local time of the machine. In this case, the containers are running on UTC. So with the UTC time (at time of screenshot) being 11pm on 30 November, that looks accurate.

0
Under review

Re-order Connectors and Adapters

Adrian Corston 5 years ago in UNIFYBroker Service updated by Matthew Davis (Technical Product Manager) 3 months ago 1

In UNIFYBroker we could edit the connector and adapter extensibility files to re-order the connectors and adapters in the web UI.  Could you please add a facility to do this in UNIFYConnect?

0
Not a bug

Join with Sliding Window with Most Relevant doesn't match record with NULL end date

Adrian Corston 5 years ago in UNIFYBroker Service updated by Matthew Davis (Technical Product Manager) 5 years ago 6

UNIFYBroker v5.3.2 with Chris21.

Chris21 Person adapter is configured with a Join transformation to a Chris21 placement connector with a Sliding Window and type Relevant.  A placement with a start date in the past and a NULL end date is not being selected (a NULL end date means ongoing placement, with no scheduled end date).  Instead, the most recent placement with a non-NULL end date is selected.

Here is the placement data:

Image 5870

Here is the configuration:

Image 5871

The transformed adapter data shows an incorrect posstart and posend (and all other selected attributes):

Image 5872

This problem did not occur in Identity Broker v4.

It may also be relevant to note that the 'First' or 'Priority Selection' radio box does not appear for the Relevant type.  It used to appear for this transform and type in Identity Broker v4.

Answer

Hi Beau, sorry I thought I'd already responded to this.  The problem was just a handful of records and Generate Changes cleared it.  Please close this ticket.

0
Completed

REST API endpoint for external Azure Access Request call-ins

Adrian Corston 5 years ago in UNIFYBroker Service updated by Matthew Davis (Technical Product Manager) 5 years ago 4

In this morning's MS Identity Advisors session MS provided a clear indication that they are planning to move towards a call-out model for on-demand Access Request integration with external systems.  To get ahead of the curve on this, we could look at offering an extensible REST API endpoint in UNIFYBroker.

Typical usage would be:

Azure sends UNIFYBroker a request for user "bobsmith" asking UNIFYBroker for a certain attribute for that user (e.g. department number) or asking UNIFYBroker to provide an answer to a question (such as "is this user allowed to get access to resource X at the moment?")  UNIFYBroker responds and Azure uses that information to approve or deny an in-flight Access Request.

My suggested solution is that the request for user "bobsmith" (and/or "resource X") would map to a adapter record lookup, and the "answer" UNIFYBroker gives back would be the value of one or more fields for that matching record.

Answer

Hi Adrian

Since v5.2, Broker has included the OData gateway, which allows adapter entities to be queried via an OData REST API, which would cover the use case in your example. That said, since it's introduction I don't believe it's seen much, if any, real usage so may not fully support the types of request and filtering features that would be expected of it. Improving the OData gateway is definitely something we're interested in for future releases, so if you have the chance to try it out your feedback would be appreciated.

Also introduced in v5.2, the SCIM gateway provides a REST API conforming to the SCIM 2 specification, a standardized data schema for transmitting identity information via JSON payloads. The primary usage of this gateway thus far has been to connect Broker with Azure AD, which operates as a SCIM client to pull and push standardized users and groups from Broker. I mention it because it does support search and filtering features that would cover your example use case, however the rigid data structure it provides may be too limiting for non-SCIM-specific scenarios.

0
Answered

Difference between the Time Offset configuration in IDB 4 and IDB 5

Hi Team,

In IDB 4, the Join Transformation has this configuration (see attached screenshot) 

Image 5863

Whereas, in IDB 5 looks like this (see attached screenshot) 

Image 5864


How come in IDB 4 its a - sign between [posstart] and time offset, whereas in IDB 5 its a + sign? What are the difference? Thank you

Regards,
Marc Laroza

Answer

Hi Marc

I believe the v4 UI was incorrect, and it was updated to reflect how the offset times are actually calculated. I don't think the actual behaviour of the transformation changed, but you should double check this to be sure.

0
Fixed

AD Connector ObjectSid field not working with Postgresql

Matthew Davis (Technical Product Manager) 5 years ago in UNIFYBroker Service updated by anonymous 3 years ago 2

When running an import on AD Groups, the objectSid field is defined as a string on the connector schema. SQL can import this field fine (although shows as jargon on the UI). Postgres fails to import with the following error:

Connector Processing page 1 for connector On-Prem Groups failed with reason 22P05: unsupported Unicode escape sequence. Duration: 00:00:08.3359933.
Error details:
Npgsql.PostgresException (0x80004005): 22P05: unsupported Unicode escape sequence
at Npgsql.NpgsqlConnector.<>c__DisplayClass161_0.<<readmessage>g__ReadMessageLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Npgsql.NpgsqlConnector.<>c__DisplayClass161_0.<<readmessage>g__ReadMessageLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Npgsql.NpgsqlDataReader.<nextresult>d__46.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Npgsql.NpgsqlDataReader.NextResult()
at Npgsql.NpgsqlCommand.<executedbdatareader>d__100.MoveNext()</executedbdatareader></nextresult></readmessage></readmessage>


Changing the field type to 'binary' and attempting an import yields a different error at an earlier stage:

nify.Product.IdentityBroker.EntitySchemaValidationException: Invalid binary - the value was a string, but was not able to be converted as a base64 encoded string from: ??? ? ---> System.FormatException: The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.
at System.Convert.FromBase64_Decode(Char* startInputPtr, Int32 inputLength, Byte* startDestPtr, Int32 destLength)
at System.Convert.FromBase64CharPtr(Char* inputPtr, Int32 inputLength)
at System.Convert.FromBase64String(String s)
at Unify.Product.IdentityBroker.EntityBinaryTypeSchemaValidator.CreateValue(Object dataValue)
0
Under review

Extensibility config lost due to full hard disk

Liam Schulz 5 years ago in UNIFYBroker Service updated by Matthew Davis (Technical Product Manager) 6 months ago 1

Hi,

Recently we had an issue come up where the server ran out of disk space while writing the XML config files.

Would we be able to request a feature where the existing file is renamed to a .bak file before writing a new XML file.

If the server runs out of disk space, the file will fail to rename, preventing the mentioned issue.

Thanks

0
Under review

MIM Sync Adapter integration usability improvement suggestion

Bob Bradley 5 years ago in UNIFYBroker Service updated by Matthew Davis (Technical Product Manager) 6 months ago 4

At the UNIFYBroker site I am presently working on there are now 7 Broker-driven management agents for MIM, most of which interact with multiple adapters.  I have found that it starts to get unwieldy when it a single schema change in a single connector requires a schema/interface refresh of all 7 management agents.  Furthermore, when deploying MIM sync configuration and using the schema matching dialog, there is a need to deselect all of the adapters (LDAP partitions) which are not relevant to each particular MA, complicating the deployment process.

It would be great if there was a way to limit visibility of the UNIFYBroker adapter set on a per-management agent basis - and the most obvious way I could think of achieving this would be by using multiple LDAP user accounts, and extending the Settings page to support mutli-selection of adapters per LDAP user.  In this way, adapters visible to any given MIM MA would be determined by the use of an appropriate user account - rather than the current practice of using the same LDAP user for every MA.

This would address both of my above scenarios as follows:

  1. A single connector schema change would potentially limit the need for schema refreshes to a single MA; and
  2. Partitions not visible to the LDAP account would no longer appear on the partition matching dialog, and in most cases this would reduce the number of partitions requiring deselection (and in many cases eliminate the partition matching dialog being displayed altogether) when importing MIM sync server config XML.
0
Fixed

Reverse DN Converter transform silently ignores value deletion

Adrian Corston 5 years ago in UNIFYBroker Service updated 5 years ago 7

I have an adapter with the following transform:

Image 5762

This transform works as expected in both directions, but when an update comes from the LDAP gateway to delete the DN value that LDAP request is successful, but the old values for the DN (SubsectionDN) and the source attribute (Subsection) are retained.