Skip to content

Improve Azure AD documentation#281

Open
Silex wants to merge 4 commits intonetbirdio:mainfrom
Silex:main
Open

Improve Azure AD documentation#281
Silex wants to merge 4 commits intonetbirdio:mainfrom
Silex:main

Conversation

@Silex
Copy link

@Silex Silex commented Feb 19, 2025

Hello,

Don't merge this blindly we need to discuss some commits:

  1. Should we really remove docs/integrations/identity-providers/self-hosted/azure-ad.md? Looked outdated to me but maybe it's still useful.
  2. Is step 5 really outdated? I removed it because I cannot do what it says as accessTokenAcceptedVersion is nowhere to be found (see manifest below).
  3. In "Step 6: Generate client secret" we don't talk about the secret expiration, which is 6 months by default. Is 6 months a safe value? What will happen when the secret expire?

Here's my manifest (anonymized):

{
    "id": "11111111-2222-3333-4444-555555555555",
    "deletedDateTime": null,
    "appId": "11111111-2222-3333-4444-555555555555",
    "applicationTemplateId": null,
    "disabledByMicrosoftStatus": null,
    "createdDateTime": "2025-02-13T15:18:02Z",
    "displayName": "Netbird",
    "description": null,
    "groupMembershipClaims": null,
    "identifierUris": [
	"api://11111111-2222-3333-4444-555555555555"
    ],
    "isDeviceOnlyAuthSupported": null,
    "isFallbackPublicClient": true,
    "nativeAuthenticationApisEnabled": null,
    "notes": null,
    "publisherDomain": "domain.com",
    "serviceManagementReference": null,
    "signInAudience": "AzureADMyOrg",
    "tags": [],
    "tokenEncryptionKeyId": null,
    "samlMetadataUrl": null,
    "defaultRedirectUri": null,
    "certification": null,
    "optionalClaims": null,
    "requestSignatureVerification": null,
    "addIns": [],
    "api": {
	"acceptMappedClaims": null,
	"knownClientApplications": [],
	"requestedAccessTokenVersion": null,
	"oauth2PermissionScopes": [
	    {
		"adminConsentDescription": "Allows netbird to access and manage organization users",
		"adminConsentDisplayName": "Manage Organization Users",
		"id": "11111111-2222-3333-4444-555555555555",
		"isEnabled": true,
		"type": "User",
		"userConsentDescription": "Allows netbird to access and manage organization users",
		"userConsentDisplayName": "Manage Organization Users",
		"value": "api"
	    }
	],
	"preAuthorizedApplications": [
	    {
		"appId": "11111111-2222-3333-4444-555555555555",
		"delegatedPermissionIds": [
		    "11111111-2222-3333-4444-555555555555"
		]
	    }
	]
    },
    "appRoles": [],
    "info": {
	"logoUrl": null,
	"marketingUrl": null,
	"privacyStatementUrl": null,
	"supportUrl": null,
	"termsOfServiceUrl": null
    },
    "keyCredentials": [],
    "parentalControlSettings": {
	"countriesBlockedForMinors": [],
	"legalAgeGroupRule": "Allow"
    },
    "passwordCredentials": [
	{
	    "customKeyIdentifier": null,
	    "displayName": "Netbird",
	    "endDateTime": "2025-08-12T15:37:55.572Z",
	    "hint": "nXe",
	    "keyId": "11111111-2222-3333-4444-555555555555",
	    "secretText": null,
	    "startDateTime": "2025-02-13T16:37:55.572Z"
	}
    ],
    "publicClient": {
	"redirectUris": [
	    "http://localhost:53000"
	]
    },
    "requiredResourceAccess": [
	{
	    "resourceAppId": "11111111-2222-3333-4444-555555555555",
	    "resourceAccess": [
		{
		    "id": "11111111-2222-3333-4444-555555555555",
		    "type": "Scope"
		},
		{
		    "id": "11111111-2222-3333-4444-555555555555",
		    "type": "Role"
		}
	    ]
	},
	{
	    "resourceAppId": "11111111-2222-3333-4444-555555555555",
	    "resourceAccess": [
		{
		    "id": "11111111-2222-3333-4444-555555555555",
		    "type": "Scope"
		}
	    ]
	}
    ],
    "verifiedPublisher": {
	"displayName": null,
	"verifiedPublisherId": null,
	"addedDateTime": null
    },
    "web": {
	"homePageUrl": null,
	"logoutUrl": null,
	"redirectUris": [],
	"implicitGrantSettings": {
	    "enableAccessTokenIssuance": true,
	    "enableIdTokenIssuance": true
	},
	"redirectUriSettings": []
    },
    "servicePrincipalLockConfiguration": {
	"isEnabled": true,
	"allProperties": true,
	"credentialsWithUsageVerify": true,
	"credentialsWithUsageSign": true,
	"identifierUris": false,
	"tokenEncryptionKeyId": true
    },
    "spa": {
	"redirectUris": [
	    "https://netbird.domain.com/auth",
	    "https://netbird.domain.com/silent-auth"
	]
    }
}

@Silex
Copy link
Author

Silex commented Feb 28, 2025

@mlsmaycon there's no rush for this PR but can you answer question 3 about the client secret? Should I use one that never expires? What happens when it expire, all my clients cannot connect?

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.

1 participant