Skip to content

Commit

Permalink
⭐️ Adding conditional Access - Named location part (#4632)
Browse files Browse the repository at this point in the history
* ⭐️ Adding conditional Access - Named location part

Signed-off-by: Hossein Rouhani <h_rouhani@hotmail.com>

* adding the support for multiple NamedLocation

Signed-off-by: Hossein Rouhani <h_rouhani@hotmail.com>

* Improving the comments

Signed-off-by: Hossein Rouhani <h_rouhani@hotmail.com>

* improvements by making it visible

Signed-off-by: Hossein Rouhani <h_rouhani@hotmail.com>

* improvements

Signed-off-by: Hossein Rouhani <h_rouhani@hotmail.com>

* improvements

Signed-off-by: Hossein Rouhani <h_rouhani@hotmail.com>

* improvements

Signed-off-by: Hossein Rouhani <h_rouhani@hotmail.com>

* rebase

Signed-off-by: Hossein Rouhani <h_rouhani@hotmail.com>

* Improved to include the trusted

Signed-off-by: Hossein Rouhani <h_rouhani@hotmail.com>

* removed log parts

Signed-off-by: Hossein Rouhani <h_rouhani@hotmail.com>

---------

Signed-off-by: Hossein Rouhani <h_rouhani@hotmail.com>
  • Loading branch information
HRouhani authored Sep 19, 2024
1 parent 5e5e620 commit 5d59083
Show file tree
Hide file tree
Showing 5 changed files with 232 additions and 1 deletion.
2 changes: 1 addition & 1 deletion providers/azure/resources/azure.lr
Original file line number Diff line number Diff line change
Expand Up @@ -1520,7 +1520,7 @@ private azure.subscription.keyVaultService.vault @defaults("vaultName type vault

// Azure Key Vault key auto-rotation
private azure.subscription.keyVaultService.key.autorotation @defaults("enabled") {
// Key ID (Key Identifier)
// Key ID
kid string
// Auto-rotation enabled status
enabled bool
Expand Down
57 changes: 57 additions & 0 deletions providers/ms365/resources/conditional-access.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
// Copyright (c) Mondoo, Inc.
// SPDX-License-Identifier: BUSL-1.1

package resources

import (
"context"

"github.com/microsoftgraph/msgraph-sdk-go/models"
"go.mondoo.com/cnquery/v11/llx"
"go.mondoo.com/cnquery/v11/providers/ms365/connection"
)

func (a *mqlMicrosoftConditionalAccess) namedLocations() ([]interface{}, error) {
conn := a.MqlRuntime.Connection.(*connection.Ms365Connection)
graphClient, err := conn.GraphClient()
if err != nil {
return nil, err
}

ctx := context.Background()
namedLocations, err := graphClient.Identity().ConditionalAccess().NamedLocations().Get(ctx, nil)
if err != nil {
return nil, transformError(err)
}

var locationDetails []interface{}
for _, location := range namedLocations.GetValue() {
if ipLocation, ok := location.(*models.IpNamedLocation); ok {
displayName := ipLocation.GetDisplayName()
isTrusted := ipLocation.GetIsTrusted()

if displayName != nil {
trusted := false
if isTrusted != nil {
trusted = *isTrusted
}

locationInfo, err := CreateResource(a.MqlRuntime, "microsoft.conditionalAccess.ipNamedLocation",
map[string]*llx.RawData{
"name": llx.StringDataPtr(displayName),
"trusted": llx.BoolData(trusted),
})
if err != nil {
return nil, err
}
locationDetails = append(locationDetails, locationInfo)
}
}
}

if len(locationDetails) == 0 {
return nil, nil
}

return locationDetails, nil
}
14 changes: 14 additions & 0 deletions providers/ms365/resources/ms365.lr
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,20 @@ microsoft.tenant @defaults("name") {
subscriptions() []dict
}

// Microsoft Conditional Access Policies
microsoft.conditionalAccess {
// IP named location
namedLocations() []microsoft.conditionalAccess.ipNamedLocation
}

// Microsoft Conditional Access IP named location
microsoft.conditionalAccess.ipNamedLocation @defaults("name trusted") {
// Named location name
name string
// Whether the location is marked as trusted
trusted bool
}

// Microsoft Entra ID user
private microsoft.user @defaults("id displayName userPrincipalName") {
// User Object ID
Expand Down
142 changes: 142 additions & 0 deletions providers/ms365/resources/ms365.lr.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 18 additions & 0 deletions providers/ms365/resources/ms365.lr.manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ resources:
microsoft:
fields:
applications: {}
conditionalAccess:
min_mondoo_version: 9.0.0
domains: {}
enterpriseApplications:
min_mondoo_version: latest
Expand Down Expand Up @@ -118,6 +120,22 @@ resources:
value: {}
is_private: true
min_mondoo_version: 9.0.0
microsoft.conditionalAccess:
fields:
name: {}
namedLocations: {}
trusted: {}
min_mondoo_version: 9.0.0
microsoft.conditionalAccess.ipNamedLocation:
fields:
name: {}
trusted: {}
min_mondoo_version: 9.0.0
microsoft.conditionalAccess.namedLocation:
fields:
name: {}
trusted: {}
min_mondoo_version: 9.0.0
microsoft.devicemanagement:
fields:
deviceCompliancePolicies: {}
Expand Down

0 comments on commit 5d59083

Please sign in to comment.