Your Knowledge Base is moving on 3/25/24! Our new Help Center provides all the articles you know and love (plus so much more) in a one-stop shop. Ask your SPoC for details!

OAuth 2.0

 
Action Required: References to the /ministryplatform/oauth/ are no longer be supported. This can be a breaking change, so if you have custom development that references this value, be sure to replace it (see below).

Open Authorization (OAuth for short) is the industry standard for token-based authorization on the internet. MinistryPlatform supports several OAuth 2.0 workflows and also serves as a Security Token Service (STS) provider. MinistryPlatform is also a client and can support other token providers such as Facebook or Google.

Discovery

The discovery URL can be found by adding an "OAuth" subfolder to the Ministry Platform URL. Important: Replace the old Discovery URL with the new next generation friendly URL, if you haven't already.

New Next Generation Friendly Discovery URL
https://example.ministryplatform.com/ministryplatformapi/oauth/.well-known/openid-configuration

The discovery URL will display various end-points, scopes, and response types supported by MinistryPlatform's OAuth implementation.

General Use

  • User chooses to login using STS provider
  • User is redirected to provider’s login page
  • STS provider authenticates user
  • User is redirected back to original application along with an Access Token
  • Access Token is passed in Authorization Header of each subsequent request in order to gain access to Resources

OAuth and MinistryPlatform

  • MinistryPlatform acts as an STS provider
    • Login using the platform's login UI
    • Get an Access Token using the platform
    • Utilize OAuth workflows using the platform
    • Authorization uses existing Security Roles to determine access
  • MinistryPlatform acts as an STS consumer
    • Configure the platform to login using Facebook (and other OAuth providers)
    • Theoretically, login to Facebook using the platform!
  • BatchManager and Tools
    • Use Client Credentials workflow
    • Authorization uses existing Security Roles

Workflows

Client Credentials
  • Allows client applications to have access without storing a user name or password anywhere
  • Can be used to provide data to an end-user whether they are logged in or not
  • Best choice for 99% of your application development
  • Client-specific user assignment

See API & Identity Pages  and Giving Developers Access.

Implicit Grant
  • Can allow applications to be developed entirely in client-side JavaScript
  • Assumes end-user has significant rights within MinistryPlatform
  • Access Token belongs to the end-user
Authorization Code
  • Similar in end-user experience to Implicit Grant
  • Redirects user to the authorization server
Resource Owner
  • Assumes your client application has (or can collect) the end user’s credentials
  • Could be used like Client Credentials if you have a safe place for your application to store the user name and password (not recommended)

See Administering Users and Working With 3rd Party Developers.

See Also

Additional Documentation