Skip to main content

Easy to use Python client for IBM Security Identity Manager (ISIM/ITIM) web services (SOAP and REST APIs)

Project description

PyISIM

PyPI version shields.io PyPI status PyPI license Code style: black

Python client for IBM Security Identity Manager (ISIM / ITIM) web services (SOAP and REST APIs)
Tested on ISIM 7.0.1 FP13 and ISIM 7.0.2 FP2 Due to API limitations some functionalities are served through ISIM's REST API and some other through ISIM SOAP Web Services.

Docs

You can read the full documentation here

Examples

Look for the tests/ folder in our Github repo to see some more detailed examples.

  • Login
from pyisim.auth import Session
user="itim manager"
password="secret"
cert="./my_certificate.cer"
url="iam.isim.com"
sess=Session(url,user,password,cert)

Every example after assumes you have already a valid Session object named sess

  • Creating people
from pyisim.entities import Person
info_persona={
    "employeenumber": "1015463230",
    "correo": "cazdlt@gmail.com",
    "title": "Especialista de producto",
    "departmentnumber":"IBM",
}
persona = Person(sess, person_attrs=info_persona)
persona.add(sess,"my org","my justification")
  • Modifying people
from pyisim import search
persona = search.people(sess,Person,"employeenumber","1015463230",limit=1)[0]
persona.title="CEO"
persona.modify(sess,"my justification")
  • Custom Person/BPPerson entities
from pyisim import Person
from pyisim import search

class MyBPPerson(Person):

    profile_name="BPPerson"

    def __init__(self,info,first_name=None):
        if first_name is None:
                first_name = "Andrés"
        info["givenname"] = first_name

        super().__init__(person_attrs=info)

MyBPPerson({"sn":"Zamora"}).add(sess,"my org","New BPPerson")
  • Access request
from pyisim import search
accesses=search.access(sess,search_filter="*Consulta*",limit=5)
person=search.people(session,by="givenname",search_filter="Juan",limit=1)[0]
response=person.request_access(session,accesses,"justification")
request_id=response.request.id # easily get request id
  • Approve activity
request_id="9585474949338"
actividad=search.activities(session,by="requestId",search_filter=request_id,limit=1)[0]
actividad.complete(sess,"approve","justification")
  • Fulfill RFI
request_id="123483274614"
form=[
    {
        "name":"description",
        "value":[dn_rol],
    },
    ...
]
actividad=search.activities(session,by="requestId",search_filter=request_id)[0]
actividad.complete(sess,form,"justification")
  • Update property files (ISIM VA)
from pyisim.va.auth import VASession
from pyisim.va.configure import update_property


u="admin@local"
p="secret"
url="iam.isimva.com"
cert="./mycert.cer"

s=VASession(u,p,url,cert)

property_file="CustomLabels.properties"
property_name="scriptframework.properties"
property_value="ITIM.java.access.util"
update_property.create_or_update_property(s,property_file,property_name,property_value)

Functionalities

Entities\Operations Search DN Lookup Add Delete Suspend Restore Modify
People
Dynamic Roles
Static Roles
Provisioning Policies
Activities (Complete)
Organizational Containers
Services
Access (Request)
Groups
Accounts ✓ (and orphan)

  • ISIM VA Utilities:
    • Authentication
    • Create/Search/Update property files

TODO

in priority order

  1. Add operations to services
    • DN Lookup
    • Add
    • Modify
    • Delete
    • Test connection
  2. Add some complex use cases to the documentation
  3. Consider using dictionaries as search filters

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyisim-0.3.1.tar.gz (29.5 kB view details)

Uploaded Source

Built Distribution

pyisim-0.3.1-py3-none-any.whl (35.7 kB view details)

Uploaded Python 3

File details

Details for the file pyisim-0.3.1.tar.gz.

File metadata

  • Download URL: pyisim-0.3.1.tar.gz
  • Upload date:
  • Size: 29.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.3

File hashes

Hashes for pyisim-0.3.1.tar.gz
Algorithm Hash digest
SHA256 d3d397eaf8462c7fb077a3c27199f352ea455687a094791e1f0b22bcdafe7259
MD5 1faade828026fd006bebc0f89d920289
BLAKE2b-256 a9eead129a4932be5fc306f1bb4077f10ccc8ca66217203e9903bf5eae5dbb11

See more details on using hashes here.

File details

Details for the file pyisim-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: pyisim-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 35.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.3

File hashes

Hashes for pyisim-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 065a404a8c73f1e06c1efcd72c384bd88be74e47293dd81f12e29aa26f4dc18e
MD5 bc86505ab712481221b54454980693c0
BLAKE2b-256 65effa5e3d122882ec54fdecbcbc737ddffca5889e19c2ea9e22f493c6139843

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page