10

Azure Kudu Web ページで提案されているように、curl から Azure アプリ ログ ストリームにアクセスしようとしています。私はWindows 10コマンドプロンプトを使用しています。これは私が試しているコマンドラインの例です:

curl -u myUserName https://myApp.scm.azurewebsites.net/api/logstream
Enter host password for user 'myUserName':<password typed here>
  • myApp: は Azure App Service の名前です。

  • myUserName:

    • Visual Studio パブリッシュ プロファイルで使用される Web 展開プロファイルから取得した資格情報を使用してみました。つまり、ユーザーが次のように見え$myApp、パスワードが 60 文字の長い文字列である場合です。
    • また、Azure ポータル > MyApp > 展開資格情報からユーザー レベルの展開資格情報を作成しようとしました。ここでは、展開/FTP ユーザー名とパスワードを要求します。

どちらの場合も、curl は Web ページ タイトル401 - Unauthorized: Access is denied due to invalid credentials のコンテンツを表示します。. また、ユーザー名を二重引用符で囲み、ドル記号 ($) を円記号 (\) でエスケープしてみました。運がない。

本当にばかげたことをしているに違いない。SOの公式 Kudu docsmsdnなど、いくつかのドキュメントと投稿を確認しましたが、指示に従っていると思います。その他の情報源: MSDN 再び古い seirer の投稿

編集

提案の後、https://myApp.scm.azurewebsites.net/basicauthにユーザー レベルのデプロイ資格情報と VS Web デプロイ資格情報 (エスケープされたものとエスケープされていないもの) を使用してアクセスしようとしましたが、うまくいきませんでした。以前に間違えた場合に備えて、ユーザーレベルのパスワードも再度保存しました。

次に、curl から Insomnia クライアントに切り替えました。

basicauthユーザー レベルのデプロイ資格情報と Web デプロイ資格情報の両方を使用して をクリックすると、実際の Kudu ページが正しく表示されます。
をヒットするapi/logstreamと、両方の資格情報で、リクエストが返されないように見えます。これは、ログ出力からの継続的なフローによるものだと思います。

そのため、Insomnia クライアントとは対照的に、コマンド ラインからの curl で何かおかしなことが起こっているようです。私が使用しているカールバージョン:

curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL
リリース日: [未リリース]
プロトコル: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
機能: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL

curl に戻ります。

-uオプション (およびパスワード プロンプト)をドロップし、 Insomnia によって生成された基本認証ヘッダーを手動で追加すると、すべて問題ありません。オプションの受け渡し
を使用すると、すべて問題ありません。そのため、プロンプトでパスワードを入力する方法に実際に何かがあるようです。-umyUserName:myPassword

編集#2

繰り返しますが、@David Ebbo の提案の後、詳細な curl 出力は、計算された Base-64 トークンが間違っているように見えることを示しています。

  • 作業中のものは、単一の=.
  • -v代わりに curl 出力に表示されるものは、 double で終わる 20 文字の長さ=です。
  • どちらも最初の 17 文字は同じです。

thisによると、末尾の改行がパスワードの一部として使用されていることが原因である可能性があります。しかし、とにかく、ここから先に進む方法がわかりません。この時点では、何が起こっているのかを理解するだけの問題であり、回避策は既に存在します。完全を期すために、(編集された)詳細ログを次に示します。

*   Trying xxx.xx.xx.xxx...
* TCP_NODELAY set
* Connected to myApp.scm.azurewebsites.net (xxx.xx.xx.xxx) port 443 (#0)
* schannel: SSL/TLS connection with myApp.scm.azurewebsites.net port 443 (step 1/3)
* schannel: disabled server certificate revocation checks
* schannel: verifyhost setting prevents Schannel from comparing the supplied target name with the subject names in server certificates.
* schannel: sending initial handshake data: sending 186 bytes...
* schannel: sent initial handshake data: sent 186 bytes
* schannel: SSL/TLS connection with myApp.scm.azurewebsites.net port 443 (step 2/3)
* schannel: failed to receive handshake, need more data
* schannel: SSL/TLS connection with myApp.scm.azurewebsites.net port 443 (step 2/3)
* schannel: encrypted data got 2904
* schannel: encrypted data buffer: offset 2904 length 4096
* schannel: received incomplete message, need more data
* schannel: SSL/TLS connection with myApp.scm.azurewebsites.net port 443 (step 2/3)
* schannel: encrypted data got 818
* schannel: encrypted data buffer: offset 3722 length 4096
* schannel: sending next handshake data: sending 126 bytes...
* schannel: SSL/TLS connection with myApp.scm.azurewebsites.net port 443 (step 2/3)
* schannel: encrypted data got 51
* schannel: encrypted data buffer: offset 51 length 4096
* schannel: SSL/TLS handshake complete
* schannel: SSL/TLS connection with myApp.scm.azurewebsites.net port 443 (step 3/3)
* schannel: stored credential handle in session cache
* Server auth using Basic with user 'myUserName'
> GET /api/logstream HTTP/1.1
> Host: myApp.scm.azurewebsites.net
> Authorization: Basic {{CALCULATED TOKEN}}
> User-Agent: curl/7.55.1
> Accept: */*
>
* schannel: client wants to read 102400 bytes
* schannel: encdata_buffer resized 103424
* schannel: encrypted data buffer: offset 0 length 103424
* schannel: encrypted data got 1501
* schannel: encrypted data buffer: offset 1501 length 103424
* schannel: decrypted data length: 1472
* schannel: decrypted data added: 1472
* schannel: decrypted data cached: offset 1472 length 102400
* schannel: encrypted data buffer: offset 0 length 103424
* schannel: decrypted data buffer: offset 1472 length 102400
* schannel: schannel_recv cleanup
* schannel: decrypted data returned 1472
* schannel: decrypted data buffer: offset 0 length 102400
< HTTP/1.1 401 Unauthorized                  
< Content-Type: text/html                    
< Server: Microsoft-IIS/10.0                 
* Authentication problem. Ignoring this.     
< WWW-Authenticate: Basic realm="site"       
< Date: Wed, 13 Jun 2018 21:23:59 GMT        
< Content-Length: 1293                       
<
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>401 - Unauthorized: Access is denied due to invalid credentials.</title>
{{... CONTINUES}}
4

2 に答える 2