CRM インスタンスでクレーム ベース認証を構成しました。カスタム STS を使用しています (サンプルはこちらから入手できます) ここで、テスト アプリケーションから Web サービスにアクセスしたいと考えています。誰かがこれの例を持っていますか? Windows認証の場合、同じコードで接続してみました。しかし、もちろん失敗。エラーが発生します:
{"認証エンドポイントの Kerberos が、構成された Secure Token Service で見つかりませんでした!"}
これは接続用のコードです (AD 認証タイプの場合):
OrganizationServiceProxy orgserv;
ClientCredentials clientCreds = new ClientCredentials();
ClientCredentials devCreds = new ClientCredentials();
clientCreds.Windows.ClientCredential.UserName = "user";
clientCreds.Windows.ClientCredential.Password = "P@$$w0rd";
clientCreds.Windows.ClientCredential.Domain = "myDomain";
IServiceConfiguration<IOrganizationService> orgConfigInfo =
ServiceConfigurationFactory.CreateConfiguration<IOrganizationService>(new Uri("https://myCRMServer/myOrg/XRMServices/2011/Organization.svc"));
using (orgserv = new OrganizationServiceProxy(orgConfigInfo, clientCreds))
{
orgserv.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
orgserv.EnableProxyTypes();
connection = orgserv;
}
クレーム ベースの認証では、UPN (ユーザー プリンシパル名) のみを送信するだけで十分であることがわかりました。しかし、同じエラーが発生します。ユーザー名とパスワードの組み合わせも試しましたが、失敗しました。
AuthenticationCredentials authCredentials = new AuthenticationCredentials();
...
authCredentials.UserPrincipalName = "user";
...
authCredentials.ClientCredentials.UserName.UserName = _userName;
authCredentials.ClientCredentials.UserName.Password = _password;
この後のエラーは次のとおりです。The authentication endpoint Username was not found on the configured Secure Token Service!