Controle de acesso em design orientado a domínio

Li sobre DDD e controle de acesso e encontrei alguma contradição entre as duas opiniões a seguir:

"preocupações de segurança devem ser tratadas fora do domínio""os requisitos de controle de acesso são específicos do domínio"

Estou procurando uma prática recomendada sobre isso. Então, onde devo colocar a lógica de controle de acesso por design orientado a domínio e como implementá-la?

(Para ser mais específico por DDD + CQRS + ES.)

Eu acho que deve estar em algum lugar perto da lógica de negócios, por exemplo, uma história de usuário pode ser algo como isto:

O usuário pode editar seu perfil enviando um nome de usuário, uma lista de hobbies, CV, etc ...

Com base na história do usuário, implementamos o modelo de domínio e os serviços, por exemplo:

UserService
    editProfile(EditUserProfileCommand command)
        User user = userRepository.getOneById(command.id)
        user.changeName(command.name)
        user.changeHobbies(command.hobbies)
        user.changeCV(command.cv)

UserRepository
    User getOneById(id)

User
    changeName(String name)
    changeHobbies(String[] hobbies)
    changeCV(String cv)

Tudo bem, mas onde está oHIS profile parte da história?

Obviamente, isso é controle de acesso baseado em atributos, porque devemos escrever uma regra mais ou menos assim:

deny all, but if subject.id = resource.owner.id then grant access

Mas onde devemos aplicar essa regra e como devemos implementá-la?

questionAnswers(1)

yourAnswerToTheQuestion