Skip to main content

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

Metadata

Release files for pyisim 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyisim 0.3.1
File Size Uploaded Provenance
pyisim-0.3.1.tar.gz 29.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for pyisim 0.3.1
File Interpreter ABI Platform
pyisim-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 65.3 kB

Release files / pyisim-0.3.1.tar.gz

Download URL pyisim-0.3.1.tar.gz
Size 29.5 kB
Tags Source
SHA-256 checksum
How to use checksums
d3d397eaf8462c7fb077a3c27199f352ea455687a094791e1f0b22bcdafe7259
BLAKE2b-256 checksum
How to use checksums
a9eead129a4932be5fc306f1bb4077f10ccc8ca66217203e9903bf5eae5dbb11
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / pyisim-0.3.1-py3-none-any.whl

Download URL pyisim-0.3.1-py3-none-any.whl
Size 35.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
065a404a8c73f1e06c1efcd72c384bd88be74e47293dd81f12e29aa26f4dc18e
BLAKE2b-256 checksum
How to use checksums
65effa5e3d122882ec54fdecbcbc737ddffca5889e19c2ea9e22f493c6139843
Upload date
Uploaded using Trusted Publishing?
What is 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

Security for pyisim 0.3.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page