.propertiesファイルでセキュリティーを使用
Quarkusでは、開発とテストを目的としたプロパティーファイルベースの認証をサポートしています。現在のところ、平文とMD5ハッシュ化されたパスワードしか使用されておらず、プロパティーファイルは一般的に本番環境で使用するには制限が多すぎるため、本番環境で使用することはお勧めできません。
以下をビルドファイルに追加してください:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-elytron-security-properties-file</artifactId>
</dependency>
implementation("io.quarkus:quarkus-elytron-security-properties-file")
設定
elytron-security-properties-file エクステンションは、現在、認証と認可情報の保存のための2つの異なる領域をサポートしています。どちらもこの情報のプロパティーファイルへの保存をサポートしています。以下のセクションでは、特定の設定プロパティーについて詳しく説明します。
ビルド時に固定される設定プロパティ - その他の設定プロパティはランタイムでオーバーライド可能です。
型 |
デフォルト |
|
---|---|---|
If the properties are stored in plain text. If this is false (the default) then it is expected that the passwords are of the form HEX( MD5( username ":" realm ":" password ) ) Environment variable: |
boolean |
|
Determine which algorithm to use.
This property is ignored if Environment variable: |
|
|
The realm users user1=password\nuser2=password2… mapping. See Embedded Users. Environment variable: |
|
|
The realm roles user1=role1,role2,…\nuser2=role1,role2,… mapping See Embedded Roles. Environment variable: |
|
|
型 |
デフォルト |
|
The realm name. This is used when generating a hashed password Environment variable: |
string |
|
Determine whether security via the file realm is enabled. Environment variable: |
boolean |
|
If the properties are stored in plain text. If this is false (the default) then it is expected that the passwords are of the form HEX( MD5( username ":" realm ":" password ) ) Environment variable: |
boolean |
|
Classpath resource name of properties file containing user to password mappings. See Users.properties. Environment variable: |
string |
|
Classpath resource name of properties file containing user to role mappings. See Roles.properties. Environment variable: |
string |
|
型 |
デフォルト |
|
The realm name. This is used when generating a hashed password Environment variable: |
string |
|
Determine whether security via the embedded realm is enabled. Environment variable: |
boolean |
|
プロパティーファイルレルム設定
プロパティーファイルのレルムは、プロパティーファイルの組み合わせを使用して、ユーザーをパスワードに、ユーザーをロールにマッピングすることをサポートしています。これらは quarkus.security.users.file
で始まるプロパティーで構成されています。
quarkus.security.users.file.enabled=true
quarkus.security.users.file.users=test-users.properties
quarkus.security.users.file.roles=test-roles.properties
quarkus.security.users.file.realm-name=MyRealm
quarkus.security.users.file.plain-text=true
ユーザーズプロパティー
quarkus.security.users.file.users
設定プロパティーは、クラスパスリソースを指定します。これは、1行に1つずつ、ユーザーとパスワードをマッピングしたプロパティーファイルです。以下の test-users-example はそのフォーマットを示しています:
scott=jb0ss (1)
jdoe=p4ssw0rd (2)
stuart=test
noadmin=n0Adm1n
1 | ユーザー scott のパスワードは jb0ss と定義されています。 |
2 | ユーザー jdoe のパスワードは p4ssw0rd と定義されています。 |
このファイルには、ユーザー名とパスワードがプレーンテキストで保存されていますが、これは推奨されません。設定でプレーンテキストが false に設定されている (または省略されている) 場合、パスワードは MD5 ( username : realm : password )
の形式で保存されなければなりません。これは上の最初の例では、コマンドラインから echo -n scott:MyRealm:jb0ss | md5
コマンドを実行することで生成することができます。
エンベデッドレルムの設定
埋め込まれたレルムは、ユーザーのパスワードへのマッピングやユーザーのロールへのマッピングもサポートしています。この情報を埋め込むには、メインの application.properties
Quarkus設定ファイルを使用します。これらは、 quarkus.security.users.embedded
で始まるプロパティーで設定されます。
以下は、組み込みレルムの設定を示すapplication.propertiesファイルのセクションの例です:
quarkus.security.users.embedded.enabled=true
quarkus.security.users.embedded.plain-text=true
quarkus.security.users.embedded.users.scott=jb0ss
quarkus.security.users.embedded.users.stuart=test
quarkus.security.users.embedded.users.jdoe=p4ssw0rd
quarkus.security.users.embedded.users.noadmin=n0Adm1n
quarkus.security.users.embedded.roles.scott=Admin,admin,Tester,user
quarkus.security.users.embedded.roles.stuart=admin,user
quarkus.security.users.embedded.roles.jdoe=NoRolesUser
quarkus.security.users.embedded.roles.noadmin=user
最初の例と同様に、このファイルにはユーザー名とパスワードがプレーンテキストで保存されていますが、これは推奨されません。設定でプレーンテキストが false に設定されている (または省略されている) 場合、パスワードは MD5 ( username : realm : password )
の形式で保存されなければなりません。これは上記の最初の例では、コマンドラインから echo -n scott:MyRealm:jb0ss | md5
コマンドを実行することで生成することができます。
組込ユーザー
ユーザーからパスワードへのマッピングは、 application.properties
ファイル内で quarkus.security.users.embedded.users.<user>=<password>
形式のプロパティーキーで指定します。以下の password-example は]、4 つのユーザーからパスワードへのマッピングの構文を示しています:
quarkus.security.users.embedded.users.scott=jb0ss (1)
quarkus.security.users.embedded.users.stuart=test (2)
quarkus.security.users.embedded.users.jdoe=p4ssw0rd
quarkus.security.users.embedded.users.noadmin=n0Adm1n
1 | ユーザー scott はパスワード jb0ss を持っています |
2 | ユーザー stuart はパスワード test を持っています |
組込ロール
ユーザーとロールのマッピングは、 application.properties
ファイルで quarkus.security.users.embedded.roles.<user>=role1[,role2[,role3[,…]]]
形式のプロパティー・キーで指定されます。以下の [role-example]は、4つのユーザーとロールをマッピングした構文を示しています:
quarkus.security.users.embedded.roles.scott=Admin,admin,Tester,user (1)
quarkus.security.users.embedded.roles.stuart=admin,user (2)
quarkus.security.users.embedded.roles.jdoe=NoRolesUser
quarkus.security.users.embedded.roles.noadmin=user
1 | ユーザー scott には Admin , admin , Tester , および user |
2 | ユーザー stuart には admin と user |