
お知らせ
2023.4.6(Thu)
目次
こんにちは。横尾です。
先日、tomcatのアプリケーションにBasic認証を設定しました。簡単に設定できる認証ですが、備忘録を兼ねてご紹介していきます。
Basic認証とは、WEB上で利用できる認証システムです。
IDとパスワードを使って認証を行いますが、64種類の英数字(A-Z、a-z、0-9)のみを使用するため、改ざんが容易であるなどセキュリティ面での不安があると言われています。
Webページを一般公開する前に、特定の人だけにアクセスを許可するときなどに使用されることが多いです。Basic認証は、一度認証を行うとブラウザを閉じるまで有効となります。
Basic認証を有効にする方法は、以下の3ステップです。
下記に格納されている、tomcat-users.xmlにBasic認証の設定内容を記述します。
\conf\tomcat-users.xml
<role rolename="basic"/> <user username="amgsolution" password="amgpassword" roles="basic"/>
下記に格納されている、web.xmlにBasic認証の設定内容を記述します。
\webapps\ROOT\WEB-INF\web.xml
<security-constraint> <web-resource-collection> <web-resource-name>User Basic Auth</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>basic</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> <realm-name>User Basic Auth</realm-name> </login-config> <security-role> <role-name>basic</role-name> </security-role>
Basic認証を設定したページのURLを指定してページを開きます。
Basic認証が設定できている場合は、下記のポップアップが表示されます。ユーザー名とパスワードを正しく入力すると、画面が表示されます。
APIなどプログラムからアクセスする可能性が高いページにBasic認証を設定した場合は、下記のプログラムから確認ができます。
public void basicTest() throws IOException { URL url = new URL("Basic認証を設定したページのURL"); URLConnection conn = url.openConnection(); String basicSource = "amgsolution:amgpassword"; conn.setRequestProperty("Authorization", "Basic " + Base64.getEncoder().encodeToString(basicSource.getBytes())); InputStream is; try { is = conn.getInputStream(); } catch (Exception e) { logger.error("エラー", e); return; } }
基本的な認証のBasic認証の設定方法と、確認方法のご紹介でした。設定方法に迷ったときはぜひご活用ください。
それではまた。