0

adfs を使用して認証する新しい asp.net Web アプリケーションを作成しました。次に、この Web アプリケーションを使用して Dynamics AX と通信します。Dynamics Ax の内部 クラスとサービスを作成し、Dynamics AX 内の "受信ポート" として IIS に公開しました。Visual Studio 内のサービス参照を公開されたサービスに追加できます (https を使用し、ドメイン資格情報を使用する必要があります)。サービス リファレンスは正常に動作し、以下を使用してアプリケーションで Dynamics AX と通信できます。

ServiceTestClient client = new ServiceTestClient();
client.ChannelFactory.Credentials.UserName.UserName = @"domain\user";
client.ChannelFactory.Credentials.UserName.Password = @"password";

すべてがこのようにうまく機能し、AX との間で読み書きできます。しかしもちろん、adfs を介してアプリケーションにログインしたときに既に入力した資格情報を使用したいと思います。しかし、私の問題は、それを行う方法が本当にわからないことです。取得した要求またはトークンを Dynamics AX に転送するにはどうすればよいですか?

現在AX内で使用しているバインディングとclientCredentialtypeを変更する必要があると確信しています。Visual Studio 内にサービス参照を追加すると、web.config 内で次のようになります。

  <basicHttpBinding>
    <binding name="serviceEndpoint">
      <security mode="Transport">
        <transport clientCredentialType="Basic" /> 
      </security>
    </binding>
    <binding name="BasicHttpBinding_ServiceTest">
      <security mode="Transport">
        <transport clientCredentialType="Basic" />
      </security>
    </binding>
  </basicHttpBinding>

問題は、AX 内でどのタイプのバインディングと clientcredentialtype を使用する必要があるかということです。また、作成したクライアントに adfs トークン/資格情報を追加するにはどうすればよいですか? おそらく、私は何をすべきかを完全に誤解しています。そうであれば、正しい方向へのポインタを喜んで受け入れます。

4

1 に答える 1

0

誰かが答えを必要とする場合は、AD/DAX で中間ユーザーを作成しました。このユーザーは、https バインディングと対話する権利はありますが、DAX にはアクセスできません。次に、adfs トークンから取得したユーザーに呼び出しコンテキストを設定します。

したがって、中間ユーザーの / パスは web.config に保存され、adfs を介して認証されるユーザーは、Dax 内でアクションを実行するユーザーです。

于 2016-04-08T09:37:23.180 に答える