IBM Security Verify

 View Only
  • 1.  Providing ISIM WS API by means of REST protocol

    Posted Tue April 13, 2021 12:41 PM

    Dear IAM colleagues,

    we have a homemade IAM solution which was developed in zOS and progressed since 1991. This is our identity central management point, I mean, where the identities are born, the authorisations are approved, reviewed and recertificated, and so on, being ISIM the provisioning solution, ie, the responsible for granting the authorized groups in the managed system. Thus, when an authorization is needed, and once it is approved in our homemade development, it has to be done manually by a set of users in ISIM. Taking into consideration most of the functionalities can't be provided by Verify Governance, we have started a project to integrate both solutions to minimize the manual interactions.

     Prerequisites:

    • Use zOS Connect for the communication from zOS to LINUX (ISIM)
    • Use ISIM WS API since REST API doesn't provide all the operations required

     Handicap:

    • Provide all the WS API operations by REST

     Questions

    • Any of you have a similar situation?
    • Do you know if it is foreseen to provide the whole of WS operations by means of REST API?
    • Could IBM Datapower convert REST to WS in a easy way?
    • Maybe IDI?

    Thanks for your point of view.

    ------------------------------
    Felipe Risalde Serrano
    Security Expert
    Banco de España
    ------------------------------


  • 2.  RE: Providing ISIM WS API by means of REST protocol

    Posted Wed April 14, 2021 02:36 AM
    As I read you description here you are basically asking 2 questions : 

    1. A technical question on how to expose certain functionality through REST APIs
    2. How to automate integration between an external identity source and request system to an IGA (ISIM/IGI/SVG or whatever) environment.
    The first I believe you should document carefully what REST APIs you are missing in ISIM and raise an RFE containing your request. There has been focus on providing more APIs as REST recently. Now - talking about APIs and ISIM there are levels of APIs - the WS and (external) JAVA APPS API are similar in functionality and provide "high level" functionality (business functions). WS APIs provides and extension functionality which is great if you need to provide functionality that is not provided OOTB. REST APIs for ISIM was originally built to support ISC and hence provides APIs mostly targeting the UI work and generic interfacing. At the bottom of ISIM APIs we have the Java data services API - that is what is used internally in ISIM - this is not completely documented (not like the SDI APIs that are fully documented) and only documented APIs are supported. 

    My working with APIs has mostly been on the Java side - I always seem to end up in situations where something is missing if I go to the higher levels - the last many years I have become very fond of using the APIs in SDI (on the ISIM server - a lot of the APIs are not easily externalized) - doing this is making it possible to develop ISIM code 10 times faster than using Java tools (for me - I am not an trained Java developer). Some years ago I played around trying to do a generic REST exposing of some the ISIM Java APIs - this is relatively simple - but it stalled as I did not really had the need - so it was more an educational exercise for me...

    Now - how to expose some functionality - there is not a clear answer - and many options are possible. So - IMHO - you need basically first to deep dive into your future solution to understand the interfaces - IMHO the most critical design point in any architecture - getting the interfaces right will normally also give you a deeper understanding of the volume/complexity of the solution and hence give you an idea what will suite best - short term and long term.

    And this brings me to the second point. Designing an over all solution like yours is no easy task - normally in IGA we talk about things like "Authoritative Identity Sources", "Request flows" and "Provisioning". When I talk with clients about their architecture I normally focus keeping these things logically apart in the architecture - this has some consequences and basically lays out your interfaces and base functionality. Let me try to explain - the identity source is probably easily understood - typically there is a single system - SAP HCM is often used for employees - and you will need to design an HR Feed from the source system to your IGA system (ISIM/IGI etc.) This should be a one way system (because it is the "authoritative" one) and should include all necessary data to drive the downstream processes. One design principle is also to mandate that the process is consistent whatever the Identity data is entered from the HR Feed, UI or APIs - i.e. it is encapsulated and functionally complete.

    The "Request flow" is more difficult to handle  as most IGA systems like ISIM and IGI has no simple ootb externalization model for this. I do not know if you have studied the IGI ServiceNow integration which is a specific (not generic) externalization of IGI requests to ServiceNow, but this provides a good idea of what is needed. Basically you need to be able to expose a "catalog" of what can be requested - and the associated metadata of who can request what (if you have these kind of restrictions) which probably will require some kind of a common organizational model that can be referenced or sourced from your IGA system. And you probably also need to ensure that when a request is sourced from the external system that the flow in the IGA system is not triggering approvals/conflicts etc. which means the request system most be able to provide a fully valid/approved request which is NOT simple if you have things like SoD validations also - in these cases you probably need to make additional calls in the request flow system before the approvals are performed - no simple task. And then you need the provisioning system to feed back status of the actual provisioning - this may sound simple - but if you use RBAC you may end up having some parts of the request failing and your integration should handle that gracefully...

    My recommendation for you is to hire a very senior IAM consultant/architect to design your architecture and your roadmap - this is not a product discussion but to get to an deeper understanding of the dependencies and how to be able to breakdown the problems into logical separate "domains" - if you do not do that upfront you may be haunted by problems down the road that can be very expensive. I would probably recommend something like 2-4 weeks workshops/documentation work to achieve this...

    HTH

    ------------------------------
    Franz Wolfhagen
    IAM Technical Architect for Europe - Certified Consulting IT Specialist
    IBM Security Expert Labs
    ------------------------------



  • 3.  RE: Providing ISIM WS API by means of REST protocol

    Posted Fri April 30, 2021 06:59 AM

    Hi Franz,

    sorry for the delay, I prefered to wait for the User Group hold 2 weeks ago to have a best understanding about the ISIM REST API future. As we supposed, IBM's intention (in line with the market) is to increase the number of ISIM REST operations. Indeed, there are new ones in ISIM 10 for password policies management.

     Thus, after getting in contact with the Product Manager and a team member, and as you suggested us before, we have made a RFE to accelerate the delivery of some REST API such as, provisioning policies.

    Meanwhile, we will use IBM Datapower for exposing the WS provisioning policy modify operation as REST (it would be our POC). As you can see here, it is documented as one of the features where DataPower can help us in an easy way. As soon as it will be delivered, we will invocate the official one.

    https://www.ibm.com/cloud/garage/dte/tutorial/expose-soap-service-rest-api/

    Moving to the integration topic, nowadays the procedures for "Authoritative Identity Sources", "Request flows" and "Provisioning" are defined and working, but not in the best way (they work in a semi-automatics or even manual manner). Some of them need to be updated, like using DSML files for create/modify identities in ISIM. Others (to be honest) are not supported, like executing LDAP commands (years ago ISIM hadn't got A2A interface). And the latest, as easy as sending a list of tasks to be done in ISIM console by the Administrators. Thus, a manual intervention is required in ISIM for all of them, and in additional, neither are executed "immediately". 

    As summary,  more than redisigned our solution (as I said it is a work to be done in the future - probabbly when we move to a hybric model) we are going to make a little effort to automatic the integration between ISIM an our homemade IAM solution.  

    Nevertheless, thank for your valuable advises.

    I keep you posted about our progression.

     PS: BTW, our zOSConnect colleagues are asking the SWAGGER of ISIM REST API. Does some of you know how to get it? As far as I know, it is a OpenAPI specifications required for designing REST clients, but it is not provided in the ISIM documentation. It there is no way, we will open a request to IBM.



    ------------------------------
    Felipe Risalde Serrano
    Security Expert
    Banco de España
    ------------------------------



  • 4.  RE: Providing ISIM WS API by means of REST protocol

    Posted Mon May 03, 2021 10:22 AM
    On the REST API specifications - we only provide HTML documentation which can be found in : 
    ISIM Software Stack (6/10): $ISIM_HOME/extensions/<version>/doc/rest
    ISIM VA (7/10): LMI > Configure > Custom File Management > All Files > utilities > extensions.zip (then the same path as above in the zip).

    HTH

    ------------------------------
    Franz Wolfhagen
    IAM Technical Architect for Europe - Certified Consulting IT Specialist
    IBM Security Expert Labs
    ------------------------------



  • 5.  RE: Providing ISIM WS API by means of REST protocol

    Posted Fri January 07, 2022 05:46 AM
    Hi IBM,
    Is there any documentation/steps to consume ISIM WS or REST APIs via any IDE to implement customized code using these WS

    ------------------------------
    Jagadeesh D
    ------------------------------



  • 6.  RE: Providing ISIM WS API by means of REST protocol

    Posted Fri January 07, 2022 06:04 AM
    I am afraid that there is only limited material available - there was some in historical time on the IBM DeveloperWorks site - but that has gone. I believe that there is quite a lot documented on ISIM specialists that has done integrations...

    That said - I am using Eclipse for ISIM Java development - that is pretty straight forward to setup - you need to include the relevant libraries as documented in the examples - from there I simple do an export as jar and manually port that to my ISIM development environment by simple file operations. 

    KISS rules :-)

    HTH

    ------------------------------
    Franz Wolfhagen
    IAM Technical Architect for Europe - Certified Consulting IT Specialist
    IBM Security Expert Labs
    ------------------------------