# How to Share Azure ML Job Results Without a Studio Login

Canonical: https://commareports.com/share-azure-ml-report
Published: 2026-09-14

> Azure ML Studio needs an Entra ID account and an RBAC role on the workspace. Publish job metrics and plots as a page so stakeholders can read them without either.

# Share Azure ML job results

The training job finished. Azure ML Studio has the metrics, the run history,
the artifacts, the responsible-AI dashboard.

To see it, someone needs to be in your Entra ID tenant and hold an RBAC role on
the workspace. For a colleague that is a ticket. For a partner or a client it is
a guest account, which is a conversation with IT.

## The access ladder is steep

Azure's identity model is thorough, and for a workspace holding training data
that is correct. It is also disproportionate to the actual request, which is
usually: *what was the AUC, and is it better than what we have?*

Between that question and the answer sit a guest invitation, a role assignment,
an MFA enrolment and a Studio UI the person has never used. The predictable
outcome is a screenshot in Teams and a number nobody can verify.

## Publish the job's results

```python
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential

ml = MLClient(DefaultAzureCredential(), sub_id, rg, workspace)
job = ml.jobs.get(job_name)
# read logged metrics and download the plots you want to include
```

Assemble a page that leads with the decision:

1. **What we recommend**, in one sentence.
2. **Candidate vs incumbent** on the metric that decides it.
3. **The regression** — whichever slice or metric got worse.
4. **Appendix** — job name, compute target, dataset version, environment.

An AutoML run benefits especially from this treatment: the leaderboard's top
row is the answer, and the other forty rows are for you, not for the reader.

## Responsible-AI figures travel as images

Fairness dashboards and error analysis are Studio-interactive. Export the
charts you need as images and state the numbers in text alongside them — a
stakeholder needs "false-negative rate is 8 points higher for the under-25
segment", not a widget they cannot filter.

Pairs with [sharing a Fairlearn or SHAP plot](/share-shap-plot) for the same
reason: the explanation has to survive leaving the tool.

## The conversation has to survive too

A published page keeps the discussion anchored to the number being discussed —
see [commenting on HTML](/comment-on-html). In Teams the same exchange
scrolls away, and six months later nobody can reconstruct why the model
shipped with that regression.

## Worth knowing

- **Restrict the report.** Metrics often reveal training-data composition —
  see [security](/security).
- **Publish from the pipeline's last step**, updating one report id, so the
  URL in the ticket is never stale.
- **Include the job name.** Anyone with Studio access should be able to get
  from the page to the run in one step.
- **5 MB per report body.**

## Try it

Free — unlimited reports, commenters and revisions.

**[Read the API reference →](/docs/api)**

### Related

- [Share Vertex AI results](/share-vertex-ai-report) ·
  [Share a SageMaker notebook](/share-sagemaker-notebook)
- [Share an MLflow report](/share-mlflow-report) ·
  [Share a SHAP plot](/share-shap-plot)
- [Security](/security) · [Comma for data scientists](/for/data-scientists)
