web-dev-qa-db-ja.com

Azure Service FabricExplorerは常に403を返します

LoadBalancerを使用してセキュリティで保護されたServiceFabricクラスター(EncryptAndSign)をAzureサブスクリプションにデプロイしました。展開には時間がかかりましたが、期待どおりに機能しました。また、PowerShellを介してクラスターに接続できます。

$connectionEndpoint = ("{0}.{1}.cloudapp.Azure.com:19000" -f 
   "mycluster", "somewhere")

Connect-serviceFabricCluster -ConnectionEndpoint $connectionEndpoint `
  -KeepAliveIntervalInSec 10 `
  -X509Credential `
  -ServerCertThumbprint "..." `
  -FindType FindByThumbprint `
  -FindValue $clusterCertificate.Thumbprint  `
  -StoreLocation CurrentUser -StoreName My

VisualStudioを使用して、ポート19000を介してアプリケーションをクラスターに展開することもできます。 Azure Portal内では、すべてが正常に見え、警告もエラーもありません。

残念ながら、ポート19080経由でエクスプローラーに接続できません。 LoadBalancerを介して接続しようとすると、接続タイムアウトが発生します。そのため、クラスター内のノードの1つへのRDP接続を確立し、を介してローカルでエクスプローラーにアクセスしようとしました

localhost:19080/Explorer

しかし、ここでHttp-Error 403(Forbidden)を受け取ります。これが、Load-Balancerを介した接続タイムアウトの理由である可能性があります(プローブは常に403を受信して​​いるため)。 Azureドキュメント に準拠:

「安全なクラスターでServiceFabric Explorerに接続しようとすると、アクセスするためにブラウザーから証明書の提示を求められます。」

さて、私は証明書を提示するように促されませんでした。私は何か見落としてますか?設定する特別なものはありますか?前もって感謝します。

11
MrFiveT

さて、これはそれほどトリッキーではありませんでした-しかし、あなたはそれを知っている必要があり、私はまだどこにもそれを読んでいませんでした。 Andminクライアント証明書を構成しない限り、Explorer(:19080/Explorer)へのすべての要求は上記のように403になります。

ポータルで管理者クライアント証明書の拇印を追加できます: Azure Portal - Add Admin Certificate

また、(テストされていない)ARMテンプレートの次の設定でも機能するはずです:

{
  "type": "Microsoft.ServiceFabric/clusters",
  ...
  "properties": {
    ...
    "ClientCertificateThumbprints": [
      {
        "CertificateThumbprint": "THUMBPRINT_HERE",
        "IsAdmin": true
      }
    ],
  ...
  }
}

ご覧のとおり、この配列で複数の証明書を指定することは可能です(テストもされていません)。

必ずSHA1フィンガープリントハッシュを生成して使用してください。 SHA256フィンガープリントはAzurePortalから入力できますが、問題が何であるかについての警告なしにHTTP403応答が返されます。

12
MrFiveT