Generate eduPersonPrincipalName (eppn) and store in Entra ID
Scenario
Section titled “Scenario”To make authentication to DNP work, the IdP must send an eppn value to DNP. The eppn value must be unique for each individual over time.
In this scenario, Fortified ID will automate the generation of eppn for each individual and store the value on the user object in Entra ID.
We recommend using Forms for this configuration, although it may be added to Integrity/Access as well.
! This scenario could easily be copied and modified to fulfill other DNP eppn scenarios.
- Store the generated value in another user data source, such as Active Directory, Google, other LDAP or SQL.
Prerequisite
Section titled “Prerequisite”There are some prerequisite for this use case. You will need the following:
- Entra ID administration rights, including Attribute Assignment Administrator and Attribute Definition Administrator
- Outgoing TCP/443 communication. To be able to communicate with Entra ID (MS Graph API).
- Forms installed.
Download and add configuration
Section titled “Download and add configuration”Remember that this use case does not describe installation of the product. Product is expected to be installed in advance.
- Download ZIP containing configuration for Forms
- Click USE_CASE_LINK to download customer folder for Forms.
- Add Forms configuration to your environment.
- Rename the existing customer folder to customer_ORG.
Add the customer folder to your \..\fortifiedid\forms\ folder.
- Rename the existing customer folder to customer_ORG.
Update the Entra ID configuration
Section titled “Update the Entra ID configuration”Create App Registration
Section titled “Create App Registration”- Login to Entra ID as an administrator
- Select App Registrations
- Click New Registration
- Enter a name of the app registration, Fortified ID eppn generator
- Select Accounts in this organizational directory only (<tenant_name> only - Single tenant)
- Register
- Click on the App Registration in the list
- Select API permissions
- Add permissions
- Microsoft Graph->Application Permissions->User.ReadWrite.All
- Microsoft Graph->Application Permissions->CustomSecAttributeAssignment.Read.All
- Microsoft Graph->Application Permissions->CustomSecAttributeAssignment.ReadWrite.All
- In the Overview section, copy these values (they will be used in later steps):
- Application (client) ID
- Directory (tenant) ID
- Generate a keystore in p12 format.
- Name the p12 file enterprise_app_keystore.p12
- Extract the certificate chain from the keystore file, using this guide. This should result in a certificate file that will be used in next step.
- Select Certificates & secrets
- Select Certificates
- Click Upload certificate
- Select the certificate file
- Click Save
Add custom security attribute for eppn (this part is only accessible from entra.microsoft.com)
Section titled “Add custom security attribute for eppn (this part is only accessible from entra.microsoft.com)”- Select Custom attributes
- Select Add attribute set
- Name the set FortifiedID
- Click Add
- Click Add attribute
- Set Attribute name = eppn and Data type = string
Update the configuration to map to your environment
Section titled “Update the configuration to map to your environment”Place the file enterprise_app_keystore.p12 in the folder customer/config/resources/certificates/entra/. (Replace if a file already exists)
Open the file customer/config/globals.json. Change according to the instructions below.
- EntraID
Set client_id and tenant_id to the values fetched in previous steps (Application (client) ID and Directory (tenant) ID)
.
Example:
"EntraID": { "tenant1": { "namespace": "tenant1", "client_id": "123-123-123-123-123-123", "tenant_id": "456-456-456-456-456-456" } },- keystore->MS_Entra_ID_tenant_1
Change the password (password) to the private key password of enterprise_app_keystore.p12.
Example:
"MS_Entra_ID_tenant_1": { "path": "${globals.file_paths.base_dir}/config/resources/certificates/entra/enterprise_app_keystore.p12", "password": "Summer2024f234", "type": "PKCS12" }Save the file.
Start the service.
Verify startup by viewing the log files. Any error - fix accordingly.
Check that your Entra ID accounts were updated with the eppn value.
The eppn automation job will run on startup and then every 10 minutes.
You can modify the schema interval in scheduler.json. Change the cron job syntax to suite your needs.
&#xNAN;"run_on_start": true,
&#xNAN;"schedule": "0 0/15 * * * ?",