A unified and standardized interface to RACF callable services.
Project description
Security API for RACF (SEAR)
A standardized JSON interface for RACF that enables seamless exploitation by programming languages that have a foreign language interface for C/C++ and native JSON support.
Description
As automation becomes more and more prevalent, the need to manage the security environment programmatically increases. On z/OS that means managing a security product like the IBM Resource Access Control Facility (RACF). RACF is the primary facility for managing identity, authority, and access control for z/OS. There are more than 50 callable services with assembler interfaces that are part of the RACF API. The complete set of interfaces can be found in the IBM documentation.
While there are a number of languages that can be used to manage RACF, (from low level languages like Assembler to higher level languages like REXX), the need to be able to easily exploit RACF management functions using existing industry standard programming languages and even programming languages that don't exist yet is paramount. The SEAR project is focused on making RACF management functions available to all programming languages that have native JSON support and a foreign language interface for C/C++. This will make it easier to pivot to new tools and programming languages as technology, skills, and business needs continue to evolve in the foreseeable future.
Minimum z/OS & Language Versions
All versions of z/OS and the IBM Open Enterprise SDK for Python that are fully supported by IBM are supported by SEAR.
Dependencies
- R_SecMgtOper (IRRSMO00): Security Management Operations.
- More details about the authorizations required for IRRSMO00 can be found in the IBM documentation.
- R_Admin (IRRSEQ00): RACF Administration API.
- More details about the authorizations required for IRRSEQ00 can be found in the IBM documentation.
- R_Datalib (IRRSDL64): RACF Certificate data library.
- More details about the authorizations required for IRRSDL64 can be found in the IBM documentation.
- RACF Subsystem Address Space: This is a dependency for both IRRSMO00 and IRRSEQ00.
- More information can be found in the IBM documentation.
- z/OS Language Environment Runtime Support: SEAR is compiled using the IBM Open XL C/C++ 2.1 compiler, which is still fairly new and requires z/OS Language Environment service updates for runtime support.
- More information can be found in section 5.2.2.2 Operational Requisites on page 9 in the Program Directory for IBM Open XL C/C++ 2.1 for z/OS.
Getting started
:bulb: Note: You can also Download & Install SEAR from GitHub
pip install pysear
Make sure you have the right authorizations, detailed in the full documentation.
How to create a simple userid using SEAR:
from sear import sear
result = sear(
{
"operation": "add",
"admin_type": "user",
"userid": "FDEGILIO",
"traits": {
"base:name": "FRANK D",
},
},
)
print(result.result)
Further examples are located under examples in the documentation.
Additional help can be found in the following communities:
Build from source
Alternatively to installing from Pip, SEAR can be built from source on a z/OS system. SEAR uses a CMake build system, and can be built via a two-step process:
cmake --preset <preset>
cmake --build --preset <preset> --target <sear,pysear>
The first command will configure the build environment and generate build scripts in a directory named build/<preset>, then the second command builds the given target.
A complete list of available CMake presets can be found in CMakePresets.json, but the most useful are:
-
default- Does not apply any special platform handling, and should work on most platforms. -
zos- Applies thecmake/ibm-clang.cmaketoolchain to the build process. This compiles the project using the IBM-Clang compiler, and works only on z/OS systems. -
zos-pysear- Inherits from thezospreset. Used internally as part of the Python package build process, and not generally used by hand.
Build artifacts are located within the build directory.
The CMake build process builds static libraries by default. If you instead wish to build shared libraries, append -DBUILD_SHARED_LIBS=on to the CMake configure step command (the first of the two) shown above.
Maintainers
- Bobby Tjassens Keiser
- Emma Skovgård
Authors of RACFu
This is a fork of RACFu
- Leonard Carcaramo: lcarcaramo@ibm.com
- Elijah Swift: Elijah.Swift@ibm.com
- Frank De Gilio: degilio@us.ibm.com
- Joe Bostian: jbostian@ibm.com
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pysear-0.6.0.tar.gz.
File metadata
- Download URL: pysear-0.6.0.tar.gz
- Upload date:
- Size: 503.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e6fd1ee6303b62b8500e962f1553fb906452a7dda9bb68dcdfefa902a0bf5a1
|
|
| MD5 |
ef888f937901bc4188d89d2529b207ff
|
|
| BLAKE2b-256 |
a3043bf7fb3d8b49d8dd1ffe735e1acc5ad5e050134b2b86e1b159705a5d4df6
|
Provenance
The following attestation bundles were made for pysear-0.6.0.tar.gz:
Publisher:
publish-pysear.yml on Mainframe-Renewal-Project/sear
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pysear-0.6.0.tar.gz -
Subject digest:
1e6fd1ee6303b62b8500e962f1553fb906452a7dda9bb68dcdfefa902a0bf5a1 - Sigstore transparency entry: 1050152484
- Sigstore integration time:
-
Permalink:
Mainframe-Renewal-Project/sear@25392ec721b044f0c822f472c6c8afa47d6193c4 -
Branch / Tag:
refs/tags/v0.6.0 - Owner: https://github.com/Mainframe-Renewal-Project
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pysear.yml@25392ec721b044f0c822f472c6c8afa47d6193c4 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pysear-0.6.0-py314-none-any.whl.
File metadata
- Download URL: pysear-0.6.0-py314-none-any.whl
- Upload date:
- Size: 5.5 MB
- Tags: Python 3.14
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e02be9bea04d78b109bd8e2404d240aa5a87df8e550336e551721fae0349915
|
|
| MD5 |
2442766309ea352493fe98764b4bf7fd
|
|
| BLAKE2b-256 |
5f4464c1aa1b388131af620b741462ff53b65773bd033ac745ff9434ccd87bb9
|
Provenance
The following attestation bundles were made for pysear-0.6.0-py314-none-any.whl:
Publisher:
publish-pysear.yml on Mainframe-Renewal-Project/sear
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pysear-0.6.0-py314-none-any.whl -
Subject digest:
9e02be9bea04d78b109bd8e2404d240aa5a87df8e550336e551721fae0349915 - Sigstore transparency entry: 1050152492
- Sigstore integration time:
-
Permalink:
Mainframe-Renewal-Project/sear@25392ec721b044f0c822f472c6c8afa47d6193c4 -
Branch / Tag:
refs/tags/v0.6.0 - Owner: https://github.com/Mainframe-Renewal-Project
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pysear.yml@25392ec721b044f0c822f472c6c8afa47d6193c4 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pysear-0.6.0-py313-none-any.whl.
File metadata
- Download URL: pysear-0.6.0-py313-none-any.whl
- Upload date:
- Size: 5.5 MB
- Tags: Python 3.13
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90668d902e4ee81a0a549d776c973aa3ca57b576e88f2467a60883e6abf6d74a
|
|
| MD5 |
ff049a5c8ab4b4b3b76b68c49ec203e0
|
|
| BLAKE2b-256 |
a712113a9d8b610fc2b462c140eff0a66eebfea2eea1dd5c59b98655551bc0cd
|
Provenance
The following attestation bundles were made for pysear-0.6.0-py313-none-any.whl:
Publisher:
publish-pysear.yml on Mainframe-Renewal-Project/sear
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pysear-0.6.0-py313-none-any.whl -
Subject digest:
90668d902e4ee81a0a549d776c973aa3ca57b576e88f2467a60883e6abf6d74a - Sigstore transparency entry: 1050152502
- Sigstore integration time:
-
Permalink:
Mainframe-Renewal-Project/sear@25392ec721b044f0c822f472c6c8afa47d6193c4 -
Branch / Tag:
refs/tags/v0.6.0 - Owner: https://github.com/Mainframe-Renewal-Project
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pysear.yml@25392ec721b044f0c822f472c6c8afa47d6193c4 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pysear-0.6.0-py312-none-any.whl.
File metadata
- Download URL: pysear-0.6.0-py312-none-any.whl
- Upload date:
- Size: 5.5 MB
- Tags: Python 3.12
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f7eb2dc345eba8e8421870536708edc29289e7908607e0a94931a3d0c13d20f
|
|
| MD5 |
f941db067c1bbb24d99a9126a0ac9922
|
|
| BLAKE2b-256 |
af7779b9209c475642da55efde3fdc3b3a28532929e96e65e0833d2eee2c503f
|
Provenance
The following attestation bundles were made for pysear-0.6.0-py312-none-any.whl:
Publisher:
publish-pysear.yml on Mainframe-Renewal-Project/sear
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pysear-0.6.0-py312-none-any.whl -
Subject digest:
0f7eb2dc345eba8e8421870536708edc29289e7908607e0a94931a3d0c13d20f - Sigstore transparency entry: 1050152499
- Sigstore integration time:
-
Permalink:
Mainframe-Renewal-Project/sear@25392ec721b044f0c822f472c6c8afa47d6193c4 -
Branch / Tag:
refs/tags/v0.6.0 - Owner: https://github.com/Mainframe-Renewal-Project
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pysear.yml@25392ec721b044f0c822f472c6c8afa47d6193c4 -
Trigger Event:
release
-
Statement type: