2017-10-17 4 views
1

azure ad & powershellを使用してサービスをサービスファブリックにデプロイします。AzureAD認証を使用したServiceFabricアプリケーションのデプロイ

私は必要なazure ADアプリケーションをセットアップしましたが、私はAzure ADアカウントにプログラムでログインする方法を知らないので、CDツールから展開できます。これは、ADユーザーでサービス主体ではない必要があるようです。 COnnect-ServiceFabricコマンドレットには、AzureADを使用するときに何らかのセキュリティトークンが必要で、ポップアップを避けるために提供する方法がわかりません。 SFクラスタおよびクライアントのための第二1を表すために1 - あなたはADで2件のアプリの登録を作成する必要が

1. -

答えて

0

は、ここでは、物事を取得するために使用することができ、ステップと実行されていますアプリ。あなたその結果、それはSet up Azure Active Directory for client authentication

を成し遂げるために、ここで説明に従ってください、あなたは次の出力を持っている必要があります -

"azureActiveDirectory":{ "tenantId ":" GUID"、 "clusterApplication ":" GUID」、 "clientApplication ":" GUID"}

2.今、あなたはあなたのSF CLを設定することができuster。あなたは前のステップから得たAD成果物をrmテンプレートに入れたり、ポータルのフィールドを指定することができます。選択はあなた次第です -

enter image description here

3. ADの最初のステップで作成したアプリの登録を見つけ、そしてあなたはそこにいくつかの役割でログインしようとしているユーザーに割り当てます。

4.最後に、この例を使用して、非対話モードでAD認証を使用してログインします(Connect to a secure cluster non-interactively using Azure Active Directory)。ここで

はちょうど同じですが、PowerShellである - 基本的にはこれだけです

$authority = "https://login.microsoftonline.com/your_tenant_id" 
$credentials = [Microsoft.IdentityModel.Clients.ActiveDirectory.UserCredential]::new($UserName, $Password) 
$authContext = [Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext]::new($authority) 
$authResult = $authContext.AcquireTokenAsync($clusterApplicationId, $clientApplicationId, $credentials) 
$Token = $authResult.Result.AccessToken 

Connect-ServiceFabricCluster -AzureActiveDirectory -SecurityToken $Token -ConnectionEndpoint "your_cluster_name.location.cloudapp.azure.com:19000" -ServerCertThumbprint "your_server_cert_thumbprint" 

+0

-securitytokenを使わずにpowershellを実行し、ポップアップを使用してログインしてファブリッククラスタに接続できます。ただし、上記のpowershellコードを使用して同じユーザーのポップアップをバイパスすると、ログインしますがクラスタに接続しません。 Connect-ServiceFabricCluster:指定された資格情報は無効です。何か案が?これはまったく同じユーザーです。 –

+0

ええと、私は間違ったパスワードを使用しても、取得トークンが動作していてトークンが返っているようです。また、この$ authResult.Result.AccessTokenを-SecurityToken値として渡すと、接続が機能します。ここでどこが切断されているのかわからないので、私は新しいPowerShell ISEセッションを開始しました。 –

+1

@DaveNそれはauthResult.Result.AccessTokenだったはずです。そのために残念。それはあなたのために働いていますか?それでも問題は見えますか? –

関連する問題