Expensify

Before You Begin

Introduction

This document describes how to configure Oracle Identity Cloud Service to provide Single Sign-On (SSO) for Expensify using SAML.

About Expensify

Expensify is a tool for expense report management, receipt tracking, and business travel. It is designed for small businesses, accountants, and individuals. The app eliminates manual data entry and makes it easy to track receipts.

After integrating Expensify with Oracle Identity Cloud Service:

  • Users can access Expensify using their Oracle Identity Cloud Service login credentials.
  • Users can start Expensify using the Oracle Identity Cloud Service My Apps console.
  • Admins can assign and revoke user access to the Expensify app using the Oracle Identity Cloud Service administration console.

What Do You Need?

  • An Oracle Identity Cloud Service account with authorization rights to manage apps and users (Identity Domain Administrator or Application Administrator).
  • An Expensify account with a verified domain to include when you register the Expensify app in Oracle Identity Cloud Service. See https://docs.expensify.com/advanced-admin-controls-domain-control/taking-control-of-your-domain for Expensify domain verification steps.
  • Make sure that the email ID of each user in Expensify matches the primary email ID of the Oracle Identity Cloud Service account.
  • Downloaded Identity Provider Metadata. Alternatively, you can use the following URL to access the metadata: https://<IDCS-Service-Instance>.identity.oraclecloud.com/fed/v1/metadata. Tip: Use this file later during the Expensify configuration in the "Configuring SSO for Expensify" section.
  • Service Provider Signing certificate. Tip: Use this file later during the Expensify registration in the "Registering and Activating the Expensify App" section.

Configuring SSO for Expensify

  1. Access Expensify as an administrator using the URL: https://www.expensify.com/signin. The Expensify home page appears.

  2. In the Expensify header, click ADMIN.

  3. From the left navigation menu, click Domain Control.

  4. Copy the verified DOMAIN name from the Domain Control page.

    Image img1.png displays the Expensify Administration page with Domain Control selected and the domain name highlighted.

    Tip: Use this value as the domain name during Expensify registration in the "Registering and Activating the Expensify App" section.

  5. Click the verified DOMAIN name. The Domain page appears.

  6. Select SAML from the left navigation menu, and then use the table to update the federated authentication attributes. Your changes are saved automatically.

    This table lists the mandatory federated authentication attributes that you must set to complete the SSO configuration.
    Attribute Value
    SAML Login Turn on SAML Login.
    Identity Provider MetaData Paste the metadata that you downloaded during the Expensify registration in Oracle Identity Cloud Service. See the "Registering and Activating the Expensify App" section.

Obtaining Service Provider Signing Certificate in .PEM Format

Use this section to obtain the Service Provider Certificate value into a format that is suitable for Oracle Identity Cloud Service.

  1. On the SAML page, locate Service Provider MetaData, click its Copy to Clipboard icon, and then paste the content in a text file. This is the service provider metadata.

  2. In the metadata file, locate the md:SPSSODescriptor tag.

  3. Copy the content between the ds:X509Certificate tags. This content is the Service Provider signing certificate.

  4. Access the URL: https://www.samltool.com/format_x509cert.php to format the certificate. The Format a X.509 certificate page appears.

  5. Paste the certficate content in the X.509 cert text box, and then click FORMAT X.509 CERTIFICATE. The converted certificate content is displayed in the X.509 cert with header text box.

  6. Copy the content from the X.509 cert with header text box, paste the content in a text file, and then save the file in .PEM format.

    Tip: Use this .PEM format certificate later during Expensify registration in the "Registering and Activating the Expensify App" section.

Configuring the Expensify App in Oracle Identity Cloud Service

Use this section to register and activate the Expensify app, and then assign users to the app.

Obtaining Tenant and IDCS Domain

A dedicated Tenant and IDCS Domain is required before you can register and activate the Expensify app.

The Tenant and IDCS Domain values appear in the Oracle Identity Cloud Service My Profile console URL: https://<IDCS_Service_Instance>.<identity.oraclecloud.com>/ui/v1/myconsole.

Note: Use the value entered for IDCS_Service_Instance as Tenant, and the value entered for identity.oraclecloud.com as IDCS Domain during Expensify registration in the "Registering and Activating the Expensify App" section.

