This article explains how to set up single sign-on (SSO) in Personio with Microsoft Entra ID. Follow the steps to complete the setup.
Understand SSO and OAuth
SSO allows you to connect Personio to an identity provider such as Microsoft Entra ID or Okta. Personio supports the OAuth 2.0 protocol, an open-source standard for access delegation. When set up, users authenticate through an identity provider. They don't have to use their Personio credentials. If you enable OAuth, employees with a Personio profile can log in to their account without an invitation email.
Note:
Setting up SSO with Microsoft Entra ID doesn't automatically sync Personio application users with Microsoft Entra ID. To do this, you need to set up the integration with Microsoft Entra ID separately. Learn more about our integration with Microsoft Entra ID.
1. Register and create a new application in Microsoft Entra ID
- Optional: open Personio and Microsoft Entra ID in separate tabs to simplify setup.
- In the Microsoft Entra ID admin center, go to Microsoft Entra ID > App registrations.
- To register a new application such as Personio, click New registration.
- In the Name field, enter a name for the application, for example, "Personio SSO".
- Under Supported account types, select the account type that can use the application or access the API. For security reasons, we recommend selecting Accounts in this organizational directory only (single-tenant). With the other options, it could be possible for users of other tenants to log in to Personio accounts.
- In Personio, go to Settings. In the Integrations section, click Authentication. Then, click OAuth 2.0.
- Under Provider settings, copy the text next to Callback URI.
- Return to Microsoft Entra ID. Paste the Callback URI that you copied from Personio into the field under Redirect URI.
- You also need to enter the following address into the field under Redirect URI:
- Ensure you select Web from the drop-down menu as the redirect type.
- Register the application.
A confirmation message appears, and the system redirects you to the new application.
Tip:
To use SSO in the Personio mobile app, add this callback URI to the redirect URIs in Entra ID: https://auth.personio.de/providers/oauth/callback
2. Copy URIs to Personio
After creating the Personio application, you need to copy the Authorisation URI and the Token URI from Microsoft Entra ID to Personio. You also need to add the Userinfo URI to Personio.
Note:
Microsoft sets the Userinfo URI: https://graph.microsoft.com/oidc/userinfo. It is not specific to your Microsoft Entra ID domain. https://graph.microsoft.com is not sufficient.
- In the new application you have created in Microsoft Entra ID, go to Overview > Endpoints and click Endpoints.
- Copy the value in the OAuth 2.0 authorization endpoint (v2) field.
- In Personio, go to Settings. In the Integrations section, click Authentication. Then, click OAuth 2.0.
- Under Configuration, click Edit.
- Paste the value that you copied earlier from the OAuth 2.0 authorization endpoint (v2) field into the Authorization URI field.
- Return to Overview > Endpoints in Microsoft Entra ID. Copy the value in the OAuth 2.0 token endpoint (v2) field.
- Return to Personio. Paste the value into the Token URI field.
- Under Userinfo URI, select GET from the drop-down menu. Paste the Userinfo endpoint "https://graph.microsoft.com/oidc/userinfo" into the field. The system selects the Skip reading entities from ID token checkbox by default. This means that, upon login, the system reads user information, including the email address, from the Userinfo URI at login, not the Token URI. Clear the checkbox if you want to read user information from the Token URI at login instead of the Userinfo URI. This makes it possible to use OAuth with Active Directory Federation Services (ADFS).
- Under Scopes, enter "openid, email".
Configure issuer and JWKs URI fields
- The issuer is the issuer identifier of the authorization server in the authorization response. In this field, enter the value of the issuer field from the .well-known/openid-configuration endpoint of your SSO provider.
- The JSON Web Key Sets (JWKs) URI is the discovery URI to a set of public keys. These keys verify any JSON Web Token (JWT) issued by the authorization server. In this field, enter the value of the jwks_uri field from the .well-known/openid-configuration endpoint of your SSO provider.
You can find the issuer and jwks_uri fields in the discovery document endpoint of your SSO provider. You can usually access this through one of these URLs:
- https://example-provider.com/well-known/openid-configuration
- https://example-provider/oauth2/token/.well-known/openid-configuration
- https://example-provider.com/oauth2/authorize/.well-known/openid-configuration
- https://example-provider.com/v2.0/.well-known/openid-configuration
3. Register a new client secret
- In the application you have created in Microsoft Entra ID, go to Manage > Certificates & secrets.
- Select Client secrets.
- The Add a client secret drawer appears.
- In the Description field, enter a name for the client secret. Then, choose the relevant expiry date from the Expires drop-down menu.
- Click Add.
- A page shows an overview of the application credentials. Copy the value listed under the Value column.
- In Personio, go to Settings. In the Integrations section, click Authentication. Then, click OAuth 2.0.
- Under Configuration, click Edit.
- Paste the value that you copied earlier into the Client secret field.
- Return to Microsoft Entra ID > Overview. Copy the Application (client) ID value.
- Return to Personio. Paste the value into the Client ID field.
4. Select the claim
Under Claim field, select the field in Microsoft Entra ID with the email addresses of your employees. To validate that an employee exists in Personio, we check if the value in this field corresponds to the email address used in Personio. Depending on your setup in Microsoft Entra ID, you can choose between "email", "unique_name", "sub", and "upn".
Tip:
If you select Use default, we check the fields "email", "unique_name", and "sub" in sequential order until we find one that contains a value. If the email addresses of your employees are in the User Principal Name (UPN) field in Microsoft Entra ID, select "upn" here.
5. Review and test
- Review the data you've entered in Personio.
- Submit your changes.
- To test the OAuth connection, click Perform a configuration test.
- You need to sign in to Microsoft Entra ID. If there are errors, a message appears to help with troubleshooting.
To use SSO, employees need to have user profiles in both Microsoft Entra ID and Personio. The email address entered in Microsoft Entra ID in the field you have selected under Claim field must match the email address used in Personio.
Optional: enforce SSO with Microsoft Entra ID
After setting up SSO with Microsoft Entra ID, login through OAuth is optional. Your employees can choose to log in to Personio using their Personio credentials or through OAuth. To make it mandatory for all employees to log in through OAuth, click Enforce OAuth.