Skip to main content

Microsoft Entra ID (Azure AD) SSO Setup

Complete step-by-step guide to configure SAML-based Single Sign-On between Microsoft Entra ID and NetSuite.


Overview

ENTRA ID SSO ARCHITECTURE
═══════════════════════════════════════════════════════════════════════════════

┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ │ │ │ │ │
│ USER │ │ MICROSOFT │ │ NETSUITE │
│ │ │ ENTRA ID │ │ │
│ 1. Access NetSuite │ ──────▶ │ │ │ │
│ │ │ 2. Authenticate │ │ │
│ 3. Enter M365 │ ──────▶ │ with MFA │ │ │
│ credentials │ │ │ │ │
│ │ ◀────── │ 4. SAML Assertion │ ──────▶ │ 5. Validate & │
│ │ │ │ │ Grant Access │
│ │ │ │ │ │
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘

Prerequisites

Before You Begin

RequirementDetails
Entra ID LicenseAny license (Free, P1, P2)
Entra Admin RoleApplication Administrator or Global Administrator
NetSuite RoleAdministrator
NetSuite Account IDFound in Setup > Company > Company Information
Matching EmailsUser emails must match between Entra ID and NetSuite

Part 1: NetSuite Configuration

Step 1: Enable SAML SSO Feature

  1. Log in to NetSuite as Administrator
  2. Navigate to Setup > Company > Enable Features
  3. Click SuiteCloud subtab
  4. Check SAML Single Sign-on
  5. Click Save

Step 2: Get NetSuite SAML Information

  1. Navigate to Setup > Integration > SAML Single Sign-on
  2. Note down the following values:
NETSUITE SAML ENDPOINTS
═══════════════════════════════════════════════════════════════════════════════

Entity ID (Audience):
https://system.netsuite.com/saml2/sp/{YOUR_ACCOUNT_ID}/acs

ACS URL (Reply URL):
https://system.netsuite.com/saml2/sp/{YOUR_ACCOUNT_ID}/acs

Metadata URL:
https://system.netsuite.com/saml2/sp/{YOUR_ACCOUNT_ID}/metadata

Example (if Account ID is 1234567):
Entity ID: https://system.netsuite.com/saml2/sp/1234567/acs
ACS URL: https://system.netsuite.com/saml2/sp/1234567/acs

Part 2: Entra ID Configuration

Step 3: Create Enterprise Application

  1. Sign in to Microsoft Entra admin center
  2. Navigate to Identity > Applications > Enterprise applications
  3. Click + New application
  4. Click + Create your own application
  5. Enter name: NetSuite SSO
  6. Select: Integrate any other application you don't find in the gallery (Non-gallery)
  7. Click Create

Step 4: Configure SAML SSO

  1. In the NetSuite SSO application, click Single sign-on in left menu
  2. Select SAML as the single sign-on method

Basic SAML Configuration

Click Edit on the Basic SAML Configuration section:

FieldValue
Identifier (Entity ID)https://system.netsuite.com/saml2/sp/{ACCOUNT_ID}/acs
Reply URL (ACS URL)https://system.netsuite.com/saml2/sp/{ACCOUNT_ID}/acs
Sign on URLhttps://system.netsuite.com
Relay State(leave blank)
Logout URL(leave blank)

Click Save

Step 5: Configure Attributes & Claims

  1. Click Edit on the Attributes & Claims section
  2. Configure the following claims:

Required Claim: NameID

SettingValue
Name identifier formatEmail address
SourceAttribute
Source attributeuser.mail

Click Save

Claim NameSource Attribute
emailaddressuser.mail
givennameuser.givenname
surnameuser.surname

Step 6: Download Certificate and Metadata

  1. Scroll to SAML Certificates section

  2. Download:

    • Certificate (Base64) - Click Download
    • Federation Metadata XML - Click Download (optional, for reference)
  3. Note down from Set up NetSuite SSO section:

    • Login URL (IdP SSO URL)
    • Azure AD Identifier (IdP Entity ID)
    • Logout URL (IdP SLO URL)
ENTRA ID SAML ENDPOINTS (Example)
═══════════════════════════════════════════════════════════════════════════════