Registering and Activating the Expensify App

  1. Access the Oracle Identity Cloud Service administration console, select Applications, and then click Add.

  2. Click App Catalog.

  3. Search for Expensify, and then click Add.

  4. In the App Details section, enter your Expensify Tenant, IDCS Domain, and Domain Name values, and then click Next.

    Note: These are the values that you obtained while performing the steps in the "Obtaining Tenant and IDCS Domain" and "Configuring SSO for Expensify" sections.

  5. In the SSO Configuration section, expand the General Settings section, and then upload the signing certificate of the service provider that you obtained earlier. See the "Obtaining Service Provider Signing Certificate in .PEM Format" section.
  6. Click Finish. Oracle Identity Cloud Service displays a confirmation message.

  7. Click Activate, and then click Activate Application. Oracle Identity Cloud Service displays a confirmation message.

Assigning Users to the Expensify App

  1. On the Expensify page in Oracle Identity Cloud Service, select Users, and then click Assign. The Assign Users window appears.

  2. Select users that you want to assign to Expensify, and then click OK. Oracle Identity Cloud Service displays a confirmation message stating that the Expensify app is assigned to the users that you selected.

Verifying the Integration

Use this section to verify that SSO/SLO works when initiated from Oracle Identity Cloud Service (IdP initiated SSO) or from Expensify (SP initiated SSO/SLO).

Verifying Identity Provider Initiated SSO from Oracle Identity Cloud Service

  1. Access the Oracle Identity Cloud Service My Profile console using the URL: https://<IDCS-Service-Instance>.identity.oraclecloud.com/ui/v1/myconsole.

  2. Log in using credentials for a user that is assigned to the Expensify app. Oracle Identity Cloud Service displays a shortcut to Expensify under My Apps.

  3. Click Expensify. The Expensify home page appears.

  4. In the upper-right corner of the header, click the user icon, and then confirm that the user that is logged in is the same for both Expensify and Oracle Identity Cloud Service.

    This confirms that SSO that is initiated from Oracle Identity Cloud Service works.

Verifying Service Provider Initiated SSO from Expensify

  1. Access Expensify using the URL: https://www.expensify.com/signin. The Expensify login page appears.

  2. Click SAML, enter your email address, and then click Go. You are redirected to the Oracle Identity Cloud Service login page.

  3. Log in using credentials for a user that is assigned to the Expensify app. The Expensify home page appears.

  4. In the upper-right corner of the header, click the user icon, and then confirm that the user that is logged in is the same for both Expensify and Oracle Identity Cloud Service.

    This confirms that SSO that is initiated from Expensify works.

Verifying Single Log-Out (SLO) from Expensify

  1. Access Expensify following the steps from the "Verifying Identity Provider Initiated SSO from Oracle Identity Cloud Service" or "Verifying Service Provider Initiated SSO from Expensify" sections.

  2. In the upper-right corner of the header, click the user icon, and then click Sign Out. The Expensify login page appears.

    Note: If the user has already logged in to Oracle Identity Cloud Service My Profile console in the browser, that session is logged out, and then the login page appears.

    This confirms that SLO that is initiated from Expensify works.

Troubleshooting

Use this section to locate solutions to common integration issues.

Known Issues

Expensify displays the message, "Auth AuthenticateSAML returned an error".

Cause: The email attribute sent by Oracle Identity Cloud Service during SSO doesn't match any existing user in Expensify.

Solution: Ensure that the user that you assign to the Expensify app has an account in both Oracle Identity Cloud Service and Expensify with the same email address.

Oracle Identity Cloud Service displays the message, "You are not authorized to access the app. Contact your system administrator."

Cause 1: The SAML 2.0 integration between the Oracle Identity Cloud Service Expensify app and Expensify is deactivated.

Solution 1:

  • Access the Oracle Identity Cloud Service administration console, select Applications, and then select Expensify.
  • In the App Details section, click Activate, and then click Activate Application. Oracle Identity Cloud Service displays a confirmation message.

Cause 2: The administrator revokes access for the user at the same time that the user tries to access the Expensify app using Oracle Identity Cloud Service.

Solution 2:

  • Access the Oracle Identity Cloud Service administration console, select Applications, and then select Expensify.
  • In the App Details section, select Users, and then click Assign to re-assign the user.

Unknown Issues

For unknown issues, contact Oracle Support:

  1. Go to https://support.oracle.com.

  2. Select Cloud Support, and then sign in with your support credentials.

  3. In the Cloud Dashboard, confirm that there are no planned outages in Oracle Identity Cloud Service, and then click Create Service Request.

  4. Select Oracle Identity Cloud Service as the service type.

  5. Complete your service request.