私は平日の SOAP API の初心者であり、SOAPUI を使用して認証するために SOAP リクエストを送信する方法を理解しようとしています。どんな提案でも大歓迎です。
4 に答える
Workday API は、認証に WS-Security を使用します。
平日のホストはマルチテナントであることに注意してください。したがって、WSDL エンドポイントを使用して正しいサーバーに接続すると、ユーザー名フィールドにはユーザー名とそのサーバーのテナントの両方が含まれます。
SOAP Auth から Workday へのユーザー名の形式:
[user-name]@[tenant-name]
例:youUserName@tenant6
勤務日のアカウントも統合開発者のグループに含まれている必要があります。
Web サービスに関連する特定の機能グループとドメインへのアクセスを許可するには、それ以上のセキュリティとアクセス許可を調整する必要がある場合があります。
SoapUI を使用している場合は、次の手順を実行します。
- WSDL をプロジェクトにインポートします。
- 「統合バインディング」で、設定に移動します。
- [サービス エンドポイント] タブで、上で説明したようにユーザー名を設定します。
- テナント内のパスワードにパスワードを設定します。
- WSS-Type は PasswordText に設定する必要があります。
これで、リクエストを作成できます。
正確に何を指しているのかわかりません。暗黙的に認証します - 個別のリクエストはありません。Workday API ドキュメントはこちらで公開されています。あなたはそれを読むべきです。たとえば .Net ソリューションで WSDL をインポートすると、さまざまな API クラスにアクセスできるようになります。
たとえば、SSIS スクリプト タスクから Compensation API に接続するには、次のコードを使用します。
// Instantiate and configure compensation client
CompensationPortClient compClient = // I use custom binding - gives me more control
new CompensationPortClient(CompensationObjectFactory.getWorkdayBinding(),
new EndpointAddress(endpointURL));
compClient.ClientCredentials.UserName.UserName = userName;
compClient.ClientCredentials.UserName.Password = password;
(私は CompensationObjectFactory を作成して、すべてのクライアント側 API オブジェクトをインスタンス化しました。これは、プロセスがやや定型化されているためです。) 次に、クライアント オブジェクトを使用して API 呼び出しを行うことができます。たとえば、1 回限りの報酬をクエリします。
Request_OneTime_Payment_RequestType request =
CompensationObjectFactory.getOneTimePaymentRequest(
CompensationObjectFactory.getBusinessProcessParameters(),
CompensationObjectFactory.getOneTimePaymentData(
planId, currency, amount, effDt, emplID, positionID));
Request_OneTime_Payment_ResponseType response =
compClient.Request_OneTime_Payment(request);