ardalis / ardalis/CleanArchitecture

Handling Third-Party Authentication and Role Synchronization in DDD and Clean Architecture

Open
#657 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
18.5k
Forks
3.1k
PR merge metrics
No merged PRs in 30d

Description

I'm working on a project that tries to use DDD and Clean Architecture principles. The project integrates with a third-party service for authentication and role management. In this context, I face a specific challenge:

Situation:

- We use a third-party service to handle authentication.
- Roles are created in this third-party service via an API call.
- In our domain, we have a corresponding Role entity.
- The creation of our Role entity is dependent on the successful creation of a role in the third-party service.

Question:

**Interface Definition:** In the context of DDD and Clean Architecture, where should I define the interfaces for this role synchronization process? Should they be part of the Core layer, UseCase layer, or elsewhere?

**Implementation Location:** Considering the dependency on an external service, where is it most appropriate to place the implementation of these interfaces? _**How should the interaction between our system and the third-party service be structured to maintain the integrity of our architecture?**_

I'm looking for guidance on structuring this functionality and please If you find it useful add similar situation to the sample for better understanding when integration with third party services is needed.

Contributor guide

Open the contributing guide

Research direction

No files, tests, or entry points are named. Start by reviewing the repository's Core and UseCase boundaries and its third-party integration guidance; document where role-synchronization interfaces and implementations belong, and add a comparable sample if an appropriate example location exists.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
authentication, authorization, backend-api-design
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.