Skip to content

docs: azure_blob: document OAuth authentication support#2535

Open
zshuang0316 wants to merge 1 commit intofluent:masterfrom
zshuang0316:azure-blob-oauth-auth
Open

docs: azure_blob: document OAuth authentication support#2535
zshuang0316 wants to merge 1 commit intofluent:masterfrom
zshuang0316:azure-blob-oauth-auth

Conversation

@zshuang0316
Copy link
Copy Markdown

@zshuang0316 zshuang0316 commented Apr 3, 2026

Add new auth_type values (managed_identity, service_principal, workload_identity) and their required configuration parameters (tenant_id, client_id, client_secret, workload_identity_token_file). Add OAuth authentication section with examples for each method.

Summary by CodeRabbit

  • Documentation
    • Expanded Azure Blob authentication to include managed identity, service principal, and workload identity alongside existing key and SAS methods
    • Added Azure AD credential parameters (client ID, client secret, tenant ID, and workload identity token file path) with guidance on when each is required
    • Added an OAuth authentication section with example configurations and usage guidance for all supported auth flows

@zshuang0316 zshuang0316 requested review from a team and eschabell as code owners April 3, 2026 12:45
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 3, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ff0e2f7e-5617-483c-bd6c-1a4742f4c635

📥 Commits

Reviewing files that changed from the base of the PR and between 05784fb and a3b339b.

📒 Files selected for processing (1)
  • pipeline/outputs/azure_blob.md
✅ Files skipped from review due to trivial changes (1)
  • pipeline/outputs/azure_blob.md

📝 Walkthrough

Walkthrough

Documentation for the Azure Blob output plugin adds OAuth-based auth modes (managed_identity, service_principal, workload_identity), new Azure AD configuration options (client_id, client_secret, tenant_id, workload_identity_token_file), and example Fluent Bit configs for those flows; key/sas docs unchanged. (≤50 words)

Changes

Cohort / File(s) Summary
Azure Blob Authentication Documentation
pipeline/outputs/azure_blob.md
Expanded auth_type to include managed_identity, service_principal, workload_identity; added Azure AD config keys (client_id, client_secret, tenant_id, workload_identity_token_file); added OAuth Authentication section with example fluent-bit.yaml and fluent-bit.conf. Existing key/sas docs retained.

Sequence Diagram(s)

sequenceDiagram
    participant FluentBit as Fluent Bit (client)
    participant AzureAD as Azure AD (token endpoint)
    participant Blob as Azure Blob Storage
    FluentBit->>AzureAD: Request token (service_principal / managed_identity / workload_identity)
    AzureAD-->>FluentBit: Return OAuth access_token
    FluentBit->>Blob: PUT/POST blob with Authorization: Bearer <token>
    Blob-->>FluentBit: 201/200 OK
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

5.0

Suggested reviewers

  • cosmo0920
  • patrick-stephens

Poem

🐰 I hopped through lines of docs today,

Adding tokens and OAuth play.
Managed, Principal, Workload in view,
Fluent Bit now speaks AD too.
🥕📦✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'docs: azure_blob: document OAuth authentication support' directly and clearly summarizes the main change—adding OAuth authentication documentation to the Azure Blob output plugin documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Collaborator

@eschabell eschabell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zshuang0316 see comments inline on the files changed that need attention before review will pass.

| :------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------- |
| `account_name` | Azure Storage account name. | _none_ |
| `auth_type` | Specify the type to authenticate against the service. Supported values: `key`, `sas`. | `key` |
| `auth_type` | Specify the authentication method. Supported values: `key`, `sas`, `managed_identity`, `service_principal`, `workload_identity`. | `key` |
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zshuang0316 please return the more clear sentence "Specify the type to authenticate against the service. " here. Shorter is not desirable.

| `buffer_dir` | Specifies the location of directory where the buffered data will be stored. | `/tmp/fluent-bit/azure-blob/` |
| `buffer_file_delete_early` | Whether to delete the buffered file early after successful blob creation. | `false` |
| `buffering_enabled` | Enable buffering into disk before ingesting into Azure Blob. | `false` |
| `client_id` | Azure AD application (client) ID. Required for `service_principal` and `workload_identity` auth. For `managed_identity`, set to `system` for system-assigned or provide the client ID for user-assigned. | _none_ |
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zshuang0316 use backticks around Azure AD please.

| `buffer_file_delete_early` | Whether to delete the buffered file early after successful blob creation. | `false` |
| `buffering_enabled` | Enable buffering into disk before ingesting into Azure Blob. | `false` |
| `client_id` | Azure AD application (client) ID. Required for `service_principal` and `workload_identity` auth. For `managed_identity`, set to `system` for system-assigned or provide the client ID for user-assigned. | _none_ |
| `client_secret` | Azure AD client secret. Required for `service_principal` auth. | _none_ |
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zshuang0316 use backticks around Azure AD.

| `scheduler_max_retries` | Maximum number of retries for the scheduler send blob. | `3` |
| `shared_key` | Specify the Azure Storage Shared Key to authenticate against the service. This configuration property is mandatory when `auth_type` is `key`. | _none_ |
| `store_dir_limit_size` | Set the max size of the buffer directory. | `8G` |
| `tenant_id` | Azure AD tenant ID. Required for `service_principal` and `workload_identity` auth. | _none_ |
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zshuang0316 use backticks around Azure AD.


If a chunk arrives with the tag `kube.var.log.containers.app-default`, this configuration creates blobs under `kube/app-default/2025/12/16/05/042/abcd1234/...`.

## OAuth authentication
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zshuang0316 use backticks around OAuth to get past vale issues here.


## OAuth authentication

In addition to shared key and SAS token authentication, the Azure Blob plugin supports Azure AD-based authentication using the following methods.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zshuang0316 use backticks around SAS, Azure Blob, and Zaure AD to get past vale issues here.


### Workload identity

Use [Azure Workload Identity](https://azure.github.io/azure-workload-identity/docs/) to exchange a Kubernetes-projected service account token for an Azure AD access token. This is the recommended approach for workloads running in AKS.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zshuang0316 use backticks around Azure AD and AKS to get past vale issues here.

Add new auth_type values (managed_identity, service_principal,
workload_identity) and their required configuration parameters
(tenant_id, client_id, client_secret, workload_identity_token_file).
Add OAuth authentication section with examples for each method.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: zshuang0316 <zshuang0316@163.com>
@zshuang0316 zshuang0316 force-pushed the azure-blob-oauth-auth branch from 05784fb to a3b339b Compare April 7, 2026 15:58
@zshuang0316
Copy link
Copy Markdown
Author

@zshuang0316 see comments inline on the files changed that need attention before review will pass.

Thanks, updated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

waiting-on-code-merge waiting-on-review Waiting on a review from mainteners

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants