Skip to content

feat: support for organization discovery strategies #124

@brionmario

Description

@brionmario

Problem

Currently, Asgardeo SDK users need to manually specify the organizationHandle in their configuration when implementing B2B authentication flows. This creates several challenges:

  1. Manual Configuration: Developers must hardcode organization handles or implement custom logic to extract them from URLs
  2. Limited URL Support: No built-in support for common B2B URL patterns like:
    • Path-based: /o/{orgHandle} or /o/{orgId}
    • Query-based: /?o={orgHandle} or /?o={orgId}
    • Subdomain-based: {orgHandle}.example.com
  3. Repetitive Implementation: Each application needs to implement similar organization extraction logic
  4. Error-Prone: Manual extraction is susceptible to bugs and inconsistencies across applications

Proposed Solution

Implement automatic Organization Discovery Strategies that can extract organization handles from URLs and automatically inject them into authentication requests as signInOptions={{ fidp: 'OrganizationSSO', orgId: '<discovered_org>' }}.

URL Path Strategy (urlPath):

  • Extracts from patterns: /o/{handle}, /o/{id}
  • Example: https://app.com/o/acme-corpacme-corp

URL Query Strategy (urlQuery):

  • Extracts from query parameters: ?o={handle}, ?org={handle}
  • Example: https://app.com/?o=acme-corpacme-corp

Subdomain Strategy (subdomain):

  • Extracts from subdomain patterns: {handle}.domain.com
  • Example: https://acme-corp.app.comacme-corp

Base URL Strategy (baseUrl):

  • Extracts from the configured baseUrl pattern
  • Example: baseUrl: "https://api.asgardeo.io/t/acme-corp"acme-corp

Alternatives

No response

Please select the package issue is related to

@asgardeo/express, @asgardeo/javascript

Version

0.1.12

Reporter Checklist

  • I have searched the existing issues and this is not a duplicate.
  • I have provided all the necessary information.
  • I have verified the feature on the latest version of the package.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions