私はWeb APIプロジェクトのテストとデバッグを行うためのUIとしてswaggerを使用するのが初めてです。Swaggerにカスタムセキュリティを追加する
最近のプロジェクト(タイプ:ASP.NET Web API)で、問題が発生しました。 私のAPIには、そのインターフェイスが誰にも明らかではないため、セキュリティはありませんでした。 しかし、私はすべての人が私の完全なドキュメンテーションにアクセスすることができますので、スワッガーUIを確保する必要があります。
私はswagbulkele nuget-packageで簡単にスワッガーを追加して以来、私はどのようなセキュリティを追加するのか分かりません。もし誰かの体がステップウォークスルーでステップを与えることができたら、本当にそれを感謝します。
もう一つは、私がSwaggerConfig.cs
に線の下に追加しようとしたが、それは特別なAPIキーを執行しなかったと私は単に私のブラウザでhttp://localhost:4505/swagger
のようないろいろ書いを入力して闊歩UIを開くことができるということです。
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.ApiKey("key-11111-0000-1111-test")
.Description("API Key Authentication")
.Name("apiKey")
.In("header");
c.EnableApiKeySupport("apiKey", "header");
});
(上記のコードブロックから質問に関係のない設定は省略したことに注意してください)
APIキーのセキュリティをアプリケーションに適用する必要がありますか?そうなら、簡単な方法を示してくださいそれ。
更新#1: swagger-uiのアドレスを変更するだけでハックが見つかりました。 だけSwaggerConfig.cs
に次の行を追加します
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
//a long list of auto generated stuff
//don't touch them if you don't know how to change them
})
//next line is what you add
.EnableSwaggerUi("sandbox-passphrase-000000-passphrase2/swagger/{*assetPath}");
その後威張っ-UIへのアクセスリンクは以下のようになります。
http://your-api.com:port/sandbox-passphrase-000000-passphrase2/swagger/index
しかし、これは私が欲しいものではありません、私は権限のないアクセスを防ぐために、swagger-uiにユーザー名/パスワードのテキストボックスを追加する必要があります。
あなたのAPIは、どのような方法で確保されていますか? – VisualBean
私は "私のAPIは、そのインターフェースが誰にも明らかではないのでセキュリティはありません"と言っています。 – AmiNadimi
カスタム索引ビューをどのように追加すればいいですか?それ以降、文書を隠すにはどうしたら、入力したユーザー名とパスワードを確認してください。 – AmiNadimi