олицетворение из клиентского приложения в wcf в AX

Что я хотел бы сделать, так это передать учетные данные клиента моей веб-службе, а затем моей веб-службе для аутентификации в веб-службе AIF (ax) для передачи информации. В настоящее время моя клиентская программа аутентифицируется через HTTPS, аутентификация Windows для моей веб-службы. затем мой веб-сервис подключается к AIF. в настоящее время веб-служба работает как обычная учетная запись удостоверения. Но я хотел бы, чтобы учетные данные пользователя передавались, поэтому, когда что-то создается в axe, мы знаем, что это пользователь, а не общая учетная запись. Что было бы самым простым из возможных способов.
Я пробовал использовать такой код, как олицетворение метода.

        <OperationBehavior(Impersonation:=ImpersonationOption.Allowed)>

а затем пытаюсь вызвать aif в контексте windowsidentity, но мне не повезло.... конечно, если я это сделаю

generalJournal.ClientCredentials.Windows.ClientCredential.UserName = ""
             'generalJournal.ClientCredentials.Windows.ClientCredential.Password = ""
                  'generalJournal.ClientCredentials.Windows.ClientCredential.Domain = ""

это работает ... но мне нужно получить учетные данные, которые уже были аутентифицированы ... любая помощь? Спасибо


person Sirus    schedule 16.04.2015    source источник


Ответы (1)


В службе вы должны установить servicePrincipalName и включить свою учетную запись службы для делегирования.

<configuration>
  <services>
    <service>
      <endpoint>
        <identity>
          <servicePrincipalName value="server/YourService" />
        </identity>
      </endpoint>
    </service>
  </services>
</configuration>

И SPN на AD .

setspn.exe –U –A server/YourService DOMAIN\SERVICEACCOUNT

В конфигурации клиента необходимо установить userPrincipalName.

<configuration>
  <system.serviceModel>
    <client>
      <endpoint>
        <identity>
          <userPrincipalName value="server/YourService" />
        </identity>
      </endpoint>
    </client>
  </system.serviceModel>
</configuration>
person Matej    schedule 18.06.2015