Skip to content

Feature/entra id groups#195

Open
younGihan wants to merge 5 commits into
mainfrom
feature/entra-ID-groups
Open

Feature/entra id groups#195
younGihan wants to merge 5 commits into
mainfrom
feature/entra-ID-groups

Conversation

@younGihan

Copy link
Copy Markdown
Contributor

No description provided.

@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Scorecard Check

Scorecard run on commit 0630a152e6fb48966b0c86951196e71c9d0b3b06 relative to origin/main

📊 meshstack-hub Module Scorecard

Generated: 2026-06-09 | Modules scanned: 1 | Categories: 4

📋 Per-Module Category Summary

Score per category per building block. n/a = category does not apply to this module.

Module Overall Core Structure Integration Azure Backplane Testing
azure/entra-id-groups 🟢 93% 🟢 100% 🟢 100% 🟢 100% 🔴 33%

⚠️ 1 module has failing checks — failing categories are expanded below.

Core Structure — ✅ all passing

Basic module file structure and documentation — applies to 1 modules

Module Score 📦 🔗 📋 📝 🖼️ 📌 🔒
azure/entra-id-groups 🟢 100%

Core Structure — Summary

Emoji Criterion Coverage Status
📦 buildingblock/ directory exists 1/1 🟢 100%
🔗 meshstack_integration.tf present 1/1 🟢 100%
📋 buildingblock/APP_TEAM_README.md present (no-integration fallback) 0/1 🔴 0%
📝 buildingblock/README.md with YAML front-matter 1/1 🟢 100%
🖼️ buildingblock/logo.png included 1/1 🟢 100%
📌 buildingblock/versions.tf present 1/1 🟢 100%
🔒 Provider versions pinned (~>) 1/1 🟢 100%
Integration — ✅ all passing

meshstack_integration.tf conventions — applies to 1 modules

Module Score 🏷️ 🏢 📤 🔌 📎 🔀 📋 🏷️ 📖 📝 📊 🚫
azure/entra-id-groups 🟢 100%

Integration — Summary

Emoji Criterion Coverage Status
🏷️ variable "hub" in integration 1/1 🟢 100%
🏢 variable "meshstack" in integration 1/1 🟢 100%
📤 building_block_definition output exposed 1/1 🟢 100%
🔌 meshcloud/meshstack in required_providers 1/1 🟢 100%
📎 backplane source uses var.hub.git_ref 1/1 🟢 100%
🔀 ref_name uses var.hub.git_ref 1/1 🟢 100%
📋 version_spec.draft uses var.hub.bbd_draft 1/1 🟢 100%
🏷️ BBD metadata.tags forwards var.meshstack.tags 1/1 🟢 100%
📖 BBD readme field present 1/1 🟢 100%
📝 BBD readme starts with plain-text description (no heading) 1/1 🟢 100%
📊 BBD readme has shared responsibility table (✅/❌) 1/1 🟢 100%
🚫 No documentation_md output in backplane 1/1 🟢 100%
Azure Backplane — ✅ all passing

Azure UAMI-based automation principal conventions — applies to 1 modules

Module Score 🪪 🚫 🚫 🔑 🔗 🧹 📤 📍
azure/entra-id-groups 🟢 100%

Azure Backplane — Summary

Emoji Criterion Coverage Status
🪪 Uses azurerm_user_assigned_identity 1/1 🟢 100%
🚫 No azuread_application resources 1/1 🟢 100%
🚫 No azuread_service_principal resources 1/1 🟢 100%
🔑 No azuread_application_password resources 1/1 🟢 100%
🔗 Uses azurerm_federated_identity_credential 1/1 🟢 100%
workload_identity_federation is non-nullable 1/1 🟢 100%
🧹 No create_service_principal_name toggle 1/1 🟢 100%
📤 Outputs identity (client_id, principal_id, tenant_id) 1/1 🟢 100%
📍 Integration has azure_location 1/1 🟢 100%
Testing — some checks failing

End-to-end test coverage — applies to 1 modules

Module Score ⚙️ 🧪
azure/entra-id-groups 🔴 33%

Testing — Summary

Emoji Criterion Coverage Status
⚙️ backplane/ directory (optional tier) 1/1 🟢 100%
🧪 e2e/ test directory exists 0/1 🔴 0%
e2e/ contains .tftest.hcl files 0/1 🔴 0%

@aws-amplify-eu-central-1

Copy link
Copy Markdown

This pull request is automatically being deployed by Amplify Hosting (learn more).

Access this pull request here: https://pr-195.d1o16zfeoh2slu.amplifyapp.com

@jannymeshi

jannymeshi commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

📋 This PR has been linked to the [Feature Shipping Tracker: Self-service Entra SSO (CU-86c7t51na)] (meshcloud/janny#736).

It addresses DoD item 6 (Reference Examples and Implementations Updated) — adding a hub reference example for Entra ID groups setup via the meshObject API.

@younGihan younGihan requested a review from grubmeshi June 9, 2026 09:04
@@ -0,0 +1,44 @@
resource "azurerm_resource_group" "backplane" {

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.

f:

Suggested change
resource "azurerm_resource_group" "backplane" {
resource "azurerm_resource_group" "this" {

würde das nich doppelt benennen, durch das module hat die resource address schon das wort backplane drin

location = var.location
}

resource "azurerm_user_assigned_identity" "backplane" {

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.

Suggested change
resource "azurerm_user_assigned_identity" "backplane" {
resource "azurerm_user_assigned_identity" "this" {

resource_group_name = azurerm_resource_group.backplane.name
}

resource "azurerm_federated_identity_credential" "backplane" {

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.

Suggested change
resource "azurerm_federated_identity_credential" "backplane" {
resource "azurerm_federated_identity_credential" "this" {

Comment on lines +7 to +8
- **Resource Group** — hosts the UAMI in the configured Azure region.
- **User-Assigned Managed Identity (UAMI)** — the automation principal that runs the building block. No client secrets.

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.

f: just swap to have acronum UAMI well defined:

Suggested change
- **Resource Group**hosts the UAMI in the configured Azure region.
- **User-Assigned Managed Identity (UAMI)** — the automation principal that runs the building block. No client secrets.
- **User-Assigned Managed Identity (UAMI)** — the automation principal that runs the building block. No client secrets.
- **Resource Group**hosts the UAMI in the configured Azure region.


## Operational notes

- The UAMI principal ID maps to a service principal in Entra. The `User.Read.All`, `Group.ReadWrite.All`, and `AdministrativeUnit.ReadWrite.All` app role assignments require **admin consent** — ensure a Global Administrator or Privileged Role Administrator approves the assignments in the Entra portal after the first `apply`.

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.

d: I remember having this admin consent thing automated in the past, as this can become really annoying as admins need to approve stuff. maybe worthwhile to discuss this f2f or at least mention it.

required_providers {
azuread = {
source = "hashicorp/azuread"
version = "~> 3.8.0"

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.

f: use >= constraints, see #199

location = var.azure_location

workload_identity_federation = {
issuer = data.meshstack_integrations.integrations.workload_identity_federation.replicator.issuer

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.

n: nice usage of the data source, thank you!

required_providers {
meshstack = {
source = "meshcloud/meshstack"
version = "~> 0.21.0"

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.

f: use >= constraints, see #199

}
azurerm = {
source = "hashicorp/azurerm"
version = "~> 4.0"

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.

f: use >= constraints, see #199

}
azuread = {
source = "hashicorp/azuread"
version = "~> 3.8"

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.

f: use >= constraints, see #199

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants