Skip to content

Commit 8a207bc

Browse files
committed
docs: update README with per-tenant auth server config and isomdl-uniffi install instructions
Signed-off-by: Ivan Wei <ivan.wei@ontario.ca>
1 parent 49b4712 commit 8a207bc

1 file changed

Lines changed: 50 additions & 4 deletions

File tree

oid4vc/README.md

Lines changed: 50 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -255,10 +255,33 @@ The Plugin expects the following configuration options. These options can either
255255
- `credential_issuer` endpoint, seen in the Credential Offer
256256
- `OID4VCI_CRED_HANDLER` or `oid4vci.cred_handler`
257257
- Dict of credential handlers. e.g. `{"jwt_vc_json": "jwt_vc_json"}`
258-
- `OID4VCI_AUTH_SERVER_URL` or `oid4vci.auth_server_url`
259-
- Optional authorization server URL
260-
- `OID4VCI_AUTH_SERVER_CLIENT` or `oid4vci.auth_server_client`
261-
- Optional authorization server client credential, e.g. `{"auth_type": "client_secret_basic", "client_id": "client_id", "client_secret": "client_secret"}`
258+
259+
#### Authorization Server (Per-Tenant)
260+
261+
Authorization server configuration is managed per-tenant via the `IssuerConfiguration` record, not through global environment variables. Use the admin API:
262+
263+
- `PUT /oid4vci/issuer/configuration` — create or update the issuer configuration
264+
- `GET /oid4vci/issuer/configuration` — retrieve the current configuration
265+
266+
Example payload to configure an external authorization server:
267+
268+
```json
269+
{
270+
"authorization_servers": [
271+
{
272+
"public_url": "https://auth.example.com/tenant/abc123",
273+
"private_url": "https://auth-internal:8080/tenant/abc123",
274+
"auth_type": "client_secret_basic",
275+
"client_credentials": {
276+
"client_id": "issuer-client",
277+
"client_secret": "secret"
278+
}
279+
}
280+
]
281+
}
282+
```
283+
284+
Supported `auth_type` values: `client_secret_basic`, `client_secret_jwt`, `private_key_jwt`.
262285

263286
### Creating Supported Credential Records
264287

@@ -426,6 +449,29 @@ docker compose down -v # Clean up
426449

427450
For Apple Silicon, the `DOCKER_DEFAULT_PLATFORM=linux/amd64` environment variable will be required.
428451

452+
## Development Setup
453+
454+
After cloning the repo and installing dependencies with `poetry install --all-extras`, you must install the `isomdl-uniffi` package separately. It provides the Rust-based ISO 18013-5 mDoc signing bindings and is not on PyPI — only pre-built wheels are available from GitHub releases.
455+
456+
Pick the wheel for your platform:
457+
458+
**macOS (Apple Silicon):**
459+
```bash
460+
poetry run pip install https://github.com/Indicio-tech/isomdl-uniffi/releases/download/v0.1.0-indicio.1/isomdl_uniffi-0.1.0-py3-none-macosx_11_0_arm64.whl
461+
```
462+
463+
**macOS (Intel):**
464+
```bash
465+
poetry run pip install https://github.com/Indicio-tech/isomdl-uniffi/releases/download/v0.1.0-indicio.1/isomdl_uniffi-0.1.0-py3-none-macosx_10_12_x86_64.whl
466+
```
467+
468+
**Linux (x86_64):**
469+
```bash
470+
poetry run pip install https://github.com/Indicio-tech/isomdl-uniffi/releases/download/v0.1.0-indicio.1/isomdl_uniffi-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
471+
```
472+
473+
Without this, importing `mso_mdoc` will fail with `ModuleNotFoundError: No module named 'isomdl_uniffi'`.
474+
429475
## Not Implemented
430476

431477
- `ldp_vc`

0 commit comments

Comments
 (0)