Login URL:
https://login.microsoftonline.com/{tenant-id}/saml2

Azure AD Identifier:
https://sts.windows.net/{tenant-id}/

Logout URL:
https://login.microsoftonline.com/{tenant-id}/saml2

Part 3: Complete NetSuite Configuration

Step 7: Configure IdP in NetSuite

  1. Return to NetSuite: Setup > Integration > SAML Single Sign-on
  2. Enter the following:
FieldValue
Identity Provider NameMicrosoft Entra ID
Identity Provider IssuerAzure AD Identifier from Step 6
Identity Provider Sign-in URLLogin URL from Step 6
Identity Provider Sign-out URLLogout URL from Step 6 (optional)

Step 8: Upload IdP Certificate

  1. Still on SAML configuration page
  2. Scroll to Identity Provider Certificate section
  3. Click Upload Certificate
  4. Select the Certificate (Base64) file downloaded in Step 6
  5. Click Upload

Step 9: Configure SAML Settings

SettingRecommended Value
SAML Single Sign-onEnabled
Require SAML SSO for all loginsStart with "No", enable after testing
Name ID FormatEmail Address
Signature AlgorithmRSA-SHA256

Step 10: Save Configuration

  1. Review all settings
  2. Click Save

Part 4: User Assignment

Step 11: Assign Users in Entra ID

  1. Return to Entra admin center
  2. Go to your NetSuite SSO application
  3. Click Users and groups in left menu
  4. Click + Add user/group
  5. Select users or groups to grant access
  6. Click Assign
USER ASSIGNMENT OPTIONS
═══════════════════════════════════════════════════════════════════════════════

Option 1: Assign Individual Users
┌─────────────────────────────────────────────────────────────────────────────┐
│ Good for: Small deployments, testing │
│ Assign: john.doe@company.com, jane.smith@company.com │
└─────────────────────────────────────────────────────────────────────────────┘

Option 2: Assign Groups
┌─────────────────────────────────────────────────────────────────────────────┐
│ Good for: Large deployments, easier management │
│ Create Entra group: "NetSuite Users" │
│ Assign group to application │
│ Add/remove users from group to control access │
└─────────────────────────────────────────────────────────────────────────────┘

Option 3: All Users (if licensed)
┌─────────────────────────────────────────────────────────────────────────────┐
│ Requires: Entra ID P1/P2 │
│ Configure: Assignment required = No │
│ Result: All authenticated users can access │
└─────────────────────────────────────────────────────────────────────────────┘

Step 12: Verify User Exists in NetSuite

Ensure each assigned user has a matching NetSuite user:

  1. In NetSuite, go to Lists > Employees > Employees (or Contacts)
  2. Verify user exists with matching email address
  3. Verify user has Login Access enabled
  4. Verify user has appropriate Role(s) assigned

Part 5: Testing

Step 13: Test SSO Login

Method 1: IdP-Initiated (from Entra)

  1. Go to myapplications.microsoft.com
  2. Find and click NetSuite SSO
  3. Should redirect and log into NetSuite

Method 2: SP-Initiated (from NetSuite)

  1. Go to NetSuite login page
  2. Click Log in with SAML Single Sign-on (if available)
  3. Or access NetSuite URL directly
  4. Should redirect to Microsoft login

Step 14: Verify Login

After successful login, verify:

CheckHow to Verify
User identityCheck logged-in user name
RolesVerify correct roles appear
PermissionsTest access to expected features
Audit trailCheck Setup > Users/Roles > Login Audit Trail

Part 6: Production Rollout

Step 15: Enable Mandatory SSO (Optional)

Once testing is complete:

  1. Go to Setup > Integration > SAML Single Sign-on
  2. Set Require SAML SSO for all logins to Yes
  3. Click Save

Warning: Only enable after thorough testing. Ensure you have a backup admin account or break-glass procedure.

Step 16: Communicate to Users

Notify users of the change:

SSO ROLLOUT COMMUNICATION TEMPLATE
═══════════════════════════════════════════════════════════════════════════════

Subject: NetSuite Login Change - Single Sign-On Enabled

Starting [DATE], NetSuite login will use your Microsoft 365 credentials.

What's changing:
- You'll log in using your company email and password
- Multi-factor authentication (if enabled) will apply
- No separate NetSuite password needed

How to log in:
1. Go to NetSuite or click NetSuite in your Microsoft apps
2. If prompted, sign in with your Microsoft 365 credentials
3. Complete MFA if prompted

Questions? Contact [HELPDESK]

Troubleshooting

Common Errors and Solutions

Error: "User not found"

DIAGNOSIS AND FIX
═══════════════════════════════════════════════════════════════════════════════

Symptom: "SAML user not found in NetSuite"

Cause: Email in SAML assertion doesn't match any NetSuite user

Steps to Fix:
1. Check Entra user's email: Azure Portal > Users > [User] > Email
2. Check NetSuite user's email: Lists > Employees > [Employee] > Email
3. Ensure they match exactly (case-insensitive)
4. Verify NetSuite user has Login Access enabled

Error: "Invalid signature"

DIAGNOSIS AND FIX
═══════════════════════════════════════════════════════════════════════════════

Symptom: "SAML signature validation failed"

Cause: Certificate mismatch or expired certificate

Steps to Fix:
1. Download fresh certificate from Entra ID
2. Re-upload to NetSuite SAML configuration
3. Verify certificate hasn't expired
4. Ensure correct certificate (Base64 format)

Error: "Clock skew"

DIAGNOSIS AND FIX
═══════════════════════════════════════════════════════════════════════════════

Symptom: "SAML assertion time validation failed"

Cause: Time difference between Entra ID and NetSuite servers

Steps to Fix:
1. Usually resolves automatically (NetSuite servers are synced)
2. Wait a few minutes and retry
3. Check if issue persists across multiple users

Error: "ACS URL mismatch"

DIAGNOSIS AND FIX
═══════════════════════════════════════════════════════════════════════════════

Symptom: "Reply URL does not match"

Cause: ACS URL in Entra doesn't match NetSuite expectation

Steps to Fix:
1. Verify account ID in ACS URL
2. Ensure URL format: https://system.netsuite.com/saml2/sp/{ACCOUNT_ID}/acs
3. Check for typos or extra characters
4. Update in Entra ID > Enterprise App > SAML Configuration

Debug Tools

ToolPurpose
SAML-tracer (browser extension)View SAML request/response
Entra Sign-in LogsCheck authentication events
NetSuite Login AuditCheck NetSuite login attempts

Advanced Configuration

Conditional Access (Entra ID P1/P2)

Add additional security policies:

CONDITIONAL ACCESS EXAMPLES
═══════════════════════════════════════════════════════════════════════════════

Policy: Require MFA for NetSuite
┌─────────────────────────────────────────────────────────────────────────────┐
│ Assignments: │
│ - Users: All users │
│ - Cloud apps: NetSuite SSO │
│ │
│ Conditions: │
│ - Any location │
│ │
│ Grant: │
│ - Require multi-factor authentication │
└─────────────────────────────────────────────────────────────────────────────┘

Policy: Block access from untrusted locations
┌─────────────────────────────────────────────────────────────────────────────┐
│ Assignments: │
│ - Users: All users │
│ - Cloud apps: NetSuite SSO │
│ │
│ Conditions: │
│ - Locations: All locations except trusted │
│ │
│ Grant: │
│ - Block access │
└─────────────────────────────────────────────────────────────────────────────┘

Session Management

Configure session lifetime in NetSuite:

  1. Go to Setup > Company > General Preferences
  2. Set Session Timeout
  3. SSO sessions respect NetSuite session settings

Maintenance

Certificate Renewal

Entra ID certificates expire annually. Set a reminder to renew:

  1. Check expiry: Entra admin center > Enterprise Apps > NetSuite SSO > SAML Certificates
  2. Before expiry:
    • Generate new certificate in Entra ID
    • Download new certificate
    • Upload to NetSuite
    • Test SSO
    • Activate new certificate

User Lifecycle

EventAction Required
New hireCreate NetSuite user, add to Entra group
TerminationRemove from Entra group (immediate access revocation)
Email changeUpdate both Entra and NetSuite
Role changeUpdate NetSuite roles (Entra doesn't control roles)

Next Steps