2016-11-01 9 views
2

TeamCityビルド構成の一部としてDeploy-FabricApplication.ps1を呼び出すPowerShellのAzure Active Directoryを使用してセキュリティ保護されたサービスファブリッククラスタにパブリッシュしようとしています。Azure Active Directoryによって保護されたService FabricをPowerShellから展開する

このような状況で資格情報を提供する方法がわかりません。

Deploy-FabricApplication.ps1には、Active DirectoryのSecurityTokenパラメータがあることがわかりました。

これは認証に渡す必要がありますか?もしそうなら、PowerShellでセキュリティトークンをどのように生成できますか?

私はAzure Active Directory内でTeamCity用にユーザーを設定しています。これは、認証するためにホッピングしています。

答えて

2

トークンは、具体的方法Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContextAcquireToken呼び出すことにより、Active Directoryの認証ライブラリ(ADAL)を利用することによって取得することができます。

これの良い例は、VSTSサービスファブリックデプロイタスクのコードhttps://github.com/Microsoft/vsts-tasks/blob/master/Tasks/ServiceFabricDeploy/utilities.ps1のコードで確認できます。

AuthenticationContext.AcquireTokenメソッドへの呼び出しを示すGet-AadSecurityTokenという名前のファイルに関数があります。

あなたはクラスタアプリのIDクライアントアプリケーションのIDの両方を持っていることを確認する必要があります。これらの両方は、-GetMetadataスイッチを使用してConnect-ServiceFabricClusterを呼び出すことによってクラスタから取り出すことができます(これはGet-AadSecurityToken関数でも行われます)。

+0

少し修正して、問題なしでsecurityTokenを生成するコードを取得できました。このパラメータをデプロイスクリプトに渡すと、エラーが返されます。「警告:サービスファブリッククラスタへの接続を確認できません。 例外:System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord)で メッセージ:クラスタ接続インスタンスは、私は '追加するのを忘れ、私の悪いnull'なので – Aaron0

+0

です。 'スクリプトを呼び出す前に。ご協力いただきありがとうございます – Aaron0

関連する問